mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-05-11 20:54:43 +00:00
7aef3c355c
## Problem The E2E fixture DB (`test-fixtures/e2e-fixture.db`) has static timestamps from March 29, 2026. The map page applies a default `lastHeard=30d` filter, so once the fixture ages past 30 days all nodes are excluded from `/api/nodes?lastHeard=30d` — causing the "Map page loads with markers" test to fail deterministically. This started blocking all CI on ~April 28, 2026 (30 days after March 29). Closes #955 (RCA #1: time-based fixture rot) ## Fix Added `tools/freshen-fixture.sh` — a small script that shifts all `last_seen`/`first_seen` timestamps forward so the newest is near `now()`, preserving relative ordering between nodes. Runs in CI before the Go server starts. Does **not** modify the checked-in fixture (no binary blob churn). ## Verification ``` $ cp test-fixtures/e2e-fixture.db /tmp/fix4.db $ bash tools/freshen-fixture.sh /tmp/fix4.db Fixture timestamps freshened in /tmp/fix4.db nodes: min=2026-05-01T07:10:00Z max=2026-05-01T14:51:33Z $ ./corescope-server -port 13585 -db /tmp/fix4.db -public public & $ curl -s "http://localhost:13585/api/nodes?limit=200&lastHeard=30d" | jq '{total, count: (.nodes | length)}' { "total": 200, "count": 200 } ``` All 200 nodes returned with the 30-day filter after freshening (vs 0 without the fix). Co-authored-by: you <you@example.com>