diff --git a/diagnostic/index.html b/diagnostic/index.html index 5248363..e028a77 100644 --- a/diagnostic/index.html +++ b/diagnostic/index.html @@ -168,7 +168,7 @@
⏳
- +
@@ -3829,13 +3829,19 @@ text = `${labels[s] || s}: bereit${info.model ? ' ' + info.model : ''}${sec}${downloadedHint}`; } else if (info.state === 'error') { dot = '❌'; color = '#FF3B30'; anyError = true; - text = `${labels[s] || s}: Fehler ${info.error || ''}`; + // httpx haengt an jeden Fehler "For more information check: " + // — kostet den halben Platz und erklaert nichts. + const err = String(info.error || '').replace(/\s*For more information check:\s*\S+/gi, '').trim(); + text = `${labels[s] || s}: Fehler ${escapeHtml(err)}`; } else { text = `${labels[s] || s}: ${info.state}`; } - row.innerHTML = `${dot}${text}`; + row.innerHTML = `${dot}${text}`; list.appendChild(row); } + // Nur eine Meldung: das grosse Symbol links sagt schon alles — sonst + // stuende z.B. das ❌ doppelt da. + if (list.children.length === 1) list.querySelector('.svc-dot').style.display = 'none'; // Icon spiegelt Gesamt-Status if (anyError) icon.innerHTML = '❌'; @@ -3844,20 +3850,27 @@ banner.style.display = 'block'; - // Wenn alles ready (kein Loading, kein Error): X-Button anzeigen - // + nach 8s automatisch wegfaden + // X immer da — auch (gerade) bei Fehlern. Alles ready → nach 8 s von selbst weg. + closeBtn.style.display = 'block'; + clearTimeout(_serviceFadeTimer); if (!anyLoading && !anyError) { - closeBtn.style.display = 'block'; - clearTimeout(_serviceFadeTimer); _serviceFadeTimer = setTimeout(() => { banner.style.display = 'none'; }, 8000); - } else { - closeBtn.style.display = 'none'; - clearTimeout(_serviceFadeTimer); } } + // Wegklicken: Fehler und Fertig-Meldungen vergessen, sonst kaemen sie mit + // der naechsten Statusmeldung eines anderen Dienstes gleich wieder hoch. + // Was noch laedt, bleibt gemerkt und zeigt sich beim naechsten Update. + function dismissServiceStatus() { + for (const [k, v] of Object.entries(_serviceState)) { + if (v.state !== 'loading') delete _serviceState[k]; + } + clearTimeout(_serviceFadeTimer); + document.getElementById('service-status-banner').style.display = 'none'; + } + function updateThinkingIndicator(msg) { // Gedanken-Stream fuettern — JEDES Event (auch idle als ✓ fertig) pushThought(msg.activity || '', msg.tool || ''); diff --git a/xtts/llm-adapter/adapter.py b/xtts/llm-adapter/adapter.py index dfe9a90..484e926 100644 --- a/xtts/llm-adapter/adapter.py +++ b/xtts/llm-adapter/adapter.py @@ -362,7 +362,9 @@ async def _call_llama(messages: list, *, max_tokens: int, temperature: float, } except Exception as e: logger.warning("llama.cpp-Call fehlgeschlagen: %s", e) - return {"ok": False, "content": "", "error": str(e)[:300]} + # httpx haengt "For more information check: " an — fuer niemanden hilfreich. + msg = re.sub(r"\s*For more information check:\s*\S+", "", str(e)).strip() + return {"ok": False, "content": "", "error": msg[:300]} # B0.5-2: Lade-Status ans Diagnostic (service_status, service="llm"). Wir kennen