Files
suaveplan/openspec/archive/2026-05-12-network-transport-peerjs/DECISION.md
2026-05-27 23:29:53 +01:00

1.2 KiB
Raw Blame History

Decision: FOLD into network-discovery-peerjs (not split)

  • Date: 2026-05-12
  • Decided by: autonomous Wave 3.2 implementation
  • Parent: network-transport-family proposal, §"Split vs. fold" for discovery-bundled transports

Outcome

@suaveplan/network-transport-peerjs is NOT shipped as a separate package. Its functionality lives at @suaveplan/network-discovery-peerjs/transport (subpath export of the existing discovery package).

Rationale

  1. Upstream code bundles transport + discovery as one integrated unit; the existing PeerConnectionManager + PeerJSConnection modules ARE the transport machinery.
  2. Splitting would require extracting a working integrated unit and re-testing — much higher risk for no functional gain.
  3. Fold preserves upstream parity and ships an actual usable transport in ~3× less effort.
  4. The two surfaces share a single PeerJS unit cleanly via a discriminated wire frame ({kind: "suaveplan.transport.v1", envelope}) that discovery's Zod schema explicitly rejects.

What to import

  • Discovery: import { PeerJSDiscovery } from "@suaveplan/network-discovery-peerjs"
  • Transport: import { PeerJSTransport, PeerJSPlugin } from "@suaveplan/network-discovery-peerjs/transport" (or /plugin)