You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.