Bug-fix round — three community reports, one installer glow-up.
🛠 Fixed
Google/Microsoft calendar now works on displays (#43) — the calendar feed authenticated through the viewer's browser session, so any wall display rendering the public view showed an empty calendar. Tokens are now resolved server-side from the stored integration — kiosk displays finally get calendar data without a login. (iCal feeds were never affected.) Thanks @kylermurphy for the precise DevTools repro.
Lock entities can now be toggled (#45) — Home Assistant has no lock.toggle, so tapping a lock tile silently did nothing. Taps now resolve the real service from the current state (lock.lock / lock.unlock), tested against a real Nuki.
No-op "background opacity" hidden on Image + Camera (#39) — full-bleed media fills the whole tile, the slider never did anything visible there.
✨ Installer
- The completion summary now shows your LAN address (
http://<your-ip>/editor) instead of a uselesslocalhost— and respects customHTTP_PORTeverywhere, including the health check (which previously polled port 80 blindly on custom-port installs). - The installer restarts itself once when an update replaces it — updating from pre-v1.0.9 versions no longer triggers a pointless from-source build.
- A little colour. ✨
📚 Docs
README restructured (compact with collapsible sections, 13-widget table, Google-Calendar setup tips — secret iCal vs. OAuth on a LAN-only install), Kubernetes manifests now pull the published ghcr images.
📦 Update
cd magic-frame && ./deploy/install.shYour data stays untouched. Rollback any time: set MAGIC_FRAME_VERSION=1.1.1 in .env and re-run.