19 tasks covering core testing, Redis hardening, WebSocket client/server adapters, Worker adapter, and final review gates. Iroh adapters are tracked as a deferred placeholder blocked on the @alkdev/iroh fork. Phases: core validation → Redis hardening → review gate → WebSocket adapters → review gate → Worker adapter → review gate → final validation.
45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
---
|
|
id: review-websocket-adapters
|
|
name: Review WebSocket client and server adapters
|
|
status: pending
|
|
depends_on: [websocket-client-tests, websocket-server-tests]
|
|
scope: narrow
|
|
risk: low
|
|
impact: phase
|
|
level: review
|
|
---
|
|
|
|
## Description
|
|
|
|
Review checkpoint after implementing both WebSocket adapters. These are the first fan-out adapter (server) and the first subscription-control adapter (client), so they establish patterns that the Worker and Iroh adapters will follow.
|
|
|
|
Verify:
|
|
- Subscription control protocol (`__subscribe`/`__unsubscribe`) is correctly implemented in both client and server
|
|
- Topic-based fan-out works end-to-end: client subscribes → server tracks → server fans out
|
|
- Backpressure protection works correctly
|
|
- Error handling matches the architecture spec
|
|
- Build, type-check, and test suite all pass
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] `npm run build` passes cleanly
|
|
- [ ] `npm run lint` passes
|
|
- [ ] `npm test` passes with all core + Redis + WebSocket tests
|
|
- [ ] WebSocket client subscription forwarding matches ADR-003
|
|
- [ ] WebSocket server fan-out and subscription tracking matches architecture spec
|
|
- [ ] No unnecessary comments in source (project convention)
|
|
- [ ] License headers present where needed
|
|
|
|
## References
|
|
|
|
- docs/architecture/event-targets/websocket-client.md
|
|
- docs/architecture/event-targets/websocket-server.md
|
|
- docs/architecture/decisions/003-subscription-control-protocol.md
|
|
|
|
## Notes
|
|
|
|
> To be filled by implementation agent
|
|
|
|
## Summary
|
|
|
|
> To be filled on completion |