The host has a hand on the other seat: once the game begins, Seats makes a transfer phrase for the other player, which gives the seat a new token when claimed, and gives the seat of a player who cannot go on to a housecarl, who plays the move it owes at once; the player's token opens nothing while it stands in, their page goes to the gallery with the reason and a claim box, and a rematch holds their seat without the housecarl; the server pings every socket and closes one a dead browser left open

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141G6xqLeNRYEtviLWSB5Up
This commit is contained in:
Eric WagonerandClaude Opus 5.5 committed 2026-10-16 19:04:33 -04:00
1 parent a2d3841cfe
commit f003301541
14 files changed
+429 -29

No files matched your search

+12
View File
@@ -47,6 +47,18 @@ README.
which asks for the key in `/etc/<slug>/keeper.key`, made by the deploy and
readable by root and the game's user alone. A spectator at a game in play
is told both ways back, and the hall asks before forgetting a game in play.
- **The host has a hand on the other seats**: once the game begins, *Seats*
in the host's masthead makes a transfer phrase for another person's seat
(claimed, it gives the seat a new token, as the keeper's link does), and
gives the seat of a player who cannot go on to a housecarl, who plays it
from the move the seat owes and does not speak in the person's name.
The person's token opens nothing while one stands in, with the reason;
their page goes to the gallery, where a claim box takes the host's
phrase. A rematch holds the person's seat and leaves the stand-in out.
- **A dead browser's socket is closed**: the server pings every socket on
the protocol's own ping, which browsers answer by themselves, and closes
one silent for a whole round, so a crashed tab does not linger in the
gallery's count.
- **Held seats are doubted before they are dropped**: the hall forgets a
seat only on the second refusal in a row from the server. A restart, a
stale answer or the wrong backend answer with ignorance, and ignorance