Repository navigation
docs(MOR-3821): TCI server design - #4382
Conversation
Design for a TCI (ExpertSDR3 protocol) server as a thin adapter over the existing command ingress, managed TX authority and audio session: command subset, TX safety, audio phase, listener config, test plan and PR phasing. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…n adapter Add the coordinator's layering decision: rigplane.tci is a protocol package that imports only the standard library and itself, enforced by an import-linter contract and an AST test; rigplane.tci_adapter is the only code that knows Core. Re-plan the PRs accordingly. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Channel B independent of split, refuse unsupported TX sources, independent liveness watchdog, TOT stated as configured, TX playout buffer, real mono RX audio, TX_CHRONO cadence per channel count, owner-specific audio admission, two-way direction-labelled capture with a coverage report. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Split TX tuple follows the single TCI modulation, refusals go to the requester only, effective TX frequency includes XIT, DDS/IF derived per channel, explicit mode table without NFM, TX input established and verified before source=tci. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Key-time TX input preparation runs inside the authority after admission (before_on hook), split TX tuple verifies the numeric DATA sub-mode (new P0e), and the unsupported input-restore claim is removed in favour of an open question. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
…ive PRs Port 50001, trx_count 1 first, extract shared mechanisms first, framing in the leaf. The owner's 4000-line rule replaces the 1000-line plan: 15 units are bundled into five PRs with logical commits, failing-first and seam tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
TCI off unless --tci, tune not honoured in release 1, parity with rigctld with one shared network-exposure setting, TX capture later with the owner present, input restoration a documented known limitation. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Agent Review: PASS c35de5f Coordinator review of the design doc after three Codex rounds (round 3 P1s fixed; its P2 recorded as Q11 known limitation). Docs only, one file. Decisions recorded in §13: Q1/Q5/Q7/Q8/Q9 by coordinator, Q2/Q3/Q6/Q10/Q11 by the owner. Additional decisions: rigctld's unmanaged 0.0.0.0 default is NOT changed by C4 (stays an explicit question in that PR); the A2 (TX audio) merge gate on the C0-TX session stays as written. |
Linear: MOR-3821
Change class: docs
Design document for a TCI (ExpertSDR3 protocol) server in Core, so OpsLog, JTDX, WSJT-X Improved, MSHV and loggers can use any RigPlane radio. Docs only: one new file,
docs/superpowers/specs/2026-10-27-tci-server-design.md. No code, no behaviour change.What it decides
rigplane.tci(stdlib and itself only; enforced by an import-linter contract and an AST test; no separate package until a second outside user exists) and one thinrigplane.tci_adapterover the existing command ingress,ManagedTxAuthorityandAudioSession.web/rigctldfirst (P0a to P0e) instead of copied.127.0.0.1:50001, opt-in), test plan (eesdr-tci conformance, seam tests, recorded client transcripts, RX-only real-app smoke) and a delivery plan of 15 units bundled into five PRs (about 8.7k lines, each PR up to the owner's 4000-line rule, built from logical failing-first commits).Evidence limits
No live TCI session was captured. Client behaviour comes from the TCI 2.1 spec, eesdr-tci and AetherSDR's published docs (second-hand); open items are marked and closed by a planned capture step (C0). No AetherSDR source was read.
Review
Local Codex pre-review ran three rounds on this file (9, 6 and 3 findings). Rounds 1 and 2 were fixed in full. Round 3's two P1 findings are fixed in the final commit; its one P2 is recorded as open question Q11. By the owner's rule for design docs no fourth round was run, so
PRE-REVIEW: CLEANwas not reached for this head and noAgent Review: PASShas been posted. The coordinator reviews the final version.Open questions (section 13)
Decided on 2026-10-27/28 (coordinator and owner): Q1 port 50001, Q2 TCI off in Core unless
--tci, Q3tunenot honoured in release 1, Q5trx_count:1first, Q6 parity with rigctld and one shared network-exposure setting, Q7 extract shared mechanisms first, Q8 PRs up to 4000 lines, Q9 framing inside the leaf, Q10 TX capture later with the owner present, Q11 input restoration a documented known limitation. Open: Q4protocol/devicestrings, settled by capture C0.🤖 Generated with Claude Code