Problem
The fork-only RX Coverage page starts at hardcoded [51.0, 4.8], zoom 8. It does not use configured map defaults, accept an explicit URL viewport, or save its own viewport. Reusing the main map's map-view key would also make the pages unexpectedly recenter each other.
Upstream reference: Kpa-clawbot/CoreScope#2033.
Acceptance criteria
Initial viewport precedence:
- Valid explicit URL
lat/lon/zoom
- Valid
rx-coverage-view local-storage value
/api/config/map
- Documented offline fallback
Additionally:
- Read/write only
rx-coverage-view, never main-map map-view.
- Invalid, partial, or out-of-range values fall through safely.
- Preserve
days and rx query state as viewport state changes.
- An observer-only
rx= deep link still fits that observer's coverage.
- Delayed config/extent/coverage responses cannot affect a destroyed page.
- Existing coverage filtering and leaderboard behavior remains unchanged.
Verification
Cover every precedence level, invalid persistence, key separation, observer-only links, navigation/remount, and delayed responses. Register tests locally and in CI without workflow trigger, permission, or guard changes.
Non-goals
No scoring/storage/privacy change, RX enablement, or deploy.
Problem
The fork-only RX Coverage page starts at hardcoded
[51.0, 4.8], zoom8. It does not use configured map defaults, accept an explicit URL viewport, or save its own viewport. Reusing the main map'smap-viewkey would also make the pages unexpectedly recenter each other.Upstream reference: Kpa-clawbot/CoreScope#2033.
Acceptance criteria
Initial viewport precedence:
lat/lon/zoomrx-coverage-viewlocal-storage value/api/config/mapAdditionally:
rx-coverage-view, never main-mapmap-view.daysandrxquery state as viewport state changes.rx=deep link still fits that observer's coverage.Verification
Cover every precedence level, invalid persistence, key separation, observer-only links, navigation/remount, and delayed responses. Register tests locally and in CI without workflow trigger, permission, or guard changes.
Non-goals
No scoring/storage/privacy change, RX enablement, or deploy.