- Add Transport class for unified communication layer - Implement new communicator patterns - Add VERSIONING.md for version management - Add crosstest files for Dart/Go integration testing - Update protocol documentation - Add new skills and templates for AI-assisted development - Various bug fixes and improvements to Dart implementation
43 lines
1.8 KiB
Markdown
43 lines
1.8 KiB
Markdown
# Implementation Checklist
|
|
|
|
Target protocol version: `0.1`
|
|
|
|
## Protocol Core
|
|
|
|
- [ ] Generated protobuf bindings from the canonical schema.
|
|
- [ ] Parser map registers application messages by protocol-compatible `typeName`.
|
|
- [ ] Built-in `HeartBeat` registration is owned by the framework.
|
|
- [ ] `PacketBase.typeName`, `nonce`, `data`, and `responseNonce` semantics match `PROTOCOL.md`.
|
|
- [ ] Same `typeName` cannot be registered for both normal listener and request listener on one connection.
|
|
|
|
## Transport
|
|
|
|
- [ ] `Transport` abstraction exposes only packet write and close operations.
|
|
- [ ] `Communicator` does not know whether the connection is TCP, TLS+TCP, WS, or WSS.
|
|
- [ ] TCP framing writes a 4-byte big-endian length followed by one `PacketBase` protobuf payload.
|
|
- [ ] TCP reader rejects zero-length packets as no-op and closes on invalid or oversized lengths.
|
|
- [ ] WebSocket reader/writer uses one binary frame per `PacketBase` payload.
|
|
- [ ] TLS+TCP and WSS are supported or explicitly marked unsupported with a reason.
|
|
|
|
## Lifecycle
|
|
|
|
- [ ] Close is idempotent.
|
|
- [ ] Pending requests complete with an error when the connection closes.
|
|
- [ ] Writes are serialized so packet bytes cannot interleave.
|
|
- [ ] Read, write, heartbeat, and close errors converge on the same disconnect path.
|
|
|
|
## Features
|
|
|
|
- [ ] Fire-and-forget send.
|
|
- [ ] Request-response send with timeout or cancellation.
|
|
- [ ] Concurrent requests route by `responseNonce`.
|
|
- [ ] Heartbeat sends after inactivity and closes after missing response.
|
|
- [ ] Server broadcast, if the language package exposes server helpers.
|
|
|
|
## Verification
|
|
|
|
- [ ] Formatter/linter passes.
|
|
- [ ] Same-language TCP tests pass.
|
|
- [ ] Same-language WS tests pass.
|
|
- [ ] TLS/WSS tests pass where supported.
|
|
- [ ] Cross-language tests pass in both server/client directions.
|