[object Object]

← back to Scarlet Riverboat Masquerade

5x: report — 2 sweeps clean after archive.org fetch-timeout hardening (sweep 2 fix)

111f1969bb78d26bf870aa73bab83e6add1c726a · 2026-09-02 09:01:48 -0700 · Steve Abrams

Files touched

Diff

commit 111f1969bb78d26bf870aa73bab83e6add1c726a
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 09:01:48 2026 -0700

    5x: report — 2 sweeps clean after archive.org fetch-timeout hardening (sweep 2 fix)
---
 5x/REPORT.md | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/5x/REPORT.md b/5x/REPORT.md
new file mode 100644
index 0000000..60e19e2
--- /dev/null
+++ b/5x/REPORT.md
@@ -0,0 +1,32 @@
+# /5x REPORT — dead.agentabrams.com/room/ (Scarlet Riverboat music room)
+
+Target: https://dead.agentabrams.com/room/ · verify-and-fix, 5 sweeps · stopped early on 2 consecutive clean sweeps.
+
+## Sweep ledger
+| sweep | verify | caught | fixed | commit |
+|---|---|---|---|---|
+| 1 | 3x six-way + clickthrough (headless) | 2 (both false positives — see below) | 0 (verify-before-acting: not real defects) | — |
+| 2 | real-Chrome interaction | 1 REAL: no fetch timeout → tiles pulse "…" forever when archive.org hangs | abort-timeout wrapper (`fetchT`, 9s) on all archive.org fetches + honest error copy | SRM `5x sweep 2` / dead room |
+| 3 | live deployed site, archive.org DOWN | 0 real defects | — | — |
+| 4 | live deployed site (repeat) | 0 real defects | — | DONE (clean twice) |
+
+## Sweep 1 — the 2 catches were NOT code defects
+1. **M3 `#mrSrc` "hidden" timeout** — panels collapse on load *by design* (Steve: "collapse all panels onload"). Element exists, hidden until ☰ tapped. Un-collapsing to satisfy the assertion would break the intended UX → rejected (never weaken the app to pass a mismatched assertion).
+2. **☰ Controls → `ERR_CONNECTION_REFUSED`** — archive.org's count queries refused from the *headless/datacenter IP* (archive.org blocks datacenter IPs; CTA saw the same). Not our code.
+
+## Sweep 2 — the one REAL defect found + fixed
+Under real-Chrome conditions, archive.org was **down** (`000`, connection refused — it's a flaky nonprofit). Exposed that the archive fetches had **no timeout**: a hung archive.org left the year tiles pulsing "…" indefinitely, and the graceful error state (which only shows when fetches *settle* as failed) never appeared.
+
+**Fix:** `fetchT(url, ms=9000)` — an `AbortController`-based timeout wrapper applied to both archive.org call sites (per-year counts in `buildMap`, and `searchArchive`). A hung/down archive now aborts at 9s and falls into the error state. Also corrected the misleading `searchArchive` error copy ("open over http, not file://" → "archive.org may be down. Try again in a bit.").
+
+**Verified:** with archive.org down, the map resolves to the error line in **7.6–7.7s** (was: infinite "…"), 0 page errors.
+
+## Final six-way state (live, during an active archive.org outage)
+- HTTP 200, renders, real Chrome/Safari/Firefox all load.
+- Panel opens in one tap; **2 source tabs, play, search, All-years all usable** even with archive.org down.
+- Source switch (GD ↔ Dead & Company) survives the outage without crashing.
+- **0 real JS/page errors** across sweeps 3 & 4.
+- Deployed bundle confirmed to contain the timeout wrapper + honest copy.
+
+## Open / caveat (honest)
+- **Happy-path (counts + shows actually load) could not be re-verified LIVE** during this run because **archive.org is externally down right now**. It was proven earlier on localhost when archive.org was up: Grateful Dead 1994 = 460 shows, Dead & Company = 874 shows, both sources' tiles heat-colored, 0 errors. The success code path is unchanged except for the pass-through timeout wrapper. Re-confirm once archive.org recovers.

← d2d1341 5x sweep 2: abort-timeout on archive.org fetches so a hung/d  ·  back to Scarlet Riverboat Masquerade  ·  contrarian FIX FIRST: per-build AbortController cancels stal 9899b13 →