Skip to content

[codex] Treat unconfigured LiveKit as optional for voice status#1674

Draft
Jeshua09090 wants to merge 1 commit into
Osmantic:mainfrom
Jeshua09090:codex/voice-status-optional-livekit
Draft

[codex] Treat unconfigured LiveKit as optional for voice status#1674
Jeshua09090 wants to merge 1 commit into
Osmantic:mainfrom
Jeshua09090:codex/voice-status-optional-livekit

Conversation

@Jeshua09090

Copy link
Copy Markdown

Summary

Fixes /api/voice/status so an unconfigured optional LiveKit service does not make core voice availability report available: false when required STT/TTS services are healthy.

Before this change, the endpoint included livekit: not_configured in the same all_healthy aggregation as Whisper and TTS. That made a normal install without LiveKit look partially unavailable even when the required voice path was healthy.

The endpoint still reports LiveKit as not_configured, and a configured but unhealthy LiveKit service still makes the aggregate unavailable.

AI Assistance

AI assistance was used to inspect the existing router behavior, write the regression tests first, implement the narrow fix, and run validation. The human author remains responsible for reading the diff and responding to review.

Release Lane

  • Stable hotfix targeting release/2.5.x
  • Mainline change targeting main
  • Next-minor work targeting the next feature/minor release
  • Not sure; reviewer should help classify

Stable hotfix reason:

N/A; this targets mainline dashboard API behavior.

Changed Surface

  • Docs only
  • Tests only
  • Dashboard UI
  • Dashboard API / host agent
  • Installer / bootstrap / lifecycle
  • Docker Compose / service manifests
  • Model routing / Hermes / capabilities
  • Network exposure / auth / proxy
  • Dependencies / runtime wiring

Risk And Validation

  • Risk level: Medium
  • Validation run:
    • git diff --check
    • Markdown/link sanity for docs
    • Focused tests listed below
    • Dashboard lint/test/build
    • Extension audit / compose validation
    • Release-grade fleet or scoped hardware validation
    • Stable-lane patch validation, if targeting release/2.5.x
    • Not required because:

Commands/results:

# Regression test red before implementation
python -m pytest tests/test_voice.py::test_voice_status_available_when_required_services_healthy_without_livekit
FAILED: assert payload["available"] is True; actual False

# Focused tests after implementation
python -m pytest tests/test_voice.py tests/test_main.py
68 passed, 1 warning in 1.72s

# Whitespace check
git diff --check
passed

# Broader dashboard-api suite attempt on Windows
python -m pytest tests
1177 passed, 1 skipped, 1 warning, 2 failed in 253.52s

Failures were in tests/test_setup_sentinel.py, where temporary scripts with #!/bin/bash execute through the Windows endpoint path and return FAIL sentinels. Re-running tests/test_setup_sentinel.py with Git Bash in PATH produced the same 2 failures, so these appear unrelated to this voice-status change.

Operational Change Check

If this PR touches installer phases, bootstrap logic, compose stack generation,
service manifests, dashboard API control flows, Hermes, model routing, GPU or
runtime detection, lifecycle commands, host mutation, or network exposure, it
requires release-grade fleet validation before release unless the PR explains a
narrower equivalent.

  • This is not an operational change.
  • This is an operational change and validation is recorded above.
  • This is an operational change and validation is intentionally deferred for:

Notes For Reviewers

This only changes aggregation logic for /api/voice/status. It does not start, stop, configure, or mutate any services. LiveKit remains visible in the response as not_configured; it simply no longer blocks the core voice availability flag when absent.

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