You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ultra-Low Latency PCM Streaming: AudioWorklet-based fractional linear downsampling of client microphone input to 16,000 Hz 16-bit mono PCM, streamed over authenticated binary WebSocket (/ws/audio).
Container Audio Playback: Plays container sound output (TTS, voice agents, etc.) back through user's chosen client speakers/headphones via AudioContext targeting sinkId with overrun ceiling management.
Virtual ALSA Device in Docker: Configured /etc/asound.conf mapping default capture and playback to container overlayfs FIFOs (/tmp/.gconnect_audio/). Standard Python libraries (speech_recognition, sounddevice, pyaudio) detect and use the virtual audio bridge out-of-the-box without code changes.
Google Meet-Style Audio UI: Added [🎙️ Audio] top toolbar button and settings modal with microphone & speaker dropdowns, hardware mute toggles, live VU meter, and 1-click active mic cluster takeover.
Audio Protection & Network Resilience: 50ms pre-buffering circular jitter buffer (AudioRingBuffer) and software audio ducking gate (DuckingGate) applying -18dB attenuation during container playback to eliminate feedback loops.
Verification Tool: Included voice_test.py at workspace root supporting 3-second recording and dual-tone harmonic chime playback.
⚡ GPU Share Toggle Resilience & Token Persistence
Fixed 'Applying Configuration...' Freeze: frontend/js/share.js now awaits backend_info to ensure the sidecar has restarted and passed its health check before refreshing dashboard state, updating credentials cleanly.
Port 8000 Release Cooldown: In src-tauri/src/main.rs, added an 800ms cooldown before restarting the backend on mode changes, allowing the Windows socket stack to release port 8000.
Auth Token File Reuse: In backend/auth.py, get_token() now reuses the existing auth_token file if present rather than overwriting it, preserving credentials across sidecar restarts.
🔄 Self-Healing Docker Dynamic Reconnect
Dynamic Reconnect: GConnect automatically detects when Docker Desktop is launched after GConnect is already running without needing an app restart.
Graceful Disconnect Recovery: If Docker stops or restarts, GConnect safely transitions container state to offline and reconnects automatically upon the next health check.
Throttled Probing: Reconnection attempts are protected by thread locks and cooldown timers to prevent connection spamming.
🛡️ Physical NVIDIA GPU Validation before DeviceRequest
Hardware-Level Verification: Directly queries pynvml, torch.cuda, and nvidia-smi to verify an actual physical NVIDIA adapter exists before issuing Docker --gpus all / DeviceRequest.
Eliminates 500 Daemon Crashes: Prevents nvidia-container-cli: initialization error: nvml error: no adapters were found crashes on systems with NVIDIA toolkits/CDI specs installed but running on Intel/AMD GPUs or VMs, starting seamlessly in CPU mode.
🌐 Desktop WebView2 CORS Preflight Header Fix
Permit X-Client-Id: Added X-Client-Id to CORS_ALLOW_HEADERS and _tauri_cors_headers in backend/auth.py.
Eliminates Blocked APIs: Resolves preflight OPTIONS rejections for /api/files and /api/container/status inside the desktop app, preventing "Error loading files" and false "Docker is not running" warnings.
📱 Real-Time Connected Devices Tracker for GPU Sharing
Thread-Safe Connection Monitor: Added ConnectionTracker in backend/connection_tracker.py that tracks all connected client machines in real time.
Physical Device Grouping: Persistent gconnect_client_id prevents duplicate tab/terminal counts from inflating the connected device numbers.
Local vs Remote Classification: Accurately distinguishes This PC (Host) from Remote Teammates (LAN/Tailscale).
Client OS & Platform Detection: Automatically identifies client devices (e.g. Mac (Chrome), Windows PC (Edge), Linux (Firefox)).
Host Dashboard UI: Live "Connected Devices" card with device count badge (#shareBtnBadge), status bar indicator (#statusBarClients), and expandable client list.
🎨 High-Contrast Shell Command Echo & PS1 Prompt
Vibrant PS1 Shell Prompt: Bold Cyan host (\e[1;36m), Bold Green path (\e[1;32m), and Bold White command cursor (\e[1;37m).
Command & Output Differentiation: Active commands echo in Bold White with automatic debug trap resetting command outputs to crisp, readable gray.
Windows Host CMD & Bash Support: Fallback ANSI prompt configurations for Windows PTY and host bash.
✨ Monaco Editor Cursor Pulse & Fluid Caret
Enabled cursorBlinking: "blink" for clear cursor visibility.
Enabled cursorSmoothCaretAnimation: "on" for fluid caret navigation across lines and mouse positioning.
📂 Workspace File Import & Upload API
Added "Import File(s)" button with multi-file picker directly in the workspace explorer header.
Implemented POST /api/files/upload backend endpoint with path traversal defense and filename sanitization.
📐 VS Code-Style Bottom Status Bar (24px Elevation)
Integrated dedicated 24px bottom status bar (#appStatusBar) keeping terminal text cleanly elevated above the Windows taskbar.
Real-time line/column cursor tracker, file encoding, language mode, Docker sandbox state, and problems indicator.