2.7 KiB
2.7 KiB
Tasks — network-discovery-peerjs
Phase 1: Scaffold
- 1.1 Create
packages/network/network-discovery-peerjs/with feature-module layout. - 1.2
package.jsonat0.1.0,"sideEffects": false, subpath exports. - 1.3 Test config via
createTestConfig();tests/dep-graph.test.ts. - 1.4 Add
peerjsto rootpackage.jsoncatalog (network-discoverygroup).
Phase 2: Types + errors
- 2.1 Port
types.ts→src/types/types.ts+ sibling.md. - 2.2
defineCodes("NET_DISC_PEERJS", [...]):SIGNALING_FAILED,PEER_CONNECT_FAILED,ROOM_FULL,INVALID_OPTIONS,DISPOSED. - 2.3 Zod schemas for
PeerJSDiscoveryConfig,PeerJSMessage,PeerJSPeerMetadata.
Phase 3: Core strategy
- 3.1 Port
PeerJSDiscoveryorchestrator (DiscoveryStrategyimpl). - 3.2 Port
PeerConnectionManagerper-peer registry. - 3.3 Port
RoomManagerlogical rooms. - 3.4 Port
PeerJSConnectionRTCDataConnectionwrapper. - 3.5 Port
PeerJSMessageHandlerswire-format routing. - 3.6 Replace event emitter with
@suaveplan/eventsEventBus. - 3.7 Replace interval loops with
@suaveplan/timingscheduler + injectableClock. - 3.8 Reject construction without explicit
hostoption (no public-server fallback). - 3.9 Thread
AbortSignalthroughstart/stop/connect.
Phase 4: Observability
- 4.1 Span
disc_peerjs.start. - 4.2 Counter
peers_discovered_total{outcome}. - 4.3 Histogram
signaling_duration_ms.
Phase 5: Integration
- 5.1 Integration test with
@suaveplan/network-bootstrap: register PeerJS strategy, run a node against a local PeerJS broker, observepeer:found. - 5.2 Optional: register discovered peers into
@suaveplan/service-discovery.
Phase 6: Tests + docs
- 6.1 Unit tests per feature module via
@suaveplan/testing/runner. - 6.2 fast-check property tests on peer dedup + room admission.
- 6.3 100/100/100/100 coverage gate.
- 6.4 Sibling
.mdper.tsimpl file. - 6.5 Root
README.mdwith basic + advanced examples.
Phase 7: Verification
- 7.1
bunx turbo lint typecheck test --filter=@suaveplan/network-discovery-peerjsgreen. - 7.2
bunx turbo test:coverage --filter=@suaveplan/network-discovery-peerjs100/100/100/100. - 7.3
bun run docs:check --filter=@suaveplan/network-discovery-peerjsgreen. - 7.4
MANIFEST.mdregen. - 7.5
STATUS.mdrow flipped from–to✅.
Pre-archive checklist
- Row 1 — Phase 7 green.
- Row 2 — Parity 🚫 list empty (or React-story exception justified).
- Row 3 —
openspec/specs/network-discovery-peerjs/spec.mdwritten. - Row 4 — Integration test against a local PeerJS broker passes.
- Row 5 — Folder archived.