4407110147b294d98acf91adf6db5fc7bf6f5299
Extract endGame/finalizeIfEnded to game-end.ts so driver.ts can call finalizeIfEnded after an applied move (fix: bot checkmate was not setting game.status='finished'). Wrap entire dispatch() call in try/catch for exception safety. Move lastSeenAnnouncementCount advance to after successful dispatch so retry attempts see FSM rejection announcements. Add checkmate-finalize test; lock retry-cap at 5 calls. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
Web-based two-player chess where each player sees only their own pieces; the server is the moderator.
Languages
TypeScript
76.5%
Svelte
20.2%
Shell
1.9%
CSS
0.9%
HTML
0.3%
Other
0.1%