Browser output was confirmed in the web player, vMix and OBS.
Schedule now highlights the block that was just created.
Calendar blocks show start/end ranges and a readable duration chip.
Gaps show their full time range so operators can fill the right window faster.
Admin navigation is now grouped around Prepare, Program and Operate.
Loop Builder separates scheduled loops from fallback-only carousel updates.
Local Supabase media uploads now play publicly through /api/media/assets/:assetId.
Deploy/read-only smoke scripts now persist the latest smoke result for health checks.
Guest lineup plates can now be individualized per slide from /admin/guests.
Metals plates now use the Roxom metals API for gold and silver with Pyth fallback.
Weather plates now have a no-key Open-Meteo fallback.
Calendar/event plates now use a persisted events table.
Normal video programs can show a four-corner Previously Recorded bug in browser output.
The US debt plate no longer depends on a missing background asset.
Supabase bootstrap SQL is available for setting up a fresh backend.
A standalone guest lineup SQL migration is available at /manual/guest-lineup-migration.sql.
OpenNext/Cloudflare Workers deploy scripts are configured for alternate production validation.