02ca3e3581
Default flipped to off so voice doesn't get coloured by browser NS on first run. Users turn it on explicitly under Settings → Sprache, where the toggle already lived before the in-call button shipped. The in-call SparklesIcon button and all the associated wiring (onToggleNoiseSuppression, noiseSuppression prop, local subscription in InCallPanel) is removed. The hot-swap UX is preserved: a new subscribeAudioSettings watcher in CallContext detects noiseSuppression flips during an active call and re-runs setupMicPipeline so the change takes effect without rejoining. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
apps/desktop/src/lib
Desktop-local helpers that depend on Tauri plugins.
Expected contents:
stronghold.ts— wrapstauri-plugin-strongholdfor secret storage; adapter for@chat-app/shared/auth.sqlite.ts— wrapstauri-plugin-sql(SQLite), exposes migration runner.notifications.ts— wrapstauri-plugin-notification.sodium.ts— bindslibsodium-wrappers(WASM) to the crypto adapter interface.store.ts— Zustand store setup (auth state, chat state slices).