clay-borg/tools/cb-play/src
tegwick 82aead6cea
Some checks failed
ci / check (push) Failing after 4s
CB-WP-0035: a session that answers nothing
Two reports, one cause: the script's fetch had no .catch. When the server
had exited the promise rejected, the chain never ran, and not even the
status line moved — so a dead server and a click that did nothing were
indistinguishable. play again read as a dead button, and the linger
timeout was invisible.

Now a rejection says the session is gone and seals the page, and a
5-second heartbeat against a new /alive notices it without needing a
click, which is what the timeout case requires. The beat carries the
token, and does not extend the linger: that deadline is absolute.

The harness had the same hole. jsrun's fetch stub had no .catch, so the
branch that notices a dead server would have been unreachable in every
test — the very defect the stub's own comment records from CB-WP-0024.
Teaching it __failing, .catch and a recorded setInterval was the fix;
writing the script defensively would have repeated the trap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 20:31:32 +02:00
..
hotseat.rs CB-WP-0035: a session that answers nothing 2026-08-07 20:31:32 +02:00
inspect.rs GR-E03 and GR-E04 played to the end — F14 closed, and the reason they were 2026-08-07 10:38:27 +02:00
main.rs GR-E03 and GR-E04 played to the end — F14 closed, and the reason they were 2026-08-07 10:38:27 +02:00
table.rs CB-WP-0033: a game is the unit 2026-08-07 17:41:11 +02:00