P2: Vision im Stream (C2), TTS-Warmup-Retry (L2), parallel-2-Config vorbereitet
- voice.py: Bildschirm-Sicht laeuft IM SSE-Stream (+hermes.vision.progress-Event fuer Warte-Ansage), Vision-Timeout 120->45s (MC_VISION_TIMEOUT); deployt + Smoke-Test ok - useVoiceAgent: Warm-Gate mit Retry/Backoff + sichtbarer Meldung statt stummem Fake-ready - deploy-Config: hermes -c 131072 --parallel 2 (+KV Q8_0) — Mem0-Extraktion blockiert Voice-Turns nicht mehr; speicherneutral. Live-Schaltung: User - Report: P2-Nachtrag; C5 (pricing/token_stats) war Fehlalarm — in Benutzung Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -148,8 +148,20 @@ export function useVoiceAgent() {
|
||||
useEffect(() => {
|
||||
let cancelled = false
|
||||
;(async () => {
|
||||
await tts.waitReady(120_000)
|
||||
// Geduldiger Retry mit Backoff statt einmaligem 120s-Warten: crasht der pocket_server
|
||||
// (oder braucht er länger), bleibt die App in 'warming' MIT sichtbarer Meldung — vorher
|
||||
// schaltete sie nach dem Timeout stumm auf 'ready' und die Stimme fehlte einfach.
|
||||
let attempt = 0
|
||||
while (!cancelled) {
|
||||
const ok = await tts.waitReady(attempt === 0 ? 45_000 : 20_000)
|
||||
if (cancelled) return
|
||||
if (ok) break
|
||||
attempt++
|
||||
setError(`Stimme startet nicht (Versuch ${attempt}) — pocket_server prüfen, ich versuche es weiter …`)
|
||||
await new Promise((r) => setTimeout(r, Math.min(5_000 * attempt, 30_000)))
|
||||
}
|
||||
if (cancelled) return
|
||||
setError(null)
|
||||
// ein Aufwaerm-Satz (primt alle lazy Pfade); Audio verwerfen
|
||||
try { await tts.synthesize("Alles bereit, Commander.") } catch { /* */ }
|
||||
if (cancelled) return
|
||||
|
||||
Reference in New Issue
Block a user