A move names the round it was made for; a stale one is refused

The room counts rounds played and sends the count in its view; a page
sends it back with each move, and the server refuses a move whose count
is behind (a slow connection, a second click, a stale tab), or that has
no count at all (an old page, told to reload). Before, such a move was
taken as the move for the next round. Found in Dip's acceptance run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
Eric WagonerandClaude Opus 5.5 committed 2026-09-25 22:19:45 -04:00
1 parent f0d06db108
commit 41349036d1
5 files changed
+23 -6

No files matched your search

+2
View File
@@ -36,6 +36,8 @@ export interface RoomView {
seats: { id: WizardId; name: string; bot: boolean }[];
/** Seats that still have to move before the turn resolves. */
waitingOn: WizardId[];
/** Turns played so far, time stops included; gestures are sent with the count they were made against. */
resolved: number;
state: GameState | null;
chat: ChatLine[];
/** How many watch from the Peanut Gallery. */