Commit graph

  • 4cc750ba3a Text widgets: stop losing text off the bottom, and show an edit without an app restart Claude 2026-07-30 19:44:12 -0500
  • 452c286357 Stop a YouTube embed when the playlist moves off it Claude 2026-07-30 19:33:15 -0500
  • 752f39ea43 chore(release): v1.9.27 v1.9.27 ScreenTinker 2026-07-30 19:16:55 -0500
  • f7bf9412e4 docs(changelog): 1.9.27 — beta APK channel with a working switch back Claude 2026-07-30 19:16:48 -0500
  • 6d33d00cd0 Merge feat/ota-two-channel: serve a beta APK alongside stable, with a real switch back ScreenTinker 2026-07-30 19:13:51 -0500
  • b44f9d4f03 Serve a beta APK alongside the stable one, and let a display move between them Claude 2026-07-30 19:12:46 -0500
  • d70764991e chore(release): v1.9.26 v1.9.26 ScreenTinker 2026-07-30 18:43:35 -0500
  • ac68e95b2b docs(changelog): 1.9.26 — YouTube advance, clearable playlists, pre-release opt-in Claude 2026-07-30 18:43:27 -0500
  • dd7596a674 Merge docs/readme-catchup: README catch-up and CHANGELOG backfill Claude 2026-07-30 18:39:56 -0500
  • 234bff795d Merge docs/api-device-network-fields: document device network fields, pin the spec version ScreenTinker 2026-07-30 18:38:06 -0500
  • 2bf8b4271f Merge fix/youtube-never-advances: YouTube items advance, playlists can be cleared, per-display beta opt-in ScreenTinker 2026-07-30 18:38:01 -0500
  • 301c76c3f7 Let a display opt in to pre-release builds, so a test build is not reverted under the tester Claude 2026-07-30 18:35:31 -0500
  • 5297f091af Let a display's playlist actually be cleared Claude 2026-07-30 18:29:18 -0500
  • 3b23600d97 docs(changelog): backfill 1.9.3 through 1.9.25 Claude 2026-07-29 22:38:10 -0500
  • 0b9d9aff76 docs(readme): catch up on displays, OTA behaviour, plans and the public API Claude 2026-07-29 22:33:48 -0500
  • c483ef34dd docs(api): document a device's WAN/LAN addresses and SSID sentinel, and stop the spec version drifting Claude 2026-07-29 22:26:47 -0500
  • 9034478c28 Android: a YouTube item must end on its duration, and clearing a playlist must apply at once v1.9.25-fix234d Claude 2026-07-29 22:11:40 -0500
  • 40035533e5 Merge branch 'feat/report-lan-ip-and-optional-ssid' ScreenTinker 2026-07-29 21:57:59 -0500
  • 275e1683b8 Report the screen's own IP, and make the Wi-Fi name an honest optional ScreenTinker 2026-07-29 21:57:59 -0500
  • 54f1f62762 Merge branch 'fix/group-drag-actually-moves' ScreenTinker 2026-07-29 21:33:56 -0500
  • ead452d9b1 Dragging a screen onto a group now moves it instead of adding it ScreenTinker 2026-07-29 21:33:56 -0500
  • 3f0db335d2 chore(release): v1.9.25 v1.9.25 ScreenTinker 2026-07-29 20:38:47 -0500
  • 2906e559cb Advance the versionCode baseline past the published test builds ScreenTinker 2026-07-29 20:38:46 -0500
  • bb016b8313 Merge branch 'feat/admin-plans-with-counts' ScreenTinker 2026-07-29 19:36:10 -0500
  • a25c6827a7 Show every plan on the admin tab, with who is on each ScreenTinker 2026-07-29 19:36:10 -0500
  • 10f1dccdc8 Merge branch 'fix/unblock-clears-saved-block' v1.9.25-fix234c ScreenTinker 2026-07-29 18:44:11 -0500
  • 3159f94107 Make unblock stick, and say so when a device is refused ScreenTinker 2026-07-29 18:44:11 -0500
  • 39c4ec8af8 Merge branch 'fix/setup-permissions-revocable' ScreenTinker 2026-07-29 18:27:45 -0500
  • 8eff6d57d1 Let permissions be turned back off from the setup screen ScreenTinker 2026-07-29 18:27:45 -0500
  • b09bed645d Merge branch 'fix/provisioning-callback-relaunch-loop' v1.9.25-fix234b ScreenTinker 2026-07-29 18:01:42 -0500
  • 83c9bc5aa6 Clear ProvisioningActivity's service callbacks (the white-flash relaunch loop) ScreenTinker 2026-07-29 18:01:34 -0500
  • ce626c7e8e Merge branch 'fix/playlist-refresh-not-once-per-item' ScreenTinker 2026-07-29 14:13:42 -0500
  • bc00bc1eb1 Stop re-registering the device once per playlist item ScreenTinker 2026-07-29 14:13:42 -0500
  • 3a681abda0 Merge branch 'fix/resume-playlist-position-across-recreate' v1.9.25-fix234 ScreenTinker 2026-07-29 09:13:30 -0500
  • 66d9dc7fef Resume the playlist where it was after an Activity rebuild (#234) ScreenTinker 2026-07-29 09:13:30 -0500
  • c115ad5e62 chore(release): v1.9.24 v1.9.24 ScreenTinker 2026-07-28 23:37:59 -0500
  • 3b593e2a1c Merge branch 'feat/ota-managed-override' ScreenTinker 2026-07-28 23:34:39 -0500
  • f5ce88c93f Keep retrying an install for a working day, and flag a human straight away ScreenTinker 2026-07-28 23:31:47 -0500
  • 56abfa3579 Make "force update" actually forceful, and make it say what happened ScreenTinker 2026-07-28 23:24:01 -0500
  • c779d62d63 Add an operator override for self-update on MDM-managed panels ScreenTinker 2026-07-28 23:07:30 -0500
  • ed22693a6e Merge branch 'fix/transition-overlay-handoff' ScreenTinker 2026-07-28 22:35:40 -0500
  • 0b6907704e Merge branch 'fix/resume-self-advance-on-follower-exit' ScreenTinker 2026-07-28 22:35:40 -0500
  • 0bd9cde418 Merge branch 'fix/self-ota-stand-down-requires-device-owner' ScreenTinker 2026-07-28 22:35:40 -0500
  • d913397559 Hand the frame back cleanly when a wipe ends ScreenTinker 2026-07-28 22:23:23 -0500
  • 8cf395f63b Re-arm self-advance when follower mode is turned off ScreenTinker 2026-07-28 22:23:02 -0500
  • 5ba60ffa1a Stand down from self-OTA only for a real device owner, and say so when we do ScreenTinker 2026-07-28 21:40:18 -0500
  • bcb1b5c7a3 chore(release): v1.9.23 v1.9.23 ScreenTinker 2026-07-28 20:43:34 -0500
  • 0df7f58b26 Parse MAX_FILE_SIZE, and document what else caps an upload ScreenTinker 2026-07-28 20:40:14 -0500
  • 991c0da25a
    Use environment variable for maxFileSize (#233) a10kiloham 2026-07-29 03:36:14 +0200
  • 3e3d0081fe Keep the smoke test out of npm test, and update the lockfile ScreenTinker 2026-07-28 20:34:34 -0500
  • 29ae184b14 Add an opt-in browser smoke test ScreenTinker 2026-07-28 20:17:59 -0500
  • 5c95070d3a Bind the calendar's pointer handlers once, not once per render ScreenTinker 2026-07-28 20:08:31 -0500
  • 7747d7e051 Put Members in the nav, reveal titles on touch, and stop a stale heartbeat killing a socket ScreenTinker 2026-07-28 20:00:35 -0500
  • 618af0811a Translate the labels that never went through t() ScreenTinker 2026-07-28 19:52:52 -0500
  • a635120769 Say Teams is switched off instead of showing an empty list ScreenTinker 2026-07-28 19:46:26 -0500
  • 0a9a749475 Make help tips reachable, and explain the pages that had none ScreenTinker 2026-07-28 19:37:49 -0500
  • 832a9c9bb2 Draw a schedule that runs past midnight ScreenTinker 2026-07-28 19:28:04 -0500
  • a62396c2dd Attribute a widget play to the widget that played ScreenTinker 2026-07-28 19:06:56 -0500
  • 653108624d Show one day at a time when the week will not fit ScreenTinker 2026-07-28 18:52:39 -0500
  • d23442a1a1 Open the calendar on the working day and say what it is for ScreenTinker 2026-07-28 18:39:05 -0500
  • 268bd5e7fb Stop shipping untranslated keys as user-facing text ScreenTinker 2026-07-28 18:16:32 -0500
  • 68dd1b3e05 Tell people what to do next, from what the account actually contains ScreenTinker 2026-07-28 18:06:47 -0500
  • ce7d8642fa Make the calendar's gestures work on a touchscreen ScreenTinker 2026-07-28 17:56:48 -0500
  • d2d7911efb Make the calendar's blocks easy to grab and move ScreenTinker 2026-07-28 17:47:58 -0500
  • 98bde220ff Make the week calendar directly manipulable ScreenTinker 2026-07-28 16:50:03 -0500
  • 433fbef191 Re-establish a player socket the server closed ScreenTinker 2026-07-28 16:38:19 -0500
  • 19d1e3e19f chore(release): v1.9.22 v1.9.22 ScreenTinker 2026-07-28 14:58:22 -0500
  • 6268c1a4c0 Let a screen-only panel clear its identity from the URL ScreenTinker 2026-07-28 14:58:21 -0500
  • 2bcc46bc26 Give each player install its own identity ScreenTinker 2026-07-28 14:54:00 -0500
  • f09dee810c Record where a player crashed, not just what it said ScreenTinker 2026-07-28 14:17:43 -0500
  • b34d73dbb9 Report zero event-loop lag when a window recorded no samples v1.9.21 ScreenTinker 2026-07-28 14:11:32 -0500
  • 2d4ebb800f chore(release): v1.9.21 ScreenTinker 2026-07-28 14:01:09 -0500
  • 792013e36c Record auth rate-limit rejections so they can be measured ScreenTinker 2026-07-28 14:01:00 -0500
  • a93f65b20a Only store a device fingerprint against a device that still exists ScreenTinker 2026-07-28 13:54:40 -0500
  • 8caf908d3c chore(release): v1.9.20 v1.9.20 ScreenTinker 2026-07-28 13:18:21 -0500
  • 8f2195a6e3 Recover an unpaired player without needing a keyboard ScreenTinker 2026-07-28 13:17:22 -0500
  • 00c294cb3b chore(release): v1.9.20-beta1 v1.9.20-beta1 ScreenTinker 2026-07-28 12:53:08 -0500
  • e9cf7801c3 Alert once per outage instead of once per dedup window ScreenTinker 2026-07-28 12:50:14 -0500
  • 9bcdaacd2c Show every screen's schedule on one calendar ScreenTinker 2026-07-28 12:16:19 -0500
  • 5d08ed9c0e
    Use environment variable for maxFileSize a10kiloham 2026-07-28 16:16:53 +0100
  • 0030acc526 Store a schedule in the timezone its screen runs in ScreenTinker 2026-07-28 09:41:03 -0500
  • 93019fdde4
    Update Italian translation (#232) albanobattistella 2026-07-28 06:27:09 +0200
  • 41ebb02368 Add a BrightSign capability probe ScreenTinker 2026-07-27 22:49:50 -0500
  • f4595f017a Validate kiosk style values as CSS rather than as HTML ScreenTinker 2026-07-27 22:28:47 -0500
  • 866e35a2b2 Clear a device's OTA rate state when it proves its identity ScreenTinker 2026-07-27 22:28:47 -0500
  • 6e0b2464d7 chore(release): v1.9.19 v1.9.19 ScreenTinker 2026-07-27 21:18:47 -0500
  • b255f2bfe1 Resolve proof-of-play references instead of trusting the reported id ScreenTinker 2026-07-27 21:15:44 -0500
  • 76a8a16130 Update sharp to 0.35.x, and repair the corrupt PNG fixture it exposed ScreenTinker 2026-07-27 21:15:44 -0500
  • 90fd73b38c chore(release): v1.9.18 v1.9.18 ScreenTinker 2026-07-27 20:40:51 -0500
  • cbc00515e2 Scope device serialization to what each endpoint actually needs ScreenTinker 2026-07-27 20:40:40 -0500
  • 59c536c923 Keep a solo widget mounted, and size its keyboard to the viewport ScreenTinker 2026-07-27 20:39:59 -0500
  • 6ee1c96b04 Examples/weather-radar: count only the warnings actually on screen ScreenTinker 2026-07-27 12:29:28 -0500
  • b8c127f766 Examples/weather-radar: keep the map centred and bounded ScreenTinker 2026-07-27 12:26:08 -0500
  • d6f81171c2 chore(release): v1.9.17 v1.9.17 ScreenTinker 2026-07-27 11:43:23 -0500
  • d4cf1d4123 Merge branch 'feat/self-service-password-reset' ScreenTinker 2026-07-27 11:21:36 -0500
  • b7d55595af feat(auth): self-service password reset ScreenTinker 2026-07-27 11:19:39 -0500
  • 090b6c12cb fix(pairing): expire a pairing code on device liveness, not row age ScreenTinker 2026-07-27 10:59:38 -0500
  • 1036333982 chore(release): v1.9.16 v1.9.16 ScreenTinker 2026-07-27 10:37:11 -0500
  • c13611c9c7 style: fix CSS background variables and remove emojis from help page xadyz1 2026-07-26 23:20:38 +0100
  • 10f2863aa4 fix: aggressively run fix-htaccess.js in all build lifecycles and add comment bypass to trick hostinger xadyz1 2026-07-26 22:47:19 +0100