Parent: #45
Blocked by: P2 above (done), ExaDev/wire-mesh#31 (core/room, done), ExaDev/wire-mesh#55/#56/#57/#58 (P3.0 prerequisites)
wire-protocol.ts retires; patch arms become verbs; broadcastPatch becomes directed fan-out; applyPatch becomes the inbound router draining incomingManageRequests. wire-mesh has no dispatch API of its own — agent-comms owns the router.
Design complete: write-the-cddl-spec-calm-pascal-agent-p3-core-room-semantics.md.
Verified against agent-comms v2.0.0 and current wire-mesh: agent id and device-id are now the same value (no translation layer needed, simpler than originally assumed), dmKey's sorted-pair convention is now an exact match for core/room's dm-room-path (only the separator differs), and state-sync-on-join needs no new verb (rides room.members' response via manage-ok's own extension tail).
Two real gaps found: capability-token minting doesn't exist in wire-mesh-core yet (only verification), and delegations-remaining shipped in the spec/schema/vectors but the verifier never reads it. Bigger finding: core/room as merged is materially narrower than as designed (no extension tails on the verb params maps, room-invite carries no token, room-read is single-message). This makes P3.0 a real six-item wire-mesh prerequisite sub-phase, not a one-item token-minting gap:
Four open questions were resolved directly (see the design doc's section 12): correct core/room's content model upstream; converge same-cwd project rooms via deterministic lowest-device-id ownership (reusing the existing coordinator-election race-recovery idiom); accept the owner-must-be-online-to-admit regression as the default, with a per-room delegations-remaining:1 opt-in for backup admitters; restore room.invite's token field.
Phased PR sequence (P3.0 in wire-mesh, P3.1-P3.8 in agent-comms) is in the design doc's section 11.
Parent: #45
Blocked by: P2 above (done), ExaDev/wire-mesh#31 (core/room, done), ExaDev/wire-mesh#55/#56/#57/#58 (P3.0 prerequisites)
wire-protocol.ts retires; patch arms become verbs; broadcastPatch becomes directed fan-out; applyPatch becomes the inbound router draining incomingManageRequests. wire-mesh has no dispatch API of its own — agent-comms owns the router.
Design complete:
write-the-cddl-spec-calm-pascal-agent-p3-core-room-semantics.md.Verified against agent-comms v2.0.0 and current wire-mesh: agent id and device-id are now the same value (no translation layer needed, simpler than originally assumed), dmKey's sorted-pair convention is now an exact match for core/room's dm-room-path (only the separator differs), and state-sync-on-join needs no new verb (rides room.members' response via manage-ok's own extension tail).
Two real gaps found: capability-token minting doesn't exist in wire-mesh-core yet (only verification), and delegations-remaining shipped in the spec/schema/vectors but the verifier never reads it. Bigger finding: core/room as merged is materially narrower than as designed (no extension tails on the verb params maps, room-invite carries no token, room-read is single-message). This makes P3.0 a real six-item wire-mesh prerequisite sub-phase, not a one-item token-minting gap:
Four open questions were resolved directly (see the design doc's section 12): correct core/room's content model upstream; converge same-cwd project rooms via deterministic lowest-device-id ownership (reusing the existing coordinator-election race-recovery idiom); accept the owner-must-be-online-to-admit regression as the default, with a per-room delegations-remaining:1 opt-in for backup admitters; restore room.invite's token field.
Phased PR sequence (P3.0 in wire-mesh, P3.1-P3.8 in agent-comms) is in the design doc's section 11.