diff --git a/LOTUS_TODO.md b/LOTUS_TODO.md index 63357a72b..be1c212b6 100644 --- a/LOTUS_TODO.md +++ b/LOTUS_TODO.md @@ -337,13 +337,13 @@ Features: ### [ ] P5-35 · Desktop — Notification Click Opens Room (DEFERRED) **What:** Clicking a system tray notification navigates to the relevant room. Quick-reply from the notification toast would send the reply without opening the window. -**Status:** Deferred — `tauri-plugin-notification` has no Rust click/action callback API. Quick-reply would need a custom WinRT toast activator + COM registration, which can't be compile-tested without a Windows build environment. +**Status:** Deferred (Tier B). Note: the "can't compile-test without a Windows build environment" premise is **outdated** — CI now compiles Windows (Gitea self-hosted `windows` runner + GitHub `windows-latest`), and `windows`-crate/COM code already ships (e.g. `set_badge_count`, and the Tier A jump list). This still depends on P5-41 (the WinRT toast + custom activator), so it rides with that; it was not part of the Tier A wave. **Note:** Tray icon and `matrix:` deep links already bring the window forward on most interactions. Revisit when tauri-plugin-notification gains click handler support upstream. **Complexity:** High (platform-specific native code required). --- -### [ ] P5-36 · Desktop — Windows Jump List (DEFERRED) +### [~] P5-36 · Desktop — Windows Jump List — IMPLEMENTED (Tier A); native CI-compile-pending, runtime-verify on Windows **What:** Right-clicking the taskbar icon shows a jump list with recent/favorite rooms for quick navigation. **Status:** Deferred — implementing the Windows COM jump list API in Tauri requires iterating on C++/COM code that can only be compile-checked on Windows, making blind CI iteration impractical. @@ -362,22 +362,22 @@ Features: **What:** Maintain light connection to homeserver when WebView2 is suspended. **Approach:** Implement a headless Rust sidecar to fetch unread counts/notifications while the webview is suspended to ensure instant notification delivery. -### [ ] P5-43 · Desktop — System Media Transport Controls (SMTC) +### [~] P5-43 · Desktop — System Media Transport Controls (SMTC) — IMPLEMENTED (Tier A); CI-compile-pending; SMTC may need an active media/audio session to surface — verify on Windows **What:** Integrate with Windows SMTC for volume flyout call/media control. **Approach:** Use Windows SMTC API to expose call status, mic mute/unmute, and media controls to the Windows volume flyout/media overlay. -### [ ] P5-44 · Desktop — Taskbar Thumbnail Toolbar +### [~] P5-44 · Desktop — Taskbar Thumbnail Toolbar — IMPLEMENTED (Tier A); native CI-compile-pending, runtime-verify on Windows **What:** Add persistent call controls to the taskbar preview. **Approach:** Implement a COM thumbnail toolbar in the application preview window, featuring Mute/Deafen/End Call buttons. -### [ ] P5-46 · Desktop — System Power Management (Call Continuity) +### [~] P5-46 · Desktop — System Power Management (Call Continuity) — IMPLEMENTED (Tier A reference); web verified; native CI-compile-pending (Windows only; macOS/Linux no-op TODO) **What:** Prevent system sleep/hibernate during active calls. **Approach:** Use Tauri/Rust `power-manager` or platform-specific APIs to block system power saving states while a voice/video session is active. -### [ ] P5-47 · Desktop — TDS-Styled Native Window Chrome +### [~] P5-47 · Desktop — TDS-Styled Native Window Chrome — IMPLEMENTED (Tier A, OPT-IN/default-off, runtime-reversible); web verified; native CI-compile-pending **What:** Replace system titlebar with custom Lotus TDS chrome. **Approach:** Configure Tauri window (`decorations: false`) and implement custom, TDS-token compliant titlebar controls (Close/Max/Min) for a cohesive UI. @@ -387,15 +387,15 @@ Features: **What:** Enhance drag-and-drop support for Windows. **Approach:** Improve handling for Windows file shortcuts, recursive folder uploads, and shell-integrated "Send To" context menu actions. -### [ ] P5-49 · Desktop — Network Awareness (NCSI Integration) +### [~] P5-49 · Desktop — Network Awareness (NCSI Integration) — IMPLEMENTED (Tier A; INetworkListManager poll → mx.retryImmediately); native CI-compile-pending, runtime-verify on Windows **What:** Proactively detect Windows network connectivity changes. **Approach:** Integrate with the Windows Network Connectivity Status Indicator (NCSI) API to improve offline mode transition latency and network recovery. -### [ ] P5-50 · Desktop — Windows Hardware-Accelerated Media Pipeline +### [WON'T FIX] P5-50 · Desktop — Windows Hardware-Accelerated Media Pipeline **What:** Replace standard browser decoding with native Windows Media Foundation. -**Approach:** Leverage DirectShow/Media Foundation to offload video/audio decoding from the CPU to the GPU, significantly reducing power consumption and latency during calls. +**Why won't-fix (researched):** WebRTC media (the call pipeline) lives entirely inside WebView2/Chromium — you cannot inject Media Foundation/DirectShow into WebRTC's decode path from the Tauri host. Chromium already uses the platform's hardware decoders (D3D11VA/MF) where the GPU supports the codec, so there is no separate CPU pipeline to offload. Not actionable as described. ### [ ] P5-51 · Desktop — Federated "Identity Contexts" (Isolation Manager) @@ -413,7 +413,7 @@ Features: **What:** A sandboxed environment for local execution of user scripts on Matrix events. **Approach:** Implement a WASM-based execution engine that allows users to write local-only, client-side scripts to interact with incoming Matrix events, trigger sounds/notifications, or inject custom UI elements based on event payload rules. Designed for privacy — all logic runs exclusively on the local machine. -### [ ] P5-55 · Desktop — Composer Toolbar Drag-and-Drop Reordering +### [~] P5-55 · Desktop — Composer Toolbar Drag-and-Drop Reordering — IMPLEMENTED (Tier A); web-verified (tsc/build/tests). Awaiting live UX check **What:** Allow users to reorder toolbar icons via drag-and-drop. **Approach:** Extend the current settings-based toolbar toggle system to include a drag-and-drop UI mode in the composer settings, allowing users to personalize their icon order. @@ -423,7 +423,7 @@ Features: **What:** Automatically toggle notification state based on Windows Focus Assist. **Approach:** Integrate with the Windows `NotificationCenter` / `Focus` state via Tauri/Rust to automatically enable/disable Lotus Chat's internal notification suppression mode when Windows Focus Assist is toggled. -### [ ] P5-57 · Desktop — Visual Draft Persistence Indicator +### [~] P5-57 · Desktop — Visual Draft Persistence Indicator — IMPLEMENTED (Tier A); web-verified. Awaiting live UX check --- @@ -635,7 +635,7 @@ See shipped implementation in LOTUS_FEATURES.md → "Noise Suppression (Advanced --- -### P5-40 · Desktop — Proactive Update Notifications (Tauri) +### [x] P5-40 · Desktop — Proactive Update Notifications (Tauri) — DONE (already shipped: `TauriUpdateFeature` in ClientNonUIFeatures.tsx polls every 12h + fires the sticky update toast) **Key Files:** `src/app/hooks/useTauriUpdater.ts`, `src/app/pages/client/ClientNonUIFeatures.tsx`, `src/app/features/toast/LotusToastContainer.tsx`.