Skip to content

P2: substrate swap, semantics unchanged (first shippable checkpoint) #47

Description

@Mearman

Parent: #45
Blocked by: ExaDev/wire-mesh#45 (P1 prerequisites), P0 above

WireMeshTransport implements MeshTransport, carrying the existing MeshMessage union as an opaque payload in a namespaced domain (no spec change needed). identity-store.ts persists an IdentityPort. One shared factory replaces the four-line substrate-coupling block in six bridges. The whole existing test suite (state-sync-convergence.test.ts, downtime-replay.test.ts — both transport-free by design) stays valid as the oracle through this phase; if it can't pass unmodified, something about this substrate swap changed a property it shouldn't have.


Design complete: write-the-cddl-spec-calm-pascal-agent-p2-substrate-swap.md.

Correction to the parent plan surfaced by the design: wire-mesh#50 (createTlsTransport) is a hard blocker for this phase, not parallel work -- agent-comms' current TlsTransport does real mutual-TLS cert-fingerprint peer authentication; wire-mesh's only transport today is plaintext TCP with identity resolved from unauthenticated gossip. Shipping P2 on that substrate would silently downgrade a real security guarantee inside a phase whose whole premise is "semantics unchanged". Sequencing: wire-mesh#50 lands first (createTlsTransport + an additive Connection.peerDeviceId/unref port extension), then WireMeshTransport is built against it.

Sequencing plan (each its own PR, oracle tests green throughout): 1) wire-mesh#50, 2) agent-comms identity swap (additive, TlsTransport keeps working), 3) WireMeshTransport standalone behind a flag with its own parity test suite, 4) cut one bridge (mcp) over end-to-end, 5) roll out to the rest, 6) delete tls-transport.ts, 7) ship as agent-comms-v2.

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