proto-socket/templates/language/IMPLEMENTATION_CHECKLIST.md
toki c384516b47 feat: implement new communication patterns and add cross-test support
- 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
2026-04-12 07:53:31 +09:00

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.