2.7 KiB
2.7 KiB
Tasks — r3f-networking
Phase 1: Scaffold
- 1.1 Create
packages/r3f/r3f-networking/with feature-module layout. - 1.2
package.jsonat0.1.0, R3F-tier (peer-deps onreact,three,@react-three/fiber). - 1.3 Test config + browser environment via
createTestConfig(). - 1.4
tests/dep-graph.test.ts.
Phase 2: Audit upstream layout
- 2.1 Read
../suaveplan/packages/three/r3f-networking/src/end-to-end. - 2.2 Populate parity table with concrete file → capability mapping.
Phase 3: Types + errors
- 3.1 Port public types + sibling
.md. - 3.2
defineCodes("R3F_NET", [...]):SNAPSHOT_OUT_OF_ORDER,PEER_DROPPED,PREDICTION_DIVERGED,INVALID_OPTIONS. - 3.3 Zod schemas for snapshot frames + public options.
Phase 4: Interpolation subsystem
- 4.1 Port frame-loop smoothing for remote-peer transforms.
- 4.2 Backed by injectable
Clockfrom@suaveplan/types. - 4.3 Property test: interpolation monotonicity.
Phase 5: Prediction + reconciliation
- 5.1 Port local input application.
- 5.2 Reconciliation FSM via
@suaveplan/fsm. - 5.3 Property test: divergence detection + convergence on reconcile.
Phase 6: Snapshot diffing
- 6.1 Wire
@suaveplan/difffor RFC-6902 patches between snapshots. - 6.2 Wire-format encoding via
@suaveplan/serialize. - 6.3 Property test: round-trip equivalence.
Phase 7: React + R3F components
- 7.1
useNetworkedTransformhook. - 7.2
useNetworkedEntityhook. - 7.3
useNetworkPredicthook. - 7.4
<NetworkProvider>context. - 7.5
<NetworkedMesh>and friends. - 7.6 Storybook stories per component (default + playground + variants).
Phase 8: Observability
- 8.1 Histograms
r3f_net.snapshot_dispatch_ms,prediction_divergence. - 8.2 Counters
snapshots_total{outcome}. - 8.3 Bus emissions for join/leave/snapshot.
Phase 9: Tests + docs
- 9.1 Unit tests via
@suaveplan/testing/runner+@suaveplan/testing-dom. - 9.2 Playwright E2E: 2-client scene over
network-transport-webrtcvia@suaveplan/testing-e2e. - 9.3 100/100/100/100 coverage gate.
- 9.4 Sibling
.mdper.tsimpl file. - 9.5 Root
README.md.
Phase 10: Verification
- 10.1
bunx turbo lint typecheck test --filter=@suaveplan/r3f-networkinggreen. - 10.2
bunx turbo test:coverage --filter=@suaveplan/r3f-networking100/100/100/100. - 10.3
bun run docs:checkgreen. - 10.4 Stories cover every component.
- 10.5
MANIFEST.mdregen. - 10.6
STATUS.mdrow flipped.
Pre-archive checklist
- Row 1 — Phase 10 green.
- Row 2 — Playwright E2E passes.
- Row 3 —
openspec/specs/r3f-networking/spec.mdwritten. - Row 4 — Folder archived.