feat(dashboard-api): add settings, voice runtime, and diagnostics APIs#364
Open
championVisionAI wants to merge 2 commits intoLight-Heart-Labs:mainfrom
Open
Conversation
Lightheartdevs
requested changes
Mar 18, 2026
Collaborator
Lightheartdevs
left a comment
There was a problem hiding this comment.
Review: REQUEST CHANGES
High: Broad except Exception in _check_livekit
Narrow to aiohttp.ClientError + asyncio.TimeoutError per project convention in helpers.py.
High: New aiohttp.ClientSession created per call
Rest of codebase uses shared session via _get_aio_session() to avoid fd exhaustion. Reuse the shared session.
High: Hard conflict with PR #363
Both PRs add GET /api/settings with incompatible implementations and response shapes. #363 in main.py (richer: services, GPU, model, updates). #364 in routers/runtime.py (slimmer: version, tier, uptime, storage). Cannot both merge. Recommendation: merge the richer payload from #363 into the runtime.py router location from #364.
Medium:
- Hand-rolled HS256 JWT — document rationale or use PyJWT
- Silent
_read_jsonexception swallowing — addlogger.warning - Unrelated tests deleted (status, storage, external-links, service-tokens) — restore or justify
_atomic_write_jsonusesPath.replace()which isn't atomic on Windows
🤖 Reviewed with Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds the missing runtime API contracts used by Dashboard setup/success/voice flows, and backs them with persistence + tests.
Why
Several frontend and integration flows depend on endpoints that were absent in
dashboard-api(/api/settings,/api/voice/*,/api/test/*). This created broken UX paths and false-negative health/feature checks.What Changed
GET /api/settingsGET /api/voice/settingsPOST /api/voice/settingsGET /api/voice/statusPOST /api/voice/tokenGET /api/test/{llm|voice|rag|workflows}dashboard-apiREADME endpoint docs.Implementation Notes
DATA_DIR/config/voice-settings.json.LIVEKIT_API_KEY+LIVEKIT_API_SECRET.availablesummary boolean.Testing
tests/test_routers.py.python3 -m py_compile.pytestis not installed.Risk
Rollback
1738d88to remove runtime router and restore prior API surface.