Ran a 7-reviewer × per-finding-verifier workflow over the Wave 2 code; 9 of 13
raw findings survived adversarial verification. Fixes:
- quakes.js: refresh now UPDATES revised quakes, not just dedupes — a signature
(mag|place|depth|time) per id detects USGS revisions and rebuilds that entity,
so a quake revised M4.4→M5.2 no longer stays visually understated (SPEC2 §2
"update, don't duplicate").
- aircraft.js: (a) poll() drops its result if the clock scrubbed off-live mid-
fetch, so late live data never paints over the replay view; (b) re-enabling the
aircraft layer while scrubbed now restores the replayed frame instead of
leaving it hidden; (c) transient (non-404) history errors schedule a bounded
retry so a paused clock doesn't wedge on an error frame.
- satellites.js: ground track centers on the VIEWER clock (not wall-clock now)
so it stays under a scrubbed satellite; and it hides when the Satellites layer
is toggled off (no stray dashed line).
- main.js: malformed camera hash with blank tokens (#c=,,,,) is now rejected
instead of applying a bogus (0,0,0) camera — falls back to the default view.
- serve.py: history t-parse catches OverflowError (t=inf/1e999 → 400, not a
crashed handler); stale-on-error now also covers upstream 5xx, not just 429.
Verified: t=inf/-inf/1e999/nan → 400; malformed hash → default Gulf camera;
ground track 427 km from the scrubbed dot (was ~2 orbits off) and hidden on
layer-off; aircraft re-enable during replay restores 6062 billboards; zero
console errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>