Skip to content

P3: real core/room semantics #48

Description

@Mearman

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions