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>
This commit is contained in:
parent
c2a7e40b67
commit
82aead6cea
9 changed files with 448 additions and 7 deletions
|
|
@ -3,6 +3,7 @@ id: CB-WP-0034
|
|||
kind: product
|
||||
title: "Who you are bonding with"
|
||||
status: done
|
||||
state_hub_workstream_id: "bde0c1d5-a76c-4431-a48a-a9fa81f4d0cc"
|
||||
---
|
||||
|
||||
# Purpose
|
||||
|
|
@ -52,6 +53,7 @@ neighbours as they were.
|
|||
id: CB-WP-0034-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "d8429ce2-991a-45df-9fcd-6b70b0e81511"
|
||||
```
|
||||
|
||||
**Controls:**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue