feat(desktop): tray Do-Not-Disturb + Launch-on-login toggle (P6-1 web)

- useTauriDnd + manualDndAtom: the native tray "Do Not Disturb" toggle
  (lotus-dnd-changed event) OR's into the notification quiet-gate in
  ClientNonUIFeatures (both invite + message notifiers), alongside Focus Assist.
- AutostartSetting in Settings → General (desktop-only): reads/sets
  plugin:autostart via invoke. Mirrors the window-chrome setting.
- Docs: LOTUS_FEATURES desktop section (Linux parity + DND + autostart),
  LOTUS_TODO P6-1 → [~], LOTUS_BUGS verification row.

Gates: tsc/eslint/prettier clean, build OK, 661 tests. Native side committed on
cinny-desktop:main (CI-compile-pending).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 13:31:09 -04:00
parent 625f0c2386
commit 804caa5130
8 changed files with 120 additions and 31 deletions
+14
View File
@@ -0,0 +1,14 @@
import { atom } from 'jotai';
/**
* P6-1 — Tray "Do Not Disturb" ↔ notification suppression (manual toggle).
*
* Standalone, non-persisted boolean atom reflecting whether the user has flipped
* the native tray "Do Not Disturb" item. It is driven at runtime by
* `useTauriDnd` from the native `lotus-dnd-changed` event and read by the
* notification gate to suppress notifications while DND is on. Because it mirrors
* a transient session toggle — not a persisted user preference — it is a plain
* in-memory atom that defaults to `false` and is intentionally NOT written to
* `localStorage`.
*/
export const manualDndAtom = atom(false);