app/src-tauri
cloudwithax 48e49ee6a5 feat(voice): add TURN credential support, ICE restart logic, and connection quality tracking
Introduce a TURN credentials protocol for requesting time-limited relay
server credentials from the relay node, improving NAT traversal for
WebRTC voice connections.

WebRTC layer improvements:
- Add ICE candidate buffering before remote description is set
- Implement automatic ICE restart with configurable max attempts
- Add disconnection timeout with delayed restart recovery
- Add per-peer connection state tracking and callbacks
- Include public STUN servers (Google, Cloudflare) by default
- Add detailed logging throughout the WebRTC lifecycle

Voice store improvements:
- Fetch TURN credentials from relay before establishing connections
- Track per-peer RTCPeerConnectionState with reactive signals
- Derive overall voice quality signal (good/connecting/degraded/failed)
- Evaluate and surface degraded connection state to the UI
- Clean up peer connection states on participant leave
- Fix video toggle resource leak (stop unused audio tracks)

Backend changes:
- Add TurnCredentialRequest/Response protocol types
- Wire turn_credentials behaviour into swarm and node event loop
- Add get_turn_credentials Tauri command
- Propagate errors from voice commands instead of silently dropping
- Add input validation for SDP types in send_voice_sdp
- Handle missing node handle as explicit error in all voice commands
- Add DirectoryResponse::Error variant handling
- Scope Linux WebKitGTK permission grants to UserMediaPermissionRequest

UI improvements:
- Show connection quality indicator in voice channel header
- Add per-peer connection state ring on participant tiles
- Display failed connection warning icon on participant tiles
- Stack muted/deafened indicators vertically to avoid overlap
- Show participant grid in degraded connection state

Also remove unused imports across several frontend components.
2026-02-24 20:59:19 -05:00
..
capabilities feat: integrate notification functionality with Tauri plugin 2026-02-15 19:54:22 -05:00
icons started implementing core features (profiles, dms, servers, text/voice, settings, etc) 2026-02-14 19:54:55 -05:00
src feat(voice): add TURN credential support, ICE restart logic, and connection quality tracking 2026-02-24 20:59:19 -05:00
.gitignore init commit 2026-02-13 18:12:13 -05:00
Cargo.lock feat: enhance DM search functionality and improve message loading 2026-02-15 22:46:59 -05:00
Cargo.toml feat: enhance DM search functionality and improve message loading 2026-02-15 22:46:59 -05:00
build.rs init commit 2026-02-13 18:12:13 -05:00
tauri.conf.json feat: add desktop packaging support for multiple platforms and CI workflow 2026-02-18 21:13:48 -05:00