Skip to content

LumaSync v1.5.3

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Jun 09:10
ef685b8

Added

  • Hue active-streamer banner now clears on its own: while an entertainment area is held by another active streamer, readiness is re-probed every 3 s (instead of the 15 s healthy cadence) and the banner dismisses within ~3 s of the foreign session releasing — no manual revalidate needed.
  • HUE_STOP_TIMEOUT_PARTIAL runtime faults now surface a "Retry Stop" action hint, matching the inline recovery CTA in the device panel.

Changed

  • Hot-path Rust→JS events (60 Hz edge signals, tray/shell lifecycle) are emitted to the main settings webview only, so calibration-overlay windows are no longer woken on every frame — lower idle CPU whenever an overlay window exists.
  • Hue background readiness refresh migrated from a fixed setInterval to a visibility-aware recursive setTimeout, pausing while the window is hidden and re-arming on focus, consistent with the rest of the polling discipline.
  • RoomMap template selector migrated to the amber Rev 07 design tokens.
  • The Hue stream-health check now pauses while the tray window is hidden and re-checks immediately on re-focus, trimming needless background bridge traffic — consistent with the rest of the polling discipline.
  • Gamma-correction lookup tables are no longer rebuilt every frame (previously once per Hue channel per frame, and once per Adalight/SK6812 serial packet); they are computed once and reused, with the default 2.2 profile borrowing a shared precomputed table — lower idle CPU on the output hot paths with byte-identical output.
  • Hue stream activation and reconnect now reuse a single HTTP client when fetching per-bulb gamut metadata instead of constructing one client per light.
  • Rust dependencies refreshed to latest stable: screencapturekit 1.5.4 → 8.0.0 (macOS capture — the synchronous capture API is source-compatible, so capture code is unchanged) and keyring 3 → 4 (OS keychain — classic API retained via its v1 feature), plus tauri 2.11.3 and the remaining tree via cargo update.
  • Frontend toolchain refreshed: pnpm 10.33.2 → 11.9.0 (pnpm 11 relocated settings out of package.json into a new pnpm-workspace.yaml), vite 8.0.16 → 8.1.0, @vitejs/plugin-react 6.0.2 → 6.0.3.

Fixed

  • macOS: fixed a launch crash (dyld: Library not loaded: @rpath/libswift_Concurrency.dylib) that affected every install of 1.5.2 on machines without Xcode. The Swift runtime deployment target is now pinned across all build paths so the screen-capture stack links against the system Swift concurrency library (present on every macOS 12+) instead of a build-machine toolchain path; a release-pipeline guard now blocks any future binary that would regress this.
  • Hue auto-reconnect could stall permanently in the "Reconnecting" state when a status poll raced the reconnect monitor for the same shutdown signal; the monitor now keys its guard off an explicit in-progress flag, so the restart always proceeds and the stream self-heals.
  • Shutdown hardened: the lighting-worker teardown step is now time-bounded (1.5 s) so a slow worker join can no longer starve the Hue entertainment-mode deactivate under the shutdown watchdog (which previously risked leaving the bridge with a phantom active streamer). On Windows, screen-capture teardown is detached onto its own thread so it no longer briefly freezes the UI when switching lighting modes.
  • Room-map template buttons now expose an explicit accessible name (aria-label) for screen readers.
  • Transient USB disconnect / unsupported-port notices no longer leak their auto-dismiss timers if the view unmounts or the effect re-runs first.

Security

  • Resolved RUSTSEC-2026-0185 (7.5 high) by bumping the transitive quinn-proto dependency to 0.11.15; memmap2 bumped to 0.9.11 (RUSTSEC-2026-0186). The cargo audit CI gate is green again.
  • Bumped the transitive tar crate to 0.4.46 (PAX header desynchronization advisory).
  • Pinned the transitive undici (dev/test only, via jsdom) to ≥7.28.0, clearing the open advisories for SOCKS5 cross-origin request routing and TLS certificate-validation bypass on the 7.23–7.27 line.