3.1 KiB
3.1 KiB
Tasks — network-plugin-webrtc
Blocked on:
network-core.
1. Scaffold
- 1.1
packages/network/network-plugin-webrtc/withpackage.json(@suaveplan/network-plugin-webrtc@0.0.0),tsconfig.json,vitest.config.ts,README.md. - 1.2 Workspace deps:
@suaveplan/network,@suaveplan/error,@suaveplan/types,@suaveplan/events,@suaveplan/streams,@suaveplan/timing,@opentelemetry/api,zod. - 1.3
sideEffects: false.
2. Types
- 2.1
src/types/signaling.types.ts—SignalingClient,SignalingMessage,SignalType. - 2.2
src/types/webrtc.types.ts—WebRTCConfig,PeerConnectionState,DataChannelConfig. - 2.3
src/types/ping.types.ts—PingFrame,PongFrame,LatencyRecord. - 2.4
src/error-codes.ts—defineCodes("NET_WEBRTC", [...]).
3. Signaling
- 3.1
src/signaling/signaling-client.ts—SignalingClientinterface. - 3.2
src/signaling/websocket-signaling-client.ts— WebSocket implementation with reconnect.
4. ICE management
- 4.1
src/ice/ice-manager.ts— monitorsiceConnectionState, triggers restart onfailed. - 4.2 Configurable
iceServers(STUN + TURN).
5. Data channel
- 5.1
src/data-channel/data-channel-manager.ts— open/close channels,bufferedAmountbackpressure. - 5.2 Emits
Uint8Arraymessages on the bus.
6. Transport implementation
- 6.1
src/transport/webrtc-transport.ts— implementsTransport:connect,disconnect,send,onMessage,getConnectedPeers. - 6.2 Manages one
RTCPeerConnectionper peer.
7. Mesh
- 7.1
src/mesh/webrtc-mesh.ts— auto-connects to discovered peers, maintains full-mesh. - 7.2 Removes peers on disconnect or heartbeat timeout.
8. Ping / latency
- 8.1
src/ping/ping-manager.ts— correlated echo frames, RTT measurement. - 8.2 EMA smoothing with configurable window.
- 8.3 Publishes
peer:latencyonNetworkBus.
9. Plugin wrapper
- 9.1
src/plugin/webrtc-plugin.ts—WebRTCPluginimplementsNetworkPlugin. - 9.2 Registers itself as a transport with the node on
install().
10. Spec
- 10.1 Update
openspec/specs/network/spec.mdwithNET-06,NET-07.
11. Conformance tests
- 11.1
src/transport/transport.spec-conformance.test.ts—Transportcompliance. - 11.2
src/mesh/mesh.spec-conformance.test.ts— auto-connect, full-mesh, removal. - 11.3
src/ping/ping.spec-conformance.test.ts— echo, RTT, EMA. - 11.4
src/ice/ice.spec-conformance.test.ts— restart on failure. - 11.5
src/signaling/signaling.spec-conformance.test.ts— interface, WebSocket impl. - 11.6
src/backpressure/backpressure.spec-conformance.test.ts— bufferedAmount pause. - 11.7
src/error-codes.spec-conformance.test.ts— frozen registry.
12. Verify
- 12.1
bunx turbo lint typecheck test --filter=@suaveplan/network-plugin-webrtcgreen. - 12.2
bunx turbo test:coverage --filter=@suaveplan/network-plugin-webrtc100/100/100/100. - 12.3
bun scripts/openspec-conformance.ts @suaveplan/network-plugin-webrtcPASS.