Commit graph

  • 3b9ad08454 chore(release): v1.9.29 v1.9.29 ScreenTinker 2026-08-06 08:39:26 -0500
  • 996b0ab6c0 docs: 1.9.29 changelog ScreenTinker 2026-08-06 08:39:25 -0500
  • db8846a139 BrightSign: report what the host knows, through the channels the other players use ScreenTinker 2026-08-06 00:02:33 -0500
  • c2effc9f5f BrightSign: use the platform's own file-existence idiom, and don't re-fetch a staged package ScreenTinker 2026-08-05 23:22:09 -0500
  • a85e067260 chore(release): v1.9.29-rc5 v1.9.29-rc5 ScreenTinker 2026-08-05 23:00:59 -0500
  • c226bdddc6 docs: 1.9.29-rc5 changelog ScreenTinker 2026-08-05 23:00:58 -0500
  • 647a2bcc56 BrightSign: replace the Roku APIs, and a literal that stopped the script loading ScreenTinker 2026-08-05 22:57:36 -0500
  • 76ba6c7506 BrightSign: resolve the storage root by probing, and put widget storage on it ScreenTinker 2026-08-05 22:32:17 -0500
  • 0a888910dc Stop claiming offline cache on a runtime that refuses to run a service worker ScreenTinker 2026-08-05 19:34:52 -0500
  • ba45c2d60c chore(release): v1.9.29-rc4 v1.9.29-rc4 ScreenTinker 2026-08-05 16:32:21 -0500
  • 75c1940821 Fix the worker scope that made web offline playback silently inert, and prune superseded assets ScreenTinker 2026-08-05 16:30:12 -0500
  • 684e60fc55 Offline media on every player, and a revision so the cache can still be updated ScreenTinker 2026-08-05 15:27:36 -0500
  • cf3b2e62af Resume interrupted content downloads instead of restarting from zero ScreenTinker 2026-08-05 14:54:09 -0500
  • 3e6c97ba10 Merge: web player capability declaration and the cross-player parity matrix ScreenTinker 2026-08-05 14:36:28 -0500
  • 4153448c55 Merge: capability persistence, dashboard gating, server-side refusal ScreenTinker 2026-08-05 14:29:09 -0500
  • 6310f48590 Merge: platform-native capability declaration ScreenTinker 2026-08-05 14:25:46 -0500
  • f8e359895d Merge: platform-native capability declaration ScreenTinker 2026-08-05 14:25:46 -0500
  • 90eee4ce45 Merge: platform-native capability declaration ScreenTinker 2026-08-05 14:25:46 -0500
  • 0082191f9b Show only the controls a display can actually honour ScreenTinker 2026-08-05 14:24:52 -0500
  • e5583e529e The Tizen baseline describes a fielded panel, not the one we are shipping ScreenTinker 2026-08-05 14:21:19 -0500
  • c4ee7d008f web player: declare capabilities at runtime, persist them, and audit all four players ScreenTinker 2026-08-05 14:17:40 -0500
  • a08e6c3e06 Tizen does not have offline caching — correct the baseline ScreenTinker 2026-08-05 14:15:34 -0500
  • 5fe55307ba brightsign: declare capabilities from real hardware state ScreenTinker 2026-08-05 14:12:44 -0500
  • c07a56b47d Tizen declares what it can do, and volume and blanking now work ScreenTinker 2026-08-05 14:11:48 -0500
  • 812e89f28f Android declares what it can actually do, and can wake a panel it slept ScreenTinker 2026-08-05 14:08:52 -0500
  • 6bc709d2f7 The capability contract: what each player can actually do ScreenTinker 2026-08-05 13:59:04 -0500
  • d205a49dfa The settings PIN can be rotated and set from the dashboard ScreenTinker 2026-08-05 13:44:15 -0500
  • b419830629 Android: the boot notice now clears, and kiosk survives a reboot ScreenTinker 2026-08-05 13:30:48 -0500
  • 803f4ec26d Portrait templates, a canvas that matches the layout, and a playlist mockup ScreenTinker 2026-08-05 13:23:15 -0500
  • 604c390a55 Portrait on the web player was 420px off-screen — rotating a box does not move it ScreenTinker 2026-08-05 12:58:50 -0500
  • 1c7d5f1359 Rotation on BrightSign must rotate the output, not the DOM ScreenTinker 2026-08-05 12:49:26 -0500
  • df3a2879fa Remote screenshots use the framebuffer, and an opted-in tester can move forward ScreenTinker 2026-08-05 12:33:34 -0500
  • 7233466030 A stale bridge must not kill the heartbeat, and rc3 must invalidate the shell ScreenTinker 2026-08-05 12:18:44 -0500
  • 3059d8cd5c Fix the stored-archive check: unzip's totals row is not an entry v1.9.29-rc3 ScreenTinker 2026-08-05 11:46:06 -0500
  • c170861124 chore(release): v1.9.29-rc3 ScreenTinker 2026-08-05 11:37:53 -0500
  • de161bf43a Changelog for 1.9.29-rc3 ScreenTinker 2026-08-05 11:37:52 -0500
  • 30a71c1319 autorun.zip must be STORED and opened with roBrightPackage ScreenTinker 2026-08-05 11:36:18 -0500
  • cf1124d687 Mute reaches YouTube items — it never did, and failed opposite ways per player ScreenTinker 2026-08-05 10:50:59 -0500
  • 4ed7954f84 Drop the user-agent fallback — it could never fire ScreenTinker 2026-08-05 10:30:10 -0500
  • 039511b988 Merge: prove screenshot pixels arrived instead of assuming the draw worked ScreenTinker 2026-08-05 10:23:42 -0500
  • 9c04e2c113 Merge: BrightSign offline content caching and package self-update ScreenTinker 2026-08-05 10:20:50 -0500
  • 16b3dd949c Merge: BrightSign real telemetry and hardware identity ScreenTinker 2026-08-05 10:18:06 -0500
  • 90553852bf Merge: BrightSign native sync, wired end to end and chosen per group ScreenTinker 2026-08-05 10:15:22 -0500
  • 8fd6eb75d5 BrightSign: cache content for offline, and let the package update itself ScreenTinker 2026-08-05 10:09:00 -0500
  • 5a7277523a Wire BrightSign native sync end to end, chosen per group ScreenTinker 2026-08-05 10:06:18 -0500
  • 46b2227dfd BrightSign: real telemetry and hardware identity, not a block of nulls ScreenTinker 2026-08-05 10:03:33 -0500
  • e606cc83d1 Screenshots: prove pixels arrived instead of assuming the draw worked ScreenTinker 2026-08-05 10:01:03 -0500
  • 141deb97a5 screen_off must tear the video down — a DOM overlay cannot cover a hardware plane ScreenTinker 2026-08-05 09:40:17 -0500
  • c743aa4b81 BrightSign: real display power, reboot and volume — command parity ScreenTinker 2026-08-05 09:26:23 -0500
  • cb4376d9cd Actually attach autorun.zip to the release ScreenTinker 2026-08-05 00:14:29 -0500
  • 5ce094b1f8 chore(release): v1.9.29-rc2 v1.9.29-rc2 ScreenTinker 2026-08-05 00:06:20 -0500
  • fac6071813 Changelog for 1.9.29-rc2 ScreenTinker 2026-08-05 00:06:18 -0500
  • f86195df53 BrightSign: autorun.zip installer, built and shipped with every release ScreenTinker 2026-08-05 00:06:00 -0500
  • 58641e7bbe Persist the device token, not just the device id ScreenTinker 2026-08-04 23:57:04 -0500
  • 5cd56344d2 Ship brightsign/ in the image — the player assets 404 in a container ScreenTinker 2026-08-04 23:40:19 -0500
  • ad18914736 Label BrightSign players as BrightSign, not "Web Player" ScreenTinker 2026-08-04 23:31:56 -0500
  • b15b17f5dd chore(release): v1.9.29-rc1 v1.9.29-rc1 ScreenTinker 2026-08-04 23:29:06 -0500
  • 4e625abf50 BrightSign: boot from internal flash, proven on hardware ScreenTinker 2026-08-04 23:26:43 -0500
  • 5901067d8a Finish the BrightSign port: native sync, offline fallback, multicast guard ScreenTinker 2026-08-04 21:43:42 -0500
  • bc68cd2752 Drop a stale README claim — the bridge is wired into the player ScreenTinker 2026-08-04 21:28:07 -0500
  • 7fb94fbf70 Correct the BrightSign port against the dev-cookbook examples ScreenTinker 2026-08-04 21:27:53 -0500
  • fa68c8b7e3 Record the SyncManager API — the brightsign backend is no longer a blank ScreenTinker 2026-08-04 21:18:40 -0500
  • ce854ff2d8 Wire the BrightSign bridge into the web player ScreenTinker 2026-08-04 21:07:47 -0500
  • 6f5907a1d4 BrightSign: supervised player host, JS bridge, and per-group sync backend ScreenTinker 2026-08-04 20:26:12 -0500
  • 88f2c63229 Add scripts/force-update.js — operator CLI to force a check on one display ScreenTinker 2026-08-01 16:19:33 -0500
  • fca36c242a Open our own permissions screen from the in-service Settings menu Claude 2026-08-01 14:31:15 -0500
  • ff7bfb2ded chore(release): v1.9.28 v1.9.28 ScreenTinker 2026-07-30 23:02:18 -0500
  • 921c7ce3bb docs(changelog): 1.9.28 — platform QA sweep, 25 fixes Claude 2026-07-30 23:01:41 -0500
  • d51138624e Merge fix/qa-sweep: 25 fixes from the platform QA audit ScreenTinker 2026-07-30 22:57:39 -0500
  • ccbd63ba79 Stamp the authenticated device on relayed playback progress Claude 2026-07-30 22:41:06 -0500
  • a310d7d5b6 Stop the onboarding checklist counting a field no player reads Claude 2026-07-30 22:41:06 -0500
  • 9458af95fd Show the idle card on a group-synced screen when nothing is scheduled Claude 2026-07-30 22:30:16 -0500
  • 47bda040a2 Re-render when a screen leaves a sync group or a video wall Claude 2026-07-30 22:29:06 -0500
  • e3b01a5c7f Make a content-only schedule actually put that content on the screen Claude 2026-07-30 22:26:58 -0500
  • 3c1b2f62ee Make a recurring schedule respect its start and end dates Claude 2026-07-30 22:22:59 -0500
  • 416984d56b Draw a recurring schedule on every day it actually fires Claude 2026-07-30 22:18:29 -0500
  • 80c8c81fb8 Check that a schedule's zone belongs to the caller's workspace Claude 2026-07-30 21:54:24 -0500
  • 4a65c4cec7 Tell the screens when the playlist they are showing is deleted Claude 2026-07-30 21:50:50 -0500
  • 9ea1b5e07b Stop eight dashboard views reporting success for requests the server refused Claude 2026-07-30 21:21:56 -0500
  • d978a5d2a6 Make per-item scheduling work on Android 7 instead of blanking the screen Claude 2026-07-30 21:20:41 -0500
  • f4d309a0d4 Apply a playlist change even when the outgoing item never advances Claude 2026-07-30 21:17:44 -0500
  • d3f6af831b Recover a zone whose video fails, instead of leaving that region black Claude 2026-07-30 21:11:59 -0500
  • f66c941c1d Stop the content edit dialog rewriting types it cannot represent Claude 2026-07-30 21:09:59 -0500
  • a3b668d32f Treat an empty device_info as "nothing new", not as "forget what you know" Claude 2026-07-30 21:09:11 -0500
  • fb8cafc444 Web player: survive the suspended-account card destroying the status element Claude 2026-07-30 21:08:06 -0500
  • 64a6bfd860 Web player: notice when the layout changes, not just when the items do Claude 2026-07-30 21:06:23 -0500
  • d580994bb3 Carry a widget's revision into the multi-zone path on Android Claude 2026-07-30 21:04:10 -0500
  • acadb4c1f4 Stop the playlist and the OTA checker when the Activity is destroyed Claude 2026-07-30 21:03:19 -0500
  • 6e9a1f9711 Drop an image decode that finished after the screen moved on Claude 2026-07-30 21:01:37 -0500
  • 88e4a9eb49 Respond to a server rejection once, and stop destroying the cache over a transient one Claude 2026-07-30 20:59:49 -0500
  • 9c6b80c411 Apply a saved device snapshot only inside the workspace it was taken in Claude 2026-07-30 20:56:59 -0500
  • 14367af5f1 Keep a workspace on schedules that outlive their device group Claude 2026-07-30 20:53:21 -0500
  • 9958c7c7be Save a layout by diffing its zones, not by deleting and re-inserting them Claude 2026-07-30 20:51:28 -0500
  • c393cf8ab3 Hold overlay pushes to the same write check as every other fleet action Claude 2026-07-30 20:46:03 -0500
  • 81f5d4f9f3 Stop shrinking hand-written text widgets into illegibility Claude 2026-07-30 20:28:28 -0500
  • e0bdd3b65c Web player: re-render a widget whose content was edited Claude 2026-07-30 20:17:22 -0500
  • 5c6e0325b1 Widget edits reach the web and Tizen players too, and a pinned render can be cached offline Claude 2026-07-30 20:09:06 -0500
  • 6e3be7a95a Include a widget's revision in the playlist change signature Claude 2026-07-30 20:03:32 -0500
  • cad19abee1 Push layout edits to displays, and let a layout be renamed Claude 2026-07-30 19:58:21 -0500
  • abdb3b434d Silence a backgrounded player, and rebuild zones when a layout is edited in place Claude 2026-07-30 19:48:31 -0500