Repository navigation
spec(ipc): F04 compat IPC spec — wv-link v2 send/event kinds and credit window, el control-channel carriage, host-opaque endpoint codec, arch 02 §2/§5 amendment #540
Description
Activity
- addedelectron-compatElectron compatibility program areaElectron compatibility program area
on Oct 6, 2026 - addedenhancementNew feature or requestNew feature or requestcompat:tier-1Electron compat Tier 1 (arch 04 §4)Electron compat Tier 1 (arch 04 §4)ready-for-agentFully specified; an AFK agent can take itFully specified; an AFK agent can take itmilestone:first-proofNeeded for the first migration proof (drawio-desktop on macOS, explicit legacy profile)Needed for the first migration proof (drawio-desktop on macOS, explicit legacy profile)
on Oct 6, 2026 This was generated by AI during triage.
Agent Brief
Category: enhancement
Summary: spec(ipc): F04 compat IPC spec — wv-link v2 send/event kinds and credit window, el control-channel carriage, host-opaque endpoint codec, arch 02 §2/§5 amendmentCurrent behavior:
No spec defines renderer floor v2, the el carriage or the value codec; arch 02 §5 names a postcard SCV codec with no implementation and arch 02 §2 says string names never travel per call.Desired behavior:
Write the approved spec that F04-T2, F04-T10, F04-T11, F04-T12 and F04-T3 implement: (a) wv-link v2 one-way send kind and host→renderer event kind, credit accounting and its typed overflow error, with the payload-bound slot filled from F04-T12's measurement; (b) carriage — one fixed generated kipc control channel per direction on the primary app link, payload = Electron channel string + kind + opaque codec bytes, host matches the channel string via the F04-T7 grant and forwards bytes it never decodes; the two control-channel ids are entries of the X05-T2 channel table under family-neutral names (X05-T2 forbids Electron names in the table;el:is the grant namespace, not a table name); amend arch 02 §2 to state this exception explicitly; (c) endpoint codec per the closed F03-D4 resolution, amending arch 02 §5 — this PR is the single owner of that amendment (F03-T7's duplicate claim is superseded by F03; F04-T11 implements the codec); (d) the generator owner for el control structs: KEL-98 is echo-only, so either a recorded KEL-98 scope amendment or the X05-T2 owner; (e) state that handler-error text disclosure is out of the first-proof scope and owned by F04-T14.Key interfaces:
- none named beyond the acceptance criteria
Acceptance criteria:
- The spec is approved and merged with arch 02 §2 and §5 amended in the same PR, so no code/spec mismatch remains on those sentences
- The spec names its tracker of record (its GitHub issue under the Linear owner for repo-writing Electron-compat slices (owner decision: align to nearest Linear issue, else GitHub is the tracker of record) #517 owner decision) and the Linear issue carrying the reference link
- The spec states that the host never decodes codec bytes and that keld-core and keld-ipc carry no Electron-specific parsing
-
just llms-checkpasses on the final diff - Negative control: A draft that carries channel strings per call while leaving the arch 02 §2 sentence unamended is rejected at the wire-protocol review gate
Out of scope:
- Grant grammar and navigation-generation contract (F04-T7); bulk-lane refs and export-size payloads (not yet specified); sendSync lane (F04-A5).
Tracker of record and claim location: see "Ownership and gates" in the issue body.
Parent
Epic #463 · Map #391 · Unit F04 · Kind:
spec· Tier: Tier 1 · Maturity target: L1 · Size: M · Milestone:first-proofWhat to build
Write the approved spec that F04-T2, F04-T10, F04-T11, F04-T12 and F04-T3 implement: (a) wv-link v2 one-way send kind and host→renderer event kind, credit accounting and its typed overflow error, with the payload-bound slot filled from F04-T12's measurement; (b) carriage — one fixed generated kipc control channel per direction on the primary app link, payload = Electron channel string + kind + opaque codec bytes, host matches the channel string via the F04-T7 grant and forwards bytes it never decodes; the two control-channel ids are entries of the X05-T2 channel table under family-neutral names (X05-T2 forbids Electron names in the table;
el:is the grant namespace, not a table name); amend arch 02 §2 to state this exception explicitly; (c) endpoint codec per the closed F03-D4 resolution, amending arch 02 §5 — this PR is the single owner of that amendment (F03-T7's duplicate claim is superseded by F03; F04-T11 implements the codec); (d) the generator owner for el control structs: KEL-98 is echo-only, so either a recorded KEL-98 scope amendment or the X05-T2 owner; (e) state that handler-error text disclosure is out of the first-proof scope and owned by F04-T14.Acceptance criteria
just llms-checkpasses on the final diffNegative controls (each names the one mutation that must fail)
External predecessors (outside this tracker)
Ownership and gates
docs/agents/workflow.md§ Tracker issue (rule lands with docs(agents): record the #517 tracker-of-record rule in root AGENTS.md and the workflow claim protocol #520). Linear reference: KEL-80 (Backlog) carries a link to this issue.The authoritative agent contract is the latest Agent Brief comment on this issue (triage skill); this body is the planning record.
Out of scope
Grant grammar and navigation-generation contract (F04-T7); bulk-lane refs and export-size payloads (not yet specified); sendSync lane (F04-A5).
Notes
Startable once the KEL-80 reference link exists. Cite the #517 owner record as the documented exception to the Linear-only claim protocol.
Change log (doctrine-audit repair, 2026-10-07)