You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Self-hosted Google Fonts (closes #40) — Bebas Neue, Playfair Display, Inter, Anton, Monoton, and Oswald shipped as bundled woff2 files. Survives internet outages with zero CDN dependency.
Per-section info panel toggles (closes #64) — independent visibility switches for title, subtitle, meta, summary, tech box, and player info. All default ON.
HA WebSocket subscription + SSE push (closes #10) — server connects to HA's WebSocket API for real-time state changes. Browser falls back to 30s poll instead of 5s polling.
Poster framing modes (closes #67), film-grain overlay (closes #27), Ken Burns pan (closes #22) — visual polish features.
Fixed
Film-grain overlay always visible — CSS was missing display: none gate, now gated on body.visual-film-grain
haWs.stop() never called on graceful shutdown — WebSocket connection leak on restart
Cross-device config sync: posterFraming, filmGrain, kenBurns were never registered in the overlay store, causing setup UI saves to silently drop them. All 27 visual settings now persist server-side.
Setup form now has controls for posterFraming, filmGrain, and kenBurns (were env-var only)
Changed
No more Google Fonts external dependency at runtime — fonts shipped in add-on image