4.5 KiB
4.5 KiB
Tasks — network-plugin-transport-manager
Blocked on:
network-core.
1. Scaffold
- 1.1
packages/network/network-plugin-transport-manager/withpackage.json,tsconfig.json,vitest.config.ts,README.md. - 1.2 Workspace deps:
@suaveplan/network,@suaveplan/error,@suaveplan/types,@suaveplan/events,@suaveplan/timing,@suaveplan/rate-limiter,@opentelemetry/api,zod. - 1.3
sideEffects: false.
2. Types
- 2.1
src/types/transport.types.ts—TransportEntry,TransportHealth,TransportCapability. - 2.2
src/types/priority.types.ts—MessagePriority,PriorityConfig. - 2.3
src/types/selector.types.ts—SelectorConfig,SelectionResult. - 2.4
src/error-codes.ts—defineCodes("NET_TM", [...]).
3. Transport pool
- 3.1
src/pool/transport-pool.ts—TransportPool. - 3.2
register(transport),unregister(transportId),getHealth(transportId). - 3.3 Health score: 0–100 based on RTT, loss rate, stability.
4. Capability negotiator
- 4.1
src/negotiator/capability-negotiator.ts—CapabilityNegotiator. - 4.2 Exchanges capability bitmap during
peer:connected. - 4.3 Computes intersection of local and remote capabilities.
5. Transport selector
- 5.1
src/selector/transport-selector.ts—TransportSelector. - 5.2 Selects transport based on priority + capability + health.
- 5.3 CRITICAL: selects 2+ transports for redundant send.
6. Priority router
- 6.1
src/priority/priority-router.ts—PriorityRouter. - 6.2 5 tiers: CRITICAL, HIGH, NORMAL, LOW, BULK.
- 6.3 CRITICAL messages sent redundantly on 2+ transports.
7. Round-robin balancer
- 7.1
src/balancer/round-robin-balancer.ts—RoundRobinBalancer. - 7.2 Distributes NORMAL and BULK across healthy transports.
8. Health monitor
- 8.1
src/health/transport-health-monitor.ts—TransportHealthMonitor. - 8.2 Auto-pauses transport when health < threshold.
- 8.3 Auto-resumes when health recovers.
9. Plugin wrapper
- 9.1
src/plugin/transport-manager-plugin.ts—TransportManagerPluginimplementsNetworkPlugin.
10. Spec
- 10.1 Update
openspec/specs/network/spec.mdwithNET-TMrequirements.
11. Conformance tests
- 11.1
src/pool/pool.spec-conformance.test.ts— registration, health, removal. - 11.2
src/selector/selector.spec-conformance.test.ts— priority, capability, health. - 11.3
src/negotiator/negotiator.spec-conformance.test.ts— exchange, intersection. - 11.4
src/priority/priority.spec-conformance.test.ts— 5 tiers, redundant CRITICAL. - 11.5
src/balancer/balancer.spec-conformance.test.ts— round-robin, distribution. - 11.6
src/health/health.spec-conformance.test.ts— degradation, pause, resume. - 11.7
src/error-codes.spec-conformance.test.ts— frozen registry.
12. Pre-emptive transport switching
- 12.1
src/analyzer/quality-trend-analyzer.ts—QualityTrendAnalyzer, EMA slope for latency/loss/bandwidth. - 12.2
src/selector/preemptive-selector.ts—PreemptiveSelector, switches on trend before threshold. - 12.3 Smooth handoff: establish new before teardown, overlap window.
13. Session persistence
- 13.1
src/persistence/session-persistence-buffer.ts—SessionPersistenceBuffer, buffers state during drops. - 13.2
src/recovery/connection-recovery-manager.ts—ConnectionRecoveryManager, exponential backoff with jitter. - 13.3
src/recovery/session-continuity-guard.ts—SessionContinuityGuard, replays buffered messages on recovery. - 13.4 Prioritized recovery: CRITICAL connections recover first.
14. Spec
- 14.1 Update
openspec/specs/network/spec.mdwithNET-46,NET-60.
15. Conformance tests
- 15.1
src/analyzer/analyzer.spec-conformance.test.ts— trend detection, slope calculation. - 15.2
src/selector/preemptive.spec-conformance.test.ts— pre-emptive switch, smooth handoff. - 15.3
src/persistence/persistence.spec-conformance.test.ts— buffering, replay, sequence. - 15.4
src/recovery/recovery.spec-conformance.test.ts— backoff, jitter, continuity, priority.
16. Verify
- 16.1
bunx turbo lint typecheck test --filter=@suaveplan/network-plugin-transport-managergreen. - 16.2
bunx turbo test:coverage --filter=@suaveplan/network-plugin-transport-manager100/100/100/100. - 16.3
bun scripts/openspec-conformance.ts @suaveplan/network-plugin-transport-managerPASS.