First stable release since v0.2.2 — promotes the v0.2.3/v0.2.4 beta line. No breaking changes; existing configs work unchanged.
What's new
- Ultrawide / letterbox rendering. The night mask, twilight glow, hour band, and time-zone boundaries now wrap-tile across the seam, so the map fills displays wider than its native 2048×1068 viewBox instead of leaving the side bars blank. Matters most for fullscreen dashboards and the geoclock.world demo / wallpaper page.
- Short weekday in marker times. Marker labels now read e.g.
3:50 PM Wedinstead of3:50 PM Wednesday— narrower, locale-aware, and consistent with the companion wallpaper app. Toggle the day off entirely withmarkerShowDay: false. - Editor robustness. The visual editor now guards against non-numeric entry in number fields (no more
NaNbrightness), normalizes the twilight color to a valid hex for the swatch, preserves custom alpha on color pickers, and shows corrected ranges + entity-fallback help text.
Performance
Steady-state and interaction CPU on always-on dashboards (tablets, Pi) is substantially lower:
- Terminator geometry is memoized on (map time, center longitude) instead of rebuilt every render.
- Hover updates are coalesced to one per animation frame — mousing over the map no longer triggers a full re-render per pointer event.
- The time-zone overlay re-projects only when the center longitude drifts past 0.5° (was rebuilding ~419 polygons every ~10 s in sun mode); sub-threshold drift is absorbed by a group translate.
- Wrap-tile copies of the TZ layers and hour band are
<use>references rather than duplicated subtrees, and the TZ polygon fields are no longer reactive state (eliminating a double render).
Correctness / internal
- WebKit filtered-mask viewport-clip workaround. WebKit clips each filtered element inside an SVG
<mask>to roughly one viewport width, which truncated the night layer with a hard vertical edge that shifted with the aspect-fit mode. The night mask is now a single-viewport region with the feathered polygon tiled as<use>copies — seamless under all fit modes. - IANA time-zone lookup cache coarsened to ~1 km keys and capped at 512 entries so a moving
device_trackermarker can't grow it without bound. imageryBasesanitization — restricted to http(s) / page-scheme, since config can arrive from a URL parameter on the public demo page.
Upgrading
HACS users: update as normal. No config changes are required. If you set markerShowDay and want the old long-weekday text, that format is no longer available — the short weekday is now the only labelled form.
Full Changelog: v0.2.2...v0.2.5