Repository navigation
regions: trim back to the first Regions PR (#501) — revert #502, #503, #505, #507, #510 #523
Copy link
Copy link
Closed
Description
Decision
The extra Regions views added after the first Regions PR cost too much memory and CPU for what they deliver. On staging, RSS rose by about 150–300 MB, and the 5-minute relay snapshot recompute now walks every transmission and observation to build history, routes, membership and evidence. Payloads are history 1.1 MB raw / 141 KB gzip and routes 5.4 MB raw / 679 KB gzip.
The owner has decided to keep only the first Regions PR (#501, the Latest view with 1h/24h/7d windows and coverage) and remove the rest.
Remove (revert the merge commits, newest first)
| PR | Merge | What |
|---|---|---|
| #510 | 6fe9603 | Budget redesign and capture diagnostics |
| #507 | 45c9607 | Per-bucket/per-scope evidence, membership capture |
| #505 | c6574b4 | Connections view, /api/regions/routes, StoreObs transport fields |
| #503 | 9933d05 | Health & trends |
| #502 | 5ff889d | Timeline and period comparison, /api/regions/history |
Keep
- feat(regions): add time windows and retained-history coverage #501: Latest view and
/api/regions/observed. - History coverage: prove retained history instead of exact load ratio #511 (afc27e9 and related): loading transmissions re-heard during the background load, and the retained-history coverage floor. This is a general fix that node
activity24h/ My Mesh also rely on. - The CI change from a3f3716 (in feat(regions): timeline playback and period comparison #502) that imports E2E coverage from every successful shard, together with its test in
test-ci-shards.js. This is generic CI and not Regions cost, so re-apply it on top of the reverts. - Every other merge from the period that is not Regions-specific: perf(store): move runtime SQL outside packet-store locks #495, RX 1h airtime + TX/RX on observer detail #498, fix(channels): keep regional counts and latest message consistent #499/Stale-while-revalidate for region channel lists #517/Channels SWR: recover and reset generation #520, fix(nodes): calculate analytics over available retained history #494/Analytics coverage follow-ups (late counter, separator test) #513, perf(api): cache /api/observers/metrics/summary server-side (0.9 s warm, 2.7–4 s cold; now used by three views) #506/Cache observer metrics summary server-side #512, test: two intermittent E2E failures seen 2026-10-20 (nav-stats Live subscription, channels PSK region change) #514/Deflake nav-stats Live and channels PSK E2E #515 and so on.
Notes
- With fix(regions): exclude planned paths from observed history #507 gone, Latest falls back to feat(regions): add time windows and retained-history coverage #501's original attribution, which counts planned DIRECT paths toward scope membership. That is how Regions worked in v0.2.4/v0.2.5, and it is accepted.
- regions: config switch regions.enabled to turn off Regions background work per instance (default on) #518 (
regions.enabled) becomes unnecessary and will be closed. - A trial revert of the five merges on master d18ffd2 applies cleanly.
go test ./...incmd/serverpasses andtest-regions-map.jspasses.
Acceptance
- One PR containing the five reverts plus the re-applied CI-shard coverage change.
- No remaining references to
/api/regions/historyor/api/regions/routes, or toregions-history.js/regions-routes.js, in the server, frontend,index.html, OpenAPI or docs. - The Regions page on desktop and mobile shows Latest with windows and coverage, and has no dead tabs or controls.
cmd/serverandcmd/ingestorgo test ./...pass, including-raceon the regions, store and load tests. The frontend unit tests pass, and so do E2E for regions and home/My Mesh.- The perf(store): move runtime SQL outside packet-store locks #495 lock rule (no SQL under
PacketStore.mu) still holds. - The PR description includes a perf justification. The coordinator measures RSS and the relay recompute time on staging before and after.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
test(regions): scope residual scan away from release notes; document …
dborup commentedon Oct 23, 2026
Fixed by #524 (merged as
0350322e6cd0be6aad5d507f4e033e411402d7bc).