Commit Graph

9 Commits

Author SHA1 Message Date
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
cloudwithax d34def24b0 feat: add desktop packaging support for multiple platforms and CI workflow 2026-02-18 21:13:48 -05:00
cloudwithax 5a61b81811 feat: add mention functionality and improve notification system
- Implemented mention support in DMChatArea, allowing users to mention peers in messages.
- Enhanced markdown rendering to support mentions, converting <@peer_id> tokens to display names.
- Updated notification system to handle navigation on notification clicks, directing users to relevant channels or DMs.
- Introduced caching for avatar icons to reduce redundant disk writes.
- Added a MentionList component for displaying mention suggestions.
- Improved styling for mentions in both chat and editor contexts.
- Persisted last viewed channels per community across app restarts.
2026-02-15 21:01:00 -05:00
cloudwithax 1626a40f32 feat: integrate notification functionality with Tauri plugin 2026-02-15 19:54:22 -05:00
cloudwithax e468f5ae44 feat: add GIF search and trending functionality with Tauri commands
- Implemented `search_gifs` and `get_trending_gifs` commands in Tauri for GIF retrieval.
- Created a new protocol for GIF requests and responses.
- Added `EmojiPicker` component for emoji selection with recent emoji storage.
- Developed `GifPicker` component for searching and selecting GIFs.
- Introduced emoji data management with recent emoji tracking.
- Added markdown conversion utilities for rendering formatted text.
- Updated Vite configuration to optimize dependencies for Prosemirror.
2026-02-15 16:46:19 -05:00
cloudwithax aa640bf81d fix(DMSidebar): change button to div for better accessibility and keyboard navigation 2026-02-15 14:14:49 -05:00
cloudwithax 718bd9557e feat(dev-server): add development-only HTTP API for programmatic access
feat(Cargo.toml): add axum as a dependency with dev-server feature
fix(package.json): update tauri script to include dev-server option
2026-02-15 12:37:42 -05:00
cloudwithax 1f06ada9d2 started implementing core features (profiles, dms, servers, text/voice, settings, etc)
added icons and branding
2026-02-14 19:54:55 -05:00
cloudwithax 99e5a1d0ec init commit 2026-02-13 18:12:13 -05:00