# 1.2.0 (2026-11-04) - `/photo`: full-screen photo frame with crossfade, a blurred backdrop or fill mode, shuffle, and the date taken. - It picks up new settings and photos within about 30 seconds and reloads itself every 12 hours. - Admin **Photos** tab: - Google Photos shared albums: paste the share link, use **Check**, and **Sync now**. The tab shows sync status, stale warnings and errors. - Slideshow options. - Photo uploads. Each upload is resized in the browser to 1920px plus a 64px backdrop thumbnail. - Albums sync every 6 hours (and 15 seconds after start). - Each sync caches up to 500 photos per album at 1920px under `/data/photos`, skips videos, and removes photos deleted from the album. - `/api/health/photos` returns 503 when an enabled album has not synced for 48 hours. - History and Restore now cover photo settings too. A restore re-syncs any album it brings back. - The minimum admin password length is now 6. # 1.1.0 (2026-11-04) - Password-protected, LAN-only `/admin` screen for calendar links (masked, test, history/restore). - Calendars are read from `/data/settings.json` (seeded once from the calendar secret). - The supervisor drops privileges right after reading secrets. A front proxy on :3000 records the real client IP. - `/photo-admin` redirects to `/admin#photos`, a placeholder for the upcoming photo frame. # Release 1.0.0 Built and validated on 2026-11-04. - Replaced the hosted Cloudflare/Vinext runtime with a standard production Next.js container. - Added runtime-only calendar secrets and optional bearer authentication. - Added configurable timezone and weather settings, bounded feed responses, redirect validation, health checks, and hardened Compose settings. - Included cross-platform configuration, backup, restore, and migration documentation. - Included NVIDIA Shield wrapper v1.4 (`com.dayline.tv`, version code 5) with local URL support, exact-origin enforcement, optional bearer injection, controlled private-LAN HTTP, internal-CA support, and hosted rollback. - Preserved the existing app identity, signing certificate, private app data, and per-device schedule flag during in-place upgrades. The current hosted dashboard and installed Shield applications are not changed merely by extracting this package. Follow `MIGRATION.md` when the internal server URL is ready.