feat: HF-Cache raus + service_status Banner in Diagnostic
Stefan akzeptiert die ~5min Modell-Download-Zeit nach jedem Container- Start, dafuer keine 50GB Cache-Bloat mehr und kein Bind-Mount-Verzeichnis zu pflegen. - xtts/docker-compose.yml: hf-cache Bind-Mount entfernt fuer beide Bridges. Modelle werden im writable Container-Layer abgelegt und mit jedem `docker compose down` automatisch weggeraeumt. - xtts/.gitignore: hf-cache/ Eintrag raus - RVS ALLOWED_TYPES: service_status hinzu Bridges broadcasten Lade-Status: - f5tts-bridge: bei Connect 'loading' -> ensure_loaded -> 'ready'. Auch bei config-getriggertem Modell-Wechsel: erst 'loading' Broadcast, dann reload, dann 'ready'. - whisper-bridge: gleiches Pattern. Modell wird jetzt erst nach RVS-Connect geladen damit der loading-Broadcast tatsaechlich rausgeht. Diagnostic: - server.js: service_status wird an Browser durchgereicht - index.html: neues Banner unten rechts (fixed position) zeigt Status fuer beide Services. Aggregiert: Icon ist Lupe waehrend Loading, Check wenn alles ready, X bei Error. - Wenn alles ready: X-Button erscheint (manuell schliessen) + nach 8s automatisches Fade-Out. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -637,6 +637,22 @@ function connectRVS(forcePlain) {
|
||||
log("info", "rvs", `Voice "${v || "default"}" geladen${ms ? ` in ${(ms/1000).toFixed(1)}s` : ""}`);
|
||||
}
|
||||
broadcast({ type: "voice_ready", payload: msg.payload });
|
||||
} else if (msg.type === "service_status") {
|
||||
// Gamebox-Bridges (f5tts/whisper) melden ihren Lade-Status —
|
||||
// an Browser durchreichen fuer das Banner unten rechts
|
||||
const svc = msg.payload?.service || "?";
|
||||
const state = msg.payload?.state || "?";
|
||||
const model = msg.payload?.model || "";
|
||||
const sec = msg.payload?.loadSeconds;
|
||||
const err = msg.payload?.error;
|
||||
if (err) {
|
||||
log("warn", "rvs", `service_status ${svc}: ${err}`);
|
||||
} else if (state === "ready" && sec) {
|
||||
log("info", "rvs", `service_status ${svc} ready (${model}, ${sec.toFixed(1)}s)`);
|
||||
} else {
|
||||
log("info", "rvs", `service_status ${svc} ${state}${model ? ` (${model})` : ""}`);
|
||||
}
|
||||
broadcast({ type: "service_status", payload: msg.payload });
|
||||
} else {
|
||||
log("debug", "rvs", `Nachricht: ${JSON.stringify(msg).slice(0, 150)}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user