|
Some checks failed
ci / check (push) Failing after 4s
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> |
||
|---|---|---|
| .. | ||
| cb-play | ||
| cb-sim | ||
| cb-cost.py | ||
| dep-weight.py | ||
| design-baseline.py | ||
| design.py | ||
| edition-check.py | ||
| facts.py | ||
| gate-review.py | ||
| loop-lint.py | ||
| mutation-check.py | ||
| replay-test.py | ||
| repo.py | ||
| rule-coverage.py | ||
| runtime-metrics.py | ||
| size-metrics.py | ||
| status.py | ||
| task-done.py | ||
| trials.py | ||