10 KiB
Network — Implementation Status
Source of truth: STATUS.md, openspec/specs/network/spec.md, and the in-flight changes under openspec/changes/network-* and openspec/changes/enterprise-network-*.
Shipped on genesis (genesis-original — newer plugin model)
| Package | Notes |
|---|---|
@suaveplan/network |
The substrate. NetworkNode, NetworkPlugin, NetworkBus, MessageEnvelope, Transport, MessageRouter, PluginManager, NetworkTimestamp, VersionInfo. NET-01..05, NET-12, NET-53..55. |
@suaveplan/network-plugin-protocol |
13-byte binary header, encoder/decoder, pipeline, priority queue, batcher, TTL, loop detector, three serializers (JSON/Binary/MessagePack). NET-15..17, NET-25, NET-45, NET-57..59. |
@suaveplan/network-plugin-registry |
Fixed-capacity peer registry with bitpacker delta sync. NET-09, NET-13. |
@suaveplan/network-transport-webrtc |
WebRTC transport + PingManager. NET-06..07. |
@suaveplan/network-failover |
Heartbeat FSM, failover trigger. NET-10. |
@suaveplan/network-governance |
Election, voting, host selection. NET-08. |
@suaveplan/network-topology |
Tier 0/1/2 graph. NET-11. |
@suaveplan/network-transport-websockets |
WebSocket transport, queue, heartbeat, adapters. |
@suaveplan/network-testing |
MemoryTransport, FakeWebSocketAdapter, ConditionSimulator, TestPeer factory, EventCapture. |
Pending — to be ported from main (older naming)
| Package | Description (from main README.md) |
|---|---|
@suaveplan/network-protocol |
Network protocol abstractions. Older naming — most content already in network-plugin-protocol. |
@suaveplan/network-registry |
Network service/peer registry. Older naming — most content already in network-plugin-registry. |
@suaveplan/network-webrtc |
WebRTC peer-to-peer networking. Older naming — most content in network-transport-webrtc. |
@suaveplan/network-libp2p |
libp2p-based decentralized networking. |
@suaveplan/network-libp2p-server |
libp2p server with auto-relay. |
@suaveplan/network-hyperswarm |
Hyperswarm DHT networking. |
@suaveplan/network-trystero-server |
Trystero serverless P2P "server" relay. |
@suaveplan/network-gundb-server |
Gun.js relay peer. |
@suaveplan/network-discovery-{crdt,gundb,peerjs,trystero,webtorrent,hybrid} |
Six discovery plugins. |
@suaveplan/network-bootstrap |
Network bootstrap and initialisation. |
@suaveplan/network-quality |
Network quality monitoring. |
@suaveplan/network-observability |
Application monitoring. |
@suaveplan/network-assignment |
Role/resource assignment. |
@suaveplan/network-standby-transport |
Pre-emptive WebRTC standby transport. |
The "older naming" rows reflect a 2025-era split where each subsystem lived in its own package; the newer network-plugin-* naming is the genesis plugin-architecture form. Some of these will be archived without a port (network-protocol, network-registry, network-webrtc) because their content is already in the genesis equivalents. Verify before porting.
Planned — new on genesis (the network-suite 21 plugins)
The full set of plugins from network-suite (proposal). Already-shipped subset is omitted; the remaining are:
| Package | Spec | Notes |
|---|---|---|
@suaveplan/network-plugin-transport-manager |
NET-23..26, 46, 60, 123..124 | Multi-transport orchestration. |
@suaveplan/network-plugin-content-delivery |
NET-35..36 | Mesh-wide chunk redundancy. The drive-mesh consumer side. |
@suaveplan/network-plugin-audit-mesh |
NET-37..39 | Signed append-only logs. |
@suaveplan/network-plugin-relay |
NET-40, 61..70 | Cross-mesh forwarding. |
@suaveplan/network-plugin-assignment |
NET-71..77 | Peer→mesh assignment. |
@suaveplan/network-plugin-partition |
NET-78..83 | Partition detection + merge. |
@suaveplan/network-plugin-circuit-breaker |
NET-84..90 | Per-path breaker. |
@suaveplan/network-plugin-qos |
NET-91..98 | QoS classes + quotas. |
@suaveplan/network-plugin-migration |
NET-99..105 | 8-step peer migration. |
@suaveplan/network-plugin-auth |
NET-106..112 | Mesh + capability tokens, cross-mesh trust. |
@suaveplan/network-plugin-server-bridge |
NET-31..34, 56 | Server WebSocket bridge + 4 hosting models + offline mode. |
@suaveplan/network-plugin-session |
NET-18..22 | Session trees, nested hierarchies, per-session election, capacity. |
@suaveplan/network-plugin-crypto-messages |
NET-27..30, 47..48 | Ed25519 message signing. Plugin security verifier. Tier policies. |
@suaveplan/network-plugin-middleware |
NET-41 | Priority middleware pipeline. |
@suaveplan/network-plugin-state |
NET-42 | Versioned path-based state. |
@suaveplan/network-plugin-monitor |
NET-44 | OTel-compatible metrics + tracing. |
@suaveplan/network-plugin-simulation |
NET-43 | Deterministic virtual mesh + scenarios. |
@suaveplan/network-plugin-governance enhancements |
NET-118..119 | HostSelector with HostHistory (some shipped). |
@suaveplan/network-plugin-topology enhancements |
NET-49..52, 120..122 | Adaptive tier depth, partition handling, geo, battery, message pool. |
network-suite/REVIEW-GAPS.md lists 10 cross-cutting gaps that the per-plugin proposals address. The package-name collision (enterprise-network vs network-core) was resolved by renaming enterprise-network to network-client.
Pending changes to consolidate (cleanup work)
There are a number of enterprise-network-* and enterprise-browser-network-* change folders that pre-date the network-suite reorganisation. Most are now subsumed:
| Folder | Status |
|---|---|
enterprise-network |
Rename to network-client; subset of features now in network-suite. |
enterprise-network-bootstrap |
Subsumed by network-core BootstrapOptions. |
enterprise-network-failover |
Subsumed by network-plugin-failover (already shipped). |
enterprise-network-governance |
Subsumed by network-plugin-governance (already shipped). |
enterprise-network-protocol |
Subsumed by network-plugin-protocol (already shipped). |
enterprise-network-registry |
Subsumed by network-plugin-registry (already shipped). |
enterprise-network-quality |
To become network-plugin-monitor. |
enterprise-network-observability |
To become network-plugin-monitor. |
enterprise-network-rename |
A no-code change to rename enterprise-network → network-client. |
enterprise-network-assignment |
To become network-plugin-assignment. |
enterprise-network-standby-transport |
To become network-plugin-transport-manager's standby/preemptive feature. |
enterprise-network-testing |
Already shipped as @suaveplan/network-testing. |
enterprise-network-transport-websockets |
Already shipped as @suaveplan/network-transport-websockets. |
enterprise-browser-network-* |
All to be consolidated under the discovery plugins or network-transport-webrtc. |
These folders should be reviewed, archived, or rewritten to point at the canonical network-suite proposals. They are clutter, not architecture.
Critical-path order (network)
- Land the
enterprise-types-cross-cuttingarchive (shared with drive prerequisite). - Land
network-suiteREVIEW-GAPS resolutions (no code; just spec consolidation). Includes the renameenterprise-network→network-clientand archive of the duplicateenterprise-network-*folders. - Implement
network-plugin-crypto-messages— message signing is foundational for everything else. - Implement
network-plugin-transport-manager— multi-transport orchestration. Existing webrtc + websockets transports plug in. - Implement
network-plugin-session— sessions are the unit of group membership. - Implement
network-plugin-server-bridge— enablesSERVER_TO_CLIENT_FAILOVERmodel. Brings hosting-model selection into the mesh. - Implement
network-plugin-auth— token issuance + cross-mesh trust. - Implement
network-plugin-relay— cross-mesh hops. - Implement
network-plugin-content-delivery— drive's bus consumer. - Implement
network-plugin-audit-mesh— signed logs. - Implement
network-plugin-partition+network-plugin-circuit-breaker+network-plugin-qos+network-plugin-migration. Resilience tier. - Implement
network-plugin-state,network-plugin-monitor,network-plugin-simulation,network-plugin-middleware. Operational tier. - Port the discovery plugins in any order — they feed
network-plugin-registry.
Steps 3–4 are blocking; the rest can parallelise within their tier.
Test debt to inherit / avoid
The docs/old-network-planning/ folder has several files documenting real test-isolation bugs in the main-branch network code: shared MemoryTransport._instances, singleton TimerController, real setTimeout in time-sensitive tests, voting history not cleared between tests. The genesis fix is structural:
MemoryTransportfrom@suaveplan/network-testingis per-test (no static registry).FakeClockfrom@suaveplan/testingis the only timer source.- Each
NetworkNodeis fresh per test. - All integration tests use
@suaveplan/testing-integrationfixtures (parallel-start, reverse-stop, idempotent teardown).
Don't re-import the old test patterns when porting. Use the genesis testing infrastructure.
Related cross-cutting work
enterprise-streams-redesign—BaseTransform,CryptoTransform,BaseDuplexStream,NetworkStreamImpl. Required fornetwork-plugin-protocol's pipeline (CryptoTransform/compressStream) and fordrive-plugin-chunks's real streaming AEAD.enterprise-streams-chunk-queue— bounded backpressure-awareChunkQueuebridging sync producers and async WHATWG consumers.enterprise-streams-metadata— pass-throughTransformStreamextracting MIME/EXIF/audio metadata via side-channelmetadata: Promise<ExtractedMetadata>. Drivemetadataplugin consumes this.