3.1 KiB
3.1 KiB
Implementation and acceptance checklist
This is a coordinator checklist, not a claim that the items are complete. Mark an item only with code evidence, tests, and an integration result. Record the commit/test command or issue beside each checked item. A feature marked planned in the other documents must remain visibly planned here until proven.
Milestones 1–6
- 1 — authenticated direct relay: local UDP listener; direct UDP handshake; HMAC-authenticated data; replay window; keepalive/expiry; one backend UDP socket per authenticated client; multi-client isolation; TOML; logs and basic stats.
- 2 — QUIC DATAGRAM: certificate loading and hostname verification; client challenge/response; datagrams; keepalive/MTU; reconnect; multi-client handling without core API redesign.
- 3 — automatic selection:
mode = "auto"; direct UDP then QUIC; bounded probes/retries; auth rejection stops probing; jittered reconnect; status reports selected transport. - 4 — HTTP/3 CONNECT-UDP: standard CONNECT-UDP/HTTP Datagram semantics; authentication; backend mapping; reuse QUIC infrastructure where practical.
- 5 — TLS/TCP fallback: TLS listener; client authentication; bounded big-endian length framing; bidirectional datagram reconstruction; fallback integration; expected head-of-line behavior documented.
- 6 — operational polish: Unix control socket; status/stats/reconnect commands; config validation; systemd units; capability guidance; certificate and configuration reload; benchmarks; fuzzing; installation docs.
v1 completion criteria (spec §89)
- 1. Multiple clients concurrently reach one UDP backend.
- 2. No WireGuard-specific logic exists.
- 3. Direct UDP works reliably.
- 4. QUIC DATAGRAM works reliably.
- 5. HTTP/3 CONNECT-UDP works.
- 6. TLS/TCP fallback works.
- 7. Automatic transport selection works.
- 8. Authentication is enforced on every public transport.
- 9. Direct UDP has replay and integrity protection.
- 10. Direct UDP NAT rebinding works.
- 11. Sessions expire and clean up correctly.
- 12. The server survives malformed and unauthenticated traffic.
- 13. The daemon runs unprivileged except optional bind capability.
- 14. TOML configuration is clearly validated.
- 15. Meaningful status and statistics are available.
- 16. Reconnects occur automatically.
- 17. Automated integration tests cover multi-client operation.
Required evidence before v1 sign-off
- Unit tests cover parsing, malformed input, auth, key derivation, replay, config validation, and timeout logic.
- Integration tests cover direct client/server, concurrent clients, source-port change, auth rejection, restart/reconnect, backend outage, oversized datagrams, and expiry; later transports have equivalent coverage.
- Fuzz targets exercise direct packets, TCP frames, and auth messages.
cargo test, formatting, linting, and any documented integration/bench commands pass from a clean checkout.- Review confirms no payload/secret logging, no unsafe privilege grant, and no accidental WireGuard/routing/firewall coupling.