Changelog · v0.4.0
Contract-driven protocol and test suites
Changed
- WebSocket actions generate from the contract, so adding one needs only a contract edit, and compression is on by default.
- Lobby lookup and random number handling get cleaned up, and match saves from older schemas load gracefully.
Added
- The backend gains a doctest suite for the engine, rules, and serialization.
- The frontend gains a Vitest harness for lobby, game, and WebSocket behavior.
Fixed
- Pending requests reject on disconnect, double submits are blocked, and reconnects stop re-registering listeners.