You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-on design ticket from #5674 — its decomposition sketch names this as a separate design, and the parent's acceptance requires these tickets to be filed and linked. Filed in the 2026-11-04 gap pass (WS-F) so the design work exists and can be prioritised on its own merits; implementation timing is a separate decision, possibly months out.
What this design must settle
The conformance test harness every adapter must pass, and the interop matrix run in CI — adapters are certified, not hoped.
Context from the parent
The parent design fixes the postcard wire-format family and the transport-adapter model that carries ID over non-UDP transports and relays. The parent issue carries the surrounding decisions this ticket must not re-decide; where this ticket's answer would change a parent decision, record that explicitly rather than silently forking it.
Decision record expected
Close this design with a recorded decision (on this issue or in a doc/ record linked from it): the chosen shape, the alternatives rejected and why, and the invariants implementation must hold. If the design splits further, file the splits and link them here rather than growing this issue.
Relations
Parent: #5674. Programme: epic #2056. Filed by WS-F (2026-11-04 ID design gap & expansion pass).
State verified fresh: issue id: design: adapter conformance harness & interop matrix CI (from #5674) #5814 is OPEN, labels at claim were task/triage, queue/queued, app/id — no hard-stop labels (held, user/owned, do-not-merge, do-not-auto-edit) and no user/review/user/escalated. No PR or branch owns this work; the only prior comment is a tracker link.
Blocker / ordering (recorded per acceptance): parent issue id: design: Wire format & transport adapters — postcard schema, non-UDP carriers, relays/proxies #5674 ("Wire format & transport adapters — postcard schema, non-UDP carriers, relays/proxies") is still OPEN and undecided. Issue id: design: adapter conformance harness & interop matrix CI (from #5674) #5814's own body states the parent carries the surrounding decisions this ticket must not re-decide, and that implementation timing is a separate decision, possibly months out. The conformance harness presupposes the adapter model and wire-format family the parent settles — designing it first would silently fork the parent's decisions, which the ticket explicitly forbids.
Scoped path once unblocked: (1) parent issue id: design: Wire format & transport adapters — postcard schema, non-UDP carriers, relays/proxies #5674 records its decision; (2) this design settles harness shape (shared test suite vs per-adapter suites), the interop matrix dimensions (adapter × transport × relay/proxy path), and the certification gate for CI, recording alternatives rejected and the invariants implementation must hold, per the ticket's decision-record requirement; (3) implementation splits are filed as separate linked issues rather than growing this one, as the ticket instructs.
Disposition: triaged, left OPEN pending the parent decision. No code change, no PR, and no duplicate design/implementation issue filed in this pass.
Agent: queue worker (repo-worker-code), lane code-z
Session / ID: task 12315
Found via: queue claim
Task: Triage of issue id: design: adapter conformance harness & interop matrix CI (from #5674) #5814 (id: design: adapter conformance harness & interop matrix CI). Execution-lane assignment for task 12315 returned opencode, so per the worker runbook §1b this lane does not work it directly: task 12315 is checkpointed handed_off and parked 1800s for the opencode claimant.
Expectation: the claimant launches a bound opencode session that drives task 12315 to its terminal state under the queue worker id.
Agent: queue worker (repo-worker-code), lane code-p
Session / ID: task 12315
Found via: queue claim
Task: triage issue id: design: adapter conformance harness & interop matrix CI (from #5674) #5814 — handed off to the opencode claimant per execution-lane assignment (§1b); this lane does not work it directly. (This note is the rate-limit repair: the original handoff note failed with GitHub's secondary rate limit "submitted too quickly"; the queue checkpoints, parked labels, and 1200s park all landed at handoff time. Reposted under the developing.today GitHub App token per the runbook rate-limit fallback.)
Expectation: claimant launches the bound opencode session; task parked 1200s so it returns to the queue if the claimant does not bind.
The prior triage note (2026-11-05, task 10217) recorded findings but produced no decision record, which is why the doctrine re-queued it. Its content is still correct and is not contradicted by anything landed since.
What this issue actually owes
A recorded design decision for the adapter conformance harness (the test suite every transport adapter must pass) and the interop matrix run in CI ("adapters are certified, not hoped"). It is a decision record, not an implementation: doc/ record linked from this issue, chosen shape, rejected alternatives with reasons, invariants.
No conformance harness, interop matrix, or equivalent exists for ID transports: no *conformance* / *interop* files under pkgs/id/, and no interop workflow in .github/workflows/.
pkgs/id does have conformance-adjacent precedent to reuse rather than invent: pkgs/id/src/shell_contract.rs + shell_contract/tests.rs and pkgs/id/src/world_session/contract_tests.rs are contract-suite patterns; postcard is already a dependency; pkgs/id/tests/ holds the integration-test conventions.
Routing
Real and current → converting the remaining scope to a fix packet (repo-health:v1:fix:developing-today/code:issue:5814) returning it to the queue for the decision record. No blocker on Drew; nothing here needs escalation. Task 12315 completes as triaged.
Partial decision record for #5814 is up as PR #7853: doc/2026-11-08T23-22-53Z_design_id_adapter-conformance/, indexed in doc/README.md.
Decided now: one shared contract harness in pkgs/id (adapters enter through assertion-free bindings); certification criteria C1–C6 pinned to the #5975 load-bearing elements; interop matrix axes adapter × carrier class × platform with cross-pairing and direction as in-cell dimensions; CI gate = pkgs/id flake check in the id workflow (PR) plus the nightly full matrix; fixture/oracle model with per-step declared outcomes so a pass is machine-decidable. Rejected alternatives are recorded with reasons.
Blocked remainder (record §7): per-sibling fixture content and matrix rows fill in as #5808/#5809/#5810/#5811/#5812/#5813 land — all verified OPEN 2026-11-08. Per the record, #5814 stays open for exactly that remainder; PR #7853 carries no closing keyword. No #5674 or #5975 decision is changed.
Verification: every relative link in the record resolves (checked programmatically), the README index target exists, git diff --check clean.
Activity
developing-today commentedon Nov 5, 2026
CODE-1497
dezren39 commentedon Nov 5, 2026
🤖 Agent note · picked up
dezren39 commentedon Nov 5, 2026
🤖 Agent note · done
Triage findings (task 10217, verified 2026-11-05)
task/triage,queue/queued,app/id— no hard-stop labels (held,user/owned,do-not-merge,do-not-auto-edit) and nouser/review/user/escalated. No PR or branch owns this work; the only prior comment is a tracker link.dezren39 commentedon Nov 8, 2026
🤖 Agent note · handed off
opencode, so per the worker runbook §1b this lane does not work it directly: task 12315 is checkpointedhanded_offand parked 1800s for the opencode claimant.7 remaining items
developing-today commentedon Nov 8, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 8, 2026
🤖 Agent note · triaged (re-triage under the 2026-11-07 triage doctrine, code#7016)
Verification (fresh, 2026-11-08)
task/triage,status/parked,queue/parked,app/id,work/assigned. No hard-stop labels (held,user/owned,do-not-merge,do-not-auto-edit), nouser/escalated.queue/*5814*branch, no merged commit with a closing keyword. The only cross-reference is measurement PR docs(id): self-hosting and interop stance (#5975) #7602 (id: design: self-hosting & interop stance — own servers, Rust library reuse, what intercompatibility requires #5975), which assigns the conformance proof here rather than doing it.What this issue actually owes
A recorded design decision for the adapter conformance harness (the test suite every transport adapter must pass) and the interop matrix run in CI ("adapters are certified, not hoped"). It is a decision record, not an implementation:
doc/record linked from this issue, chosen shape, rejected alternatives with reasons, invariants.Ordering and dependencies (verified fresh)
Repo state relevant to the design (checked)
*conformance*/*interop*files underpkgs/id/, and no interop workflow in.github/workflows/.pkgs/iddoes have conformance-adjacent precedent to reuse rather than invent:pkgs/id/src/shell_contract.rs+shell_contract/tests.rsandpkgs/id/src/world_session/contract_tests.rsare contract-suite patterns;postcardis already a dependency;pkgs/id/tests/holds the integration-test conventions.Routing
Real and current → converting the remaining scope to a fix packet (
repo-health:v1:fix:developing-today/code:issue:5814) returning it to the queue for the decision record. No blocker on Drew; nothing here needs escalation. Task 12315 completes astriaged.dezren39 commentedon Nov 8, 2026
agent-note:v1 — task 13680 (lane code-l) — pr_opened
Partial decision record for #5814 is up as PR #7853:
doc/2026-11-08T23-22-53Z_design_id_adapter-conformance/, indexed indoc/README.md.Decided now: one shared contract harness in pkgs/id (adapters enter through assertion-free bindings); certification criteria C1–C6 pinned to the #5975 load-bearing elements; interop matrix axes adapter × carrier class × platform with cross-pairing and direction as in-cell dimensions; CI gate = pkgs/id flake check in the
idworkflow (PR) plus the nightly full matrix; fixture/oracle model with per-step declared outcomes so a pass is machine-decidable. Rejected alternatives are recorded with reasons.Blocked remainder (record §7): per-sibling fixture content and matrix rows fill in as #5808/#5809/#5810/#5811/#5812/#5813 land — all verified OPEN 2026-11-08. Per the record, #5814 stays open for exactly that remainder; PR #7853 carries no closing keyword. No #5674 or #5975 decision is changed.
Verification: every relative link in the record resolves (checked programmatically), the README index target exists,
git diff --checkclean.docs(id): framing and fragmentation decision across carrier classes (#…
docs(id): framing and fragmentation decision across carrier classes (#…