Critical frontend bugs: - Add TrackSubscribed/attach() for agent audio playback - Fix decodeToString TypeError with TextDecoder - XSS fix: innerHTML -> textContent in addMessage - Fresh token on reconnect retry Agent fixes: - GemmaLLM subclass with reasoning_content fallback wrapper - Disable Gemma 4 thinking mode via chat_template_kwargs (6.8s -> 0.5s) - Remove duplicate session-level LLM - Replace global _active_session with closure-based handler - asyncio.create_task instead of deprecated get_event_loop - Explicit silero VAD, topic filter on voice-control Infra: - supervisord: all programs log to /dev/stdout - Dockerfile: uv sync --frozen with committed uv.lock - nginx config moved to real file, token_server.py no longer served - entrypoint.sh: cert persisted, only regenerated on IP change - compose: healthcheck + cert volume - token_server: CORS removed, room pinned to voice-room UI upgrade: - Orb UI with state machine (idle/connecting/listening/thinking/speaking) - Streaming transcripts via lk.transcription text streams - Barge-in hint, thinking chip, audio visualizer - Glassmorphism, chat bubbles, settings sheet, light mode - PWA manifest, favicon, wake-lock, safe-area insets - localStorage conversation history Docs: AGENTS.md drift fixed
28 lines
1.1 KiB
YAML
28 lines
1.1 KiB
YAML
services:
|
|
voice:
|
|
build: .
|
|
container_name: voice
|
|
network_mode: host
|
|
environment:
|
|
LIVEKIT_URL: "http://localhost:7880"
|
|
LIVEKIT_API_KEY: "${LIVEKIT_API_KEY:-devkey}"
|
|
LIVEKIT_API_SECRET: "${LIVEKIT_API_SECRET:-devsecret}"
|
|
AZURE_SPEECH_KEY: "${AZURE_SPEECH_KEY:?Set AZURE_SPEECH_KEY in .env}"
|
|
AZURE_SPEECH_REGION: "${AZURE_SPEECH_REGION:-eastus}"
|
|
AZURE_TTS_VOICE: "${AZURE_TTS_VOICE:-en-US-AvaNeural}"
|
|
GEMMA_BASE_URL: "${GEMMA_BASE_URL:-http://192.168.86.2:8023/v1}"
|
|
GEMMA_MODEL: "${GEMMA_MODEL:-gemma-4-e4b}"
|
|
GEMMA_API_KEY: "${GEMMA_API_KEY:-not-needed}"
|
|
WEB_MCP_ENABLED: "${WEB_MCP_ENABLED:-true}"
|
|
FIRECRAWL_BASE: "${FIRECRAWL_BASE:-http://192.168.86.2:3002}"
|
|
volumes:
|
|
- ./livekit.yaml:/etc/livekit.yaml:ro
|
|
- ./certs:/etc/voice/certs
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl -sk https://localhost:8090/ -o /dev/null && curl -s http://localhost:7880/ -o /dev/null"]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 20s
|
|
restart: unless-stopped
|