1.3 KiB
1.3 KiB
PRD: Desktop Direct Calling — Backport SignalManager
Problem
The desktop Tauri app has the direct calling UI (Room/Direct Call toggle, Register, Call buttons) but the backend uses inline async code in main.rs instead of a proper SignalManager. This needs to be backported from the Android refactor.
Tasks
- Create
signal_mgr.rsfor desktop — same pattern as Android, or reuse the crate directly - Wire into Tauri commands —
register_signalshould useSignalManager::connect()+run_recv_loop()on a dedicated thread - State polling —
get_signal_statusshould callSignalManager::get_state_json() - place_call / answer_call — delegate to SignalManager methods
- Merge android branch into desktop branch — resolve the 37 desktop-only + 90 android-only commit divergence
- Test — Android calls Desktop, Desktop calls Android
UI Fixes
- Default alias — generate random name on first start (like Android does)
- Default room — change from "android" to "general"
- Fingerprint display — ensure full
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxxformat (not truncated) - Deregister button — ability to disconnect signal channel
- Call state reset — after hangup, return to "Registered" state, not stuck on "Ringing"