Docs Reference
Platform notifications
How LumaSync emits OS-level notifications for connection, stream, and update events — the one-time permission banner, and the open_log_dir command.
From v1.4, LumaSync emits OS-level notifications for runtime events so you don’t have to keep the main window open. Implementation is tauri-plugin-notification + tauri-plugin-process, wired end-to-end.
Permission banner
The first time LumaSync wants to notify (typically on first USB connect or first Hue pair), a permission banner appears in the app asking for OS notification rights. Click Allow once; the decision persists per OS rules:
- macOS · Settings → Notifications → LumaSync
- Windows · Settings → System → Notifications → LumaSync
- Linux · your desktop environment’s notification settings
If you deny, the event flow degrades gracefully — in-app status pills still update, only the OS toast goes away.
Events that emit a toast
| Event | When | Severity |
|---|---|---|
connection.ok | Serial port opens and handshake returns HEALTHY | Info |
connection.lost | Serial port closes mid-session or PING_TIMEOUT fires | Warning |
stream.started | Hue Entertainment stream armed, first frame acknowledged | Info |
stream.stopped | Mode switched to Off or the target went away | Info |
wled.connected | WLED /json/info returned a non-zero LED count and Test acknowledged | Info |
update.available | Auto-updater found a newer release at startup | Info |
update.installed | Update verified and applied; restart on next launch | Info |
update.error | Minisign verification failed or the download errored out | Error |
window.closed-to-tray (v1.5.2, one-shot) | First time the user closes the main window — confirms LumaSync is still running in the tray | Info |
All toasts are local to the OS — nothing goes to a cloud push service. No Apple Push, no FCM, no third-party relay.
macOS tray template image
From v1.5.2 the macOS tray icon ships as a template image (monochrome silhouette), so the OS renders it at the correct size and respects Dark / Light menu bar mode automatically. If you saw a coloured bitmap-shaped tray on older builds, this is the fix.
Frontend log bridge
From v1.5.2 every webview console.log / console.warn / console.error call is bridged into the platform log file alongside the Rust log::* entries. The same lines that appear in DevTools also appear in ~/Library/Logs/com.lumasync.app/ (or your platform’s equivalent), so debugging a runtime issue no longer requires a DevTools window to be open. Each bridged record is prefixed [webview] to keep it distinguishable from the Rust side.
The open_log_dir command
LumaSync exposes an open_log_dir Tauri command that reveals the log directory in Finder / Explorer / your file manager. Triggered from:
- Settings → About → Open log directory
- Update modal
errorstate → Show logs - Global ErrorBoundary fallback card → Show logs
Log location per OS:
| OS | Path |
|---|---|
| macOS | ~/Library/Logs/com.lumasync.app/ |
| Windows | %LOCALAPPDATA%\com.lumasync.app\logs\ |
| Linux | ~/.local/share/com.lumasync.app/logs/ |
See Telemetry → Logs for what the log files actually contain.
Disabling notifications
There is no in-app toggle — notifications are on-by-default once OS permission is granted. To silence them, revoke at the OS level using the paths under Permission banner above. LumaSync respects the OS-level setting without needing a restart.
Related
- Telemetry — what the logs contain
- Error handling — ErrorBoundary + fallback card
- Auto-updater — the four-state update modal