TODO.md
Voicee — TODO
Priorita 5 — Videohovor v samostatném okně (pop-out)
Stav: dočasně vypnuto (CALL_POPOUT_ENABLED = false v apps/desktop/src/lib/call-popout-config.ts)
Problém
Tlačítko „Otevřít v samostatném okně“ v UI videohovoru má otevřít druhé nativní Tauri okno s běžícím hovorem. Ve Windows dev prostředí (dev:all --all-native --windows) handoff mezi hlavním a pop-out oknem nefunguje spolehlivě:
- pop-out okno problikne a hned se zavře,
- hlavní okno přepne do režimu
external(UI hovoru zmizí), - hovor dál běží na pozadí bez viditelného UI,
- fullscreen přes celou obrazovku má podobné problémy s nativním oknem vs. CSS overlay.
Co už bylo zkoušeno
- Handoff přes
localStorage(webview okna mají oddělené úložiště), - Handoff přes Tauri eventy (
call-popout-init/call-popout-handoff), - Handoff a koordinace přes Rust stav (
call_popout_*příkazy vsrc-tauri/src/call_popout.rs), - Oprava React StrictMode / bootstrap race,
- Odložené přepnutí na
externalaž powaitForPopoutReady, - Obnova hovoru v hlavním okně po zavření pop-outu (
call-popout-lifecycle.ts).
Co bude potřeba dořešit
- Spolehlivý handoff media + WebRTC mezi okny (ideálně jeden zdroj pravdy v Rustu nebo sdílený worker).
- Ověření na Windows produkčním buildu, ne jen dev + Vite HMR.
- Nativní fullscreen (
setFullscreen) vs. režimydocked/window/external. - Testy: start hovoru → pop-out → zavření pop-outu → návrat do hlavního okna bez výpadku audia/videa.
- Po fixu nastavit
CALL_POPOUT_ENABLED = truea odstranit dočasné obcházení.
Související soubory
apps/desktop/src/lib/call-popout-config.ts— feature flagapps/desktop/src/lib/call-popout-lifecycle.ts— orchestrace otevření / návratuapps/desktop/src/lib/call-popout-bootstrap.ts— bootstrap pop-out oknaapps/desktop/src/lib/call-popout-coordination.ts— Rust invoke wrapperapps/desktop/src-tauri/src/call_popout.rs— nativní okno + handoff stavapps/desktop/src/features/call/call-popout-page.tsx— route/call-popout