Skip to content

fix: add voice status endpoint stub and guard VRAM division by zero#851

Open
yasinBursali wants to merge 2 commits intoLight-Heart-Labs:mainfrom
yasinBursali:fix/dashboard-voice-vram
Open

fix: add voice status endpoint stub and guard VRAM division by zero#851
yasinBursali wants to merge 2 commits intoLight-Heart-Labs:mainfrom
yasinBursali:fix/dashboard-voice-vram

Conversation

@yasinBursali
Copy link
Copy Markdown
Contributor

What

  • Add /api/voice/status stub endpoint that checks whisper, tts, and livekit health
  • Guard VRAM division by zero in Dashboard.jsx and Models.jsx

Why

  • Voice.jsx calls /api/voice/status on mount and every 30s — gets 404 (no voice router exists). Page permanently shows "Some voice services unavailable" regardless of actual service health.
  • Dashboard.jsx and Models.jsx divide by vramTotal without checking for zero. When GPU detection fails or returns 0 VRAM, produces NaN/Infinity breaking progress bar rendering.

How

  • New routers/voice.py: aggregates health of whisper (STT), tts, and livekit via existing check_service_health() infrastructure. Returns {available, services: {stt, tts, livekit}, message} matching Voice.jsx expectations. Registered in main.py.
  • Dashboard.jsx line 266: vramTotal > 0 ? ... : 0 guard
  • Models.jsx lines 72-75: same guard on all 3 division sites
  • Pattern matches existing GPUCard.jsx guard

Testing

  • Python syntax verified
  • Live tested: voice endpoint returns correct health status for whisper/tts
  • Dashboard.jsx VRAM division confirmed guarded

Platform Impact

  • All platforms: Identical — Python + React changes, no platform-specific code

yasinBursali and others added 2 commits April 8, 2026 05:03
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant