Alpha pre-release — stability wave for the 3.7 line. No new features, no breaking changes, no config changes. If alpha2 was working for you, this is a strict upgrade; install to exercise the fixes and report findings.
What's fixed
Everything from a full-project code review plus four issues debugged live during the alpha2 soak:
Radar pipeline
- Long-running dashboards no longer accumulate duplicate frames — the 5-minute refresh now checks the source actually published something new before shifting the loop.
- Pan/zoom no longer triggers a full teardown + refetch after frame dedup (and the same-shape init guard survives tracked-marker GPS jitter).
- The periodic-refresh timer can no longer fork into parallel chains after rate-limit retries or sleep/wake.
DWD radar (the big one for German users)
- The coverage mask is now a single shared layer instead of one per frame — at 12 h history the old design created ~144 mask layers ≈ ~900 redundant tile requests per init, and the boundary visibly wobbled during forecast playback.
- Forecast rain no longer renders outside the coverage boundary — the radar pane is clipped to the coverage region via
clip-path. - Fixed a mask-pane leak where dedup compaction left orphaned layers attached forever.
Overlays
- NWS alerts / wildfire polling now backs off exponentially on fetch failures, so an api.weather.gov rate-limit block actually clears instead of being kept alive by the retry cadence.
- Opening the editor no longer freezes the UI under a large lightning backlog — strikes now materialise newest-first in time-budgeted slices.
- A transient NIFC failure no longer blanks displayed wildfire perimeters; NOAA "soft-error" tiles (200 OK with an XML body) are detected and retried.
- Hidden cards now fully stop wind, wildfire, and alerts work (previously some loops kept running off-screen).
State & misc
- Per-user state (playback speed) can no longer be wiped by a hydrate/write race or lost on dashboard navigation.
- Editing the card no longer rebuilds the map on every keystroke.
- Three unbounded caches bounded; antimeridian handling fixed for Alaska/Aleutian geometries; playback-speed button no longer jumps to ¼× after a non-preset YAML value; strict-CSP construction crash fixed.
Internal
- Per-tick progress-bar work reduced to changed-segments-only; post-pan motion-comp/clip refresh debounced 250 ms; ~45 new regression tests (591 total).
Full changelog: v3.7.0-alpha2...v3.7.0-alpha3