Commit graph

  • a6e9237db0 chore(release): v1.9.2-beta4 v1.9.2-beta4 fix/143-content-ack-flood ScreenTinker 2026-06-28 23:40:17 -0500
  • 289d6b6f95 fix(#144): OTA update-check circuit-breaker + phantom guard + per-device keying ScreenTinker 2026-06-28 23:29:40 -0500
  • 6f9f83242e
    Merge ddf1338190 into d9fb914b9e albanobattistella 2026-06-28 08:40:34 +0000
  • ddf1338190
    Update Italian translation albanobattistella 2026-06-28 10:40:22 +0200
  • 6642841cd8 chore(release): v1.9.2-beta3 v1.9.2-beta3 ScreenTinker 2026-06-28 00:02:43 -0500
  • 8d37c7f5ff fix(#143): notify a screen it's paired on reconnect (recovery-critical) ScreenTinker 2026-06-27 23:52:30 -0500
  • e32c91cfd1 chore(release): v1.9.2-beta2 v1.9.2-beta2 ScreenTinker 2026-06-27 23:18:19 -0500
  • e73428182d fix(#143): fingerprint-reclaim stuck loop — reclaim by runtime liveness, throttle log ScreenTinker 2026-06-27 22:56:48 -0500
  • 404c3301dd fix(#143): enforceable device block + fix the null-token auth short-circuit ScreenTinker 2026-06-27 22:40:30 -0500
  • dbac699854 fix(#143): content-ack flood control — per-device rate budget + loop-lag valve ScreenTinker 2026-06-27 22:21:57 -0500
  • d9fb914b9e chore(release): v1.9.2-beta1 main v1.9.2-beta1 ScreenTinker 2026-06-27 19:59:34 -0500
  • ce78d0dde4 docs(#142): 1.9.2-beta1 changelog + device_status_log VACUUM maintenance note ScreenTinker 2026-06-27 19:59:17 -0500
  • f206537fed Merge #142 (reconnect-storm hardening) into main for 1.9.2-beta1 ScreenTinker 2026-06-27 19:56:46 -0500
  • 139d7d09fa fix(#142): provisioning-row cleanup window 365d -> 24h (matches its own comment) ScreenTinker 2026-06-27 19:56:32 -0500
  • 852219cb45 chore(release): v1.9.1 v1.9.1 ScreenTinker 2026-06-27 19:50:09 -0500
  • 15448d1c5d fix(#142): dedup repeated content-ack reports (secondary load) ScreenTinker 2026-06-27 19:35:04 -0500
  • 29a8896aa8 fix(#142): global device_status_log retention sweep + STATUS_LOG_RETENTION_DAYS ScreenTinker 2026-06-27 19:34:19 -0500
  • 101f086204 fix(#142): load-aware per-device reconnect throttle (the outage fix) ScreenTinker 2026-06-27 19:18:00 -0500
  • ed3cf72b82 feat(#142): event-loop lag telemetry (perf_hooks) + bounded storage ScreenTinker 2026-06-27 19:01:08 -0500
  • d90cfb3986 fix(#142): index device_status_log + de-dupe its CREATE TABLE ScreenTinker 2026-06-27 18:54:57 -0500
  • f96b65576f chore(release): guard bump-version.sh against a diverged origin/main ScreenTinker 2026-06-25 12:26:23 -0500
  • ed164647b8 Merge origin/main (Update SECURITY.md) into beta9 cut ScreenTinker 2026-06-25 12:16:47 -0500
  • ae018b8eea chore(release): v1.9.1-beta9 v1.9.1-beta9 ScreenTinker 2026-06-25 12:06:44 -0500
  • 071d7cc9c3 fix(server): persist per-item mute into the published snapshot (#129) ScreenTinker 2026-06-25 12:06:29 -0500
  • 1e1ed7e29a
    Update SECURITY.md screentinker 2026-06-24 12:09:25 -0500
  • 36c4bf523f chore(release): v1.9.1-beta8 v1.9.1-beta8 ScreenTinker 2026-06-24 11:43:31 -0500
  • 16c381254b fix(android): lower minSdk 26 -> 24 to support Android 7.0/7.1 panels (#141) ScreenTinker 2026-06-24 11:38:56 -0500
  • 01e5b10f53
    feat(setup): Debian 13 player/server install script (#137) Christopher Cookman 2026-06-23 22:47:22 -0600
  • d57d5ef591 fix(setup): poll /api/status (not /api/health) in the kiosk wait-loop ScreenTinker 2026-06-23 23:46:02 -0500
  • 9c990ff91f chore(release): v1.9.1-beta7 v1.9.1-beta7 ScreenTinker 2026-06-23 23:23:00 -0500
  • a6fe849c67 Merge fix/ota-redownload-loop (#140): stop OTA re-download loop on devices that can't silently install (#139) ScreenTinker 2026-06-23 23:22:29 -0500
  • 0c0a8dd68a fix(ota): surface stuck OTA on dashboard + read APK signer correctly on API 28/29 (#139) ScreenTinker 2026-06-23 22:49:01 -0500
  • aa23cf02dd fix(ota): stop OTA re-download loop on devices that cannot silently install (#139) ScreenTinker 2026-06-23 19:53:55 -0500
  • a9cf8747cb chore(release): v1.9.1-beta6 v1.9.1-beta6 ScreenTinker 2026-06-22 23:31:33 -0500
  • 99cad902f2 Merge fix/multizone-screenshot-composite (#138): composite multi-zone layouts in screenshot capture ScreenTinker 2026-06-22 23:22:43 -0500
  • 0ebbd20968 fix(player): composite multi-zone layouts in screenshot/stream capture fix/multizone-screenshot-composite ScreenTinker 2026-06-22 23:12:21 -0500
  • 184f07c272 Merge fix/mute-and-zone-orphan-fallback: per-item mute round-trip + multi-zone orphan-zone fallback ScreenTinker 2026-06-22 23:21:35 -0500
  • a36880b147 fix: per-item mute round-trip + multi-zone orphan-zone fallback & warnings ScreenTinker 2026-06-22 23:16:29 -0500
  • 7256fd0353 Fix some stuff Christopher Cookman 2026-06-20 03:24:11 -0600
  • f47b52f21e
    Fix kiosk fullscreen: detect resolution at runtime, replace --start-fullscreen with --window-position/--window-size copilot-swe-agent[bot] 2026-06-20 04:46:15 +0000
  • 852dccaec2
    Add Debian 13 setup script with server/player modes copilot-swe-agent[bot] 2026-06-20 03:59:01 +0000
  • fa3aed720f chore(release): v1.9.1-beta5 v1.9.1-beta5 ScreenTinker 2026-06-19 15:33:51 -0500
  • 1f2e923005
    fix(#134): quiet false "reconnect" log + report HDMI output and UI render resolution (#136) screentinker 2026-06-19 15:32:11 -0500
  • 7f9d403cb0 fix(#134): quiet false "reconnect" log + report HDMI output and UI render resolution ScreenTinker 2026-06-19 15:29:08 -0500
  • 7660d7433e
    fix(#109): render Android PiP overlay above the YouTube WebView video plane (#135) screentinker 2026-06-19 14:49:20 -0500
  • 255d8c0600 feat(#109): implement PiP close_button on Android (was a documented no-op) fix/109-android-pip-visibility ScreenTinker 2026-06-19 14:45:14 -0500
  • 10abb3b35f docs(#109): record web PiP (HTML+JS) verification on emulator ScreenTinker 2026-06-19 14:38:30 -0500
  • 4528d07c53 fix(#109): image PiPs never painted — set slot token before decode ScreenTinker 2026-06-19 14:33:37 -0500
  • ce7b2948ae fix(#109): render Android PiP overlay above the YouTube WebView video plane ScreenTinker 2026-06-19 14:19:32 -0500
  • 89cbcac2cd
    Add PIP-Weather-Radar example (TV-style live radar overlay) (#133) screentinker 2026-06-18 21:05:19 -0500
  • e85c08eb26 docs(radar): note Leaflet is vendored locally, not committed ScreenTinker 2026-06-18 21:02:42 -0500
  • 44a0fff0ed Add PIP-Weather-Radar example (TV-style live radar overlay) ScreenTinker 2026-06-18 20:58:52 -0500
  • 0b138f10c6
    Add PiP overlay example recipes (#132) screentinker 2026-06-18 20:20:37 -0500
  • ab771ec595 Add PiP overlay example recipes ScreenTinker 2026-06-18 20:17:38 -0500
  • 5f83fc20d3 docs(api): document /api/pip and the assignments muted field (#109/#129) v1.9.1-beta4 ScreenTinker 2026-06-18 17:36:12 -0500
  • 71f8948bdb chore(android): bump versionName to 1.9.1-beta4 (versionCode 24) ScreenTinker 2026-06-18 17:28:44 -0500
  • 118367837b chore(release): v1.9.1-beta4 ScreenTinker 2026-06-18 17:00:59 -0500
  • 618a7048c6
    fix(server): proxy remote YouTube thumbnails + real version in boot banner (#131) screentinker 2026-06-18 17:00:24 -0500
  • f1f3d45221 fix(server): boot banner shows the real version, not a hardcoded v1.2.0 ScreenTinker 2026-06-18 16:17:58 -0500
  • 10298d8a18 fix(server): proxy remote YouTube thumbnails instead of ENOENT on a local path ScreenTinker 2026-06-18 16:17:44 -0500
  • 6f0e4a07f6
    Fix per-item mute (#129): persist, ship to device, and toggle in real time (#130) screentinker 2026-06-18 16:54:23 -0500
  • c55118d8d8 fix(player): apply per-item mute live on Android + web (#129) ScreenTinker 2026-06-18 16:51:41 -0500
  • 332f4c5b5c fix(server): persist + ship + real-time per-item mute (#129) ScreenTinker 2026-06-18 16:51:31 -0500
  • 965920cd17
    PiP overlay MVP: push image/web overlays to a device or group (#109) (#127) screentinker 2026-06-18 14:54:44 -0500
  • 1c76fa865c PiP overlay: add Android + web players (#109) ScreenTinker 2026-06-18 14:52:10 -0500
  • 7eab9c6092 PiP overlay MVP: push image/web overlays to a device or group (#109) ScreenTinker 2026-06-18 14:42:32 -0500
  • e2ff8f47b7 Tizen player: real Samsung B2B fleet control (#125), folding in #126 ScreenTinker 2026-06-18 13:24:40 -0500
  • 9c4b48800f Tizen player 1.9.1-beta3: bug fixes, multi-zone layouts, video walls ScreenTinker 2026-06-17 18:47:51 -0500
  • d7a1801dcc Tizen player: real Samsung B2B fleet control (#125), folding in #126 ScreenTinker 2026-06-18 13:24:40 -0500
  • d018cb24a3 Tizen player: wire up Samsung B2B fleet control (#125) ScreenTinker 2026-06-18 13:17:50 -0500
  • 0cd2a904e5 Android player: video-wall (wall:sync) support ScreenTinker 2026-06-17 19:26:02 -0500
  • b903144456 Android player: video-wall (wall:sync) support ScreenTinker 2026-06-17 19:26:02 -0500
  • eb3abf3a0e Tizen player 1.9.1-beta3: bug fixes, multi-zone layouts, video walls ScreenTinker 2026-06-17 18:47:51 -0500
  • 10726fde42 Merge #117: HIDE_BILLING flag to hide the Subscription/billing UI (#116) ScreenTinker 2026-06-16 09:57:17 -0500
  • 674a34ba45 feat(config): HIDE_BILLING flag to hide the Subscription/billing UI (#116) ScreenTinker 2026-06-16 09:19:24 -0500
  • 5b13254de3 chore(release): v1.9.1-beta3 v1.9.1-beta3 ScreenTinker 2026-06-15 16:07:04 -0500
  • c5e8067b35 Merge #115: last-resort uncaughtException safety net (#114) ScreenTinker 2026-06-15 16:02:18 -0500
  • 78a4ee4d37 fix(server): last-resort uncaughtException/unhandledRejection safety net (#114) ScreenTinker 2026-06-15 15:57:17 -0500
  • 7539603b17 Merge #111: device-free preview, playlist + device surfaces (#104) ScreenTinker 2026-06-15 15:20:57 -0500
  • 647a7de1e6 Merge #112: duplicate + replace playlist items (#105) ScreenTinker 2026-06-15 15:20:51 -0500
  • d2feb2a3c5 Merge #113: drag-to-reorder display tiles (#106) ScreenTinker 2026-06-15 15:20:17 -0500
  • 5d24c30ea1 feat(displays): drag-to-reorder display tiles within a section (#106) ScreenTinker 2026-06-15 15:15:21 -0500
  • cbabbeb78c feat(preview): device-manager preview — second surface for #104 (combined) ScreenTinker 2026-06-15 14:57:19 -0500
  • e6ebf2a380 feat(playlists): duplicate + replace playlist items in place (#105) ScreenTinker 2026-06-15 14:36:19 -0500
  • 1c748b8d3b feat(preview): draft-aware device-free playlist preview via player reuse (#104) ScreenTinker 2026-06-15 14:11:05 -0500
  • d64244b5ac chore(release): v1.9.1-beta2 v1.9.1-beta2 ScreenTinker 2026-06-14 20:34:21 -0500
  • a21843818c fix(release): bump-version handles a pre-release CURRENT version ScreenTinker 2026-06-14 20:33:37 -0500
  • fbd466b7f2 fix(docker): copy docs/openapi.yaml into the image so /docs's spec resolves ScreenTinker 2026-06-14 20:32:30 -0500
  • 31be2ffe8c Merge feat/agency-tokens: agency upload portal (#73), full-screen guardrail, YouTube preview referrer fix ScreenTinker 2026-06-14 20:27:10 -0500
  • 46e4bc8579 fix(content): YouTube preview 153 — give the iframe a referrer (page is no-referrer) ScreenTinker 2026-06-14 20:12:57 -0500
  • 7f7dc80a8c fix(content): YouTube preview 153 — drop enablejsapi/origin from the passive embed ScreenTinker 2026-06-14 18:18:58 -0500
  • ed45a9a23d feat(ui): surface the agency portal handoff at token creation (#73) ScreenTinker 2026-06-14 17:54:23 -0500
  • 02859eb1aa feat(ui): surface the API docs link in Settings -> API Tokens (#73) ScreenTinker 2026-06-14 17:44:42 -0500
  • 57d78dd1fa feat: full-screen-only guardrail for agency designations (#73) ScreenTinker 2026-06-14 17:36:03 -0500
  • 4c38536cc6 feat(ui): edit-designations for agency tokens (#73) ScreenTinker 2026-06-14 17:04:07 -0500
  • 6ea8100aeb feat(ui): the size-guidance card container in the agency portal (#73) ScreenTinker 2026-06-14 16:10:25 -0500
  • 400a438fff revert: drop zone-binding, keep whole-playlist grants + size-guidance card (#73) ScreenTinker 2026-06-14 15:52:11 -0500
  • c5550f5bc9 feat: agency zone-grant issuance UI + reactive placement card (#73) ScreenTinker 2026-06-14 15:12:18 -0500
  • 289d54f4fa feat(api): zone-grant confinement for agency tokens - FK-anchored (#73) ScreenTinker 2026-06-14 14:57:27 -0500
  • c55ca60b56 feat(api): batched email digest for agency uploads (#73) ScreenTinker 2026-06-14 13:59:37 -0500