diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a14eec..6af74bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog +## 1.9.29-rc1 + +**BrightSign port.** The player on BrightSign is the ordinary web player running in an +`roHtmlWidget` — that part already worked. This release adds the host around it, which covers what a +page cannot do for itself, and a per-group choice of synchronisation protocol. + +Release candidate: cut for testing on alpha, not for production fleets. + +### Added +- **`brightsign/autorun.brs` — a supervised host, not a URL wrapper.** It owns the widget lifecycle, + because a page-initiated `location.reload()` does not reliably bring an `roHtmlWidget` back: a + deploy on 2026-07-28 reloaded every connected player and the BrightSign was the only one that never + returned. The page now posts `{type:"restart"}` and the host rebuilds the widget. It also retries + `load-error` with backoff, falls back to a local page, and runs a heartbeat watchdog that catches a + page which loaded fine and then wedged — the case `load-error` never reports. +- **`brightsign/st-bridge.js` — the page's half of that contract**, over `@brightsign/messageport`. + Registry-backed identity (the registry outlives `localStorage` on this platform), + restart-instead-of-reload, heartbeat, and sync-backend reporting. Every method degrades to a no-op + off-platform, so it is served to every player rather than gated on a user agent. +- **`brightsign/st-sync.js` — native SyncManager support.** Frame-accurate video sync between + BrightSign players via `setSyncParams` on the standard `