Migrate agent-comms onto wire-mesh as its transport/identity/discovery substrate, replacing its own bespoke TCP mesh — part of ExaDev/wire-mesh#28's wider initiative.
Full design: write-the-cddl-spec-calm-pascal-agent-aagent-comms-migration-e255b45eb2e45172.md.
Scale, stated honestly: 18-24 weeks total for the whole initiative, roughly 2/3 of it here in agent-comms. Tracked as one Epic per phase (P0, P2-P8 below) — P1 is wire-mesh-side work, tracked as ExaDev/wire-mesh#45.
Key decisions
- Identity: adopt wire-mesh's device-id (SHA-256 of raw public key), delete the ~300-line hand-rolled X.509/ASN.1 certificate builder. Certificate-fingerprint identity is provably unstable (renews near expiry, silently minting a new agent id within a year). Every agent id changes — cutover cannot be in-place.
- federation.ts (638 lines) retired. wire-mesh's own federation.cddl is a tombstone recording this exact design (reachability conflated with authorisation) was tried and discarded in favour of scoped capability tokens.
- Discovery kept, not retired — discovery.cddl's DNS-anchored handle resolution and agent-comms' own mDNS/Tailscale beacons solve genuinely different problems, confirmed by reading both.
- Bridges almost entirely unaffected — all five agent-side bridges couple through an identical four-line block; one shared factory function is the whole bridge migration. Web bridge is the real exception (delete the drifted, untested mesh-worker.ts reducer and the unfinished relay-worker.ts prototype).
- Rollout: run v2 as a genuinely separate MCP server (distinct port, distinct identity dir) alongside v1 throughout; real work stays on v1 until a deliberate, single-commit flag-day cutover.
Phases (this Epic's sub-issues)
P0 clear the ground → (P1, wire-mesh#45) → P2 substrate swap, opaque payload, first shippable checkpoint → P3 real core/room semantics → P4 presence → P5 history via core/data → P6 federation retirement + discovery retarget + token-minting UX → P7 web bridge → P8 cutover.
All nine sub-issues closed (P0 through P8, plus the identity-store renewal bug found along the way). The full migration of agent-comms onto wire-mesh's transport, identity, and room/capability model is complete: substrate swap, real core/room membership semantics with genuine token revocation across the full lifecycle, presence, history, federation retired in favour of wire-mesh's own connectToRemote, the web bridge's mesh-worker fixed to stop reimplementing a broken client-side merge, and the flag-day cutover itself (already shipped as v2, currently 2.28.0).
Closing this epic.
Migrate agent-comms onto wire-mesh as its transport/identity/discovery substrate, replacing its own bespoke TCP mesh — part of ExaDev/wire-mesh#28's wider initiative.
Full design:
write-the-cddl-spec-calm-pascal-agent-aagent-comms-migration-e255b45eb2e45172.md.Scale, stated honestly: 18-24 weeks total for the whole initiative, roughly 2/3 of it here in agent-comms. Tracked as one Epic per phase (P0, P2-P8 below) — P1 is wire-mesh-side work, tracked as ExaDev/wire-mesh#45.
Key decisions
Phases (this Epic's sub-issues)
P0 clear the ground → (P1, wire-mesh#45) → P2 substrate swap, opaque payload, first shippable checkpoint → P3 real core/room semantics → P4 presence → P5 history via core/data → P6 federation retirement + discovery retarget + token-minting UX → P7 web bridge → P8 cutover.
All nine sub-issues closed (P0 through P8, plus the identity-store renewal bug found along the way). The full migration of agent-comms onto wire-mesh's transport, identity, and room/capability model is complete: substrate swap, real
core/roommembership semantics with genuine token revocation across the full lifecycle, presence, history, federation retired in favour of wire-mesh's ownconnectToRemote, the web bridge's mesh-worker fixed to stop reimplementing a broken client-side merge, and the flag-day cutover itself (already shipped as v2, currently 2.28.0).Closing this epic.