- Replace in-memory auth sessions with signed cookies and signed OAuth state
- Add auth route coverage and update panel/web server wiring
- Switch test script to per-file Bun processes and clean up type checks
Two bugs fixed:
- Piece <img> elements were intercepting pointer events, preventing
dnd-kit drag handlers and square click handlers from firing. Added
pointerEvents: "none" so events pass through to the board framework.
- Solo test mode (fillRoom with duplicate player IDs) always resolved
to "white" in colorOfPlayer, making black moves impossible. Now
detects duplicate IDs and returns the current turn's color instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add chess as the first game plugin using the existing multiplayer framework.
Server-side game logic uses chess.js with server-authoritative clock management.
Client uses react-chessboard v5 with cburnett piece set, drag-and-drop + click-to-move,
configurable time controls (bullet/blitz/rapid/classical/none), draw offers,
resignation, and timeout detection. Extends the game framework with room creation
options to support per-game configuration. Includes 57 tests covering all code paths.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>