diff --git a/diagnostic/index.html b/diagnostic/index.html index a99d605..a14732c 100644 --- a/diagnostic/index.html +++ b/diagnostic/index.html @@ -2881,16 +2881,29 @@ // ── Gehirn-Tab ──────────────────────────────────────────── async function loadBrainStatus() { - const el = document.getElementById('brain-status'); - if (!el) return; + // Es gibt ZWEI Brain-Status-Anzeigen: kompakte Card im Main-Tab + // (brain-dot + brain-status-short + brain-error) und die ausfuehrliche + // im Gehirn-Tab (brain-status). Beide muessen synchron updated werden. + const mainShort = document.getElementById('brain-status-short'); + const mainDot = document.getElementById('brain-dot'); + const mainErr = document.getElementById('brain-error'); + const detail = document.getElementById('brain-status'); try { const r = await fetch('/api/brain/health'); if (!r.ok) throw new Error('HTTP ' + r.status); const d = await r.json(); - const st = d.status === 'ok' ? '🟢 online' : '🟡 ' + (d.status || 'unknown'); - el.innerHTML = `${st} · ${d.memory_count ?? '?'} Memories · Qdrant: ${d.qdrant || '-'}`; + const ok = d.status === 'ok'; + const st = ok ? '🟢 online' : '🟡 ' + (d.status || 'unknown'); + const detailText = `${st} · ${d.memory_count ?? '?'} Memories · Qdrant: ${d.qdrant || '-'}`; + if (detail) detail.innerHTML = detailText; + if (mainShort) mainShort.textContent = ok ? 'online' : (d.status || 'unbekannt'); + if (mainDot) mainDot.className = `dot ${ok ? 'connected' : 'disconnected'}`; + if (mainErr) mainErr.textContent = ok ? '' : (d.error || ''); } catch (e) { - el.innerHTML = `🔴 Brain nicht erreichbar (${e.message})`; + if (detail) detail.innerHTML = `🔴 Brain nicht erreichbar (${e.message})`; + if (mainShort) mainShort.textContent = 'nicht erreichbar'; + if (mainDot) mainDot.className = 'dot disconnected'; + if (mainErr) mainErr.textContent = e.message; } // Conversation-Stats (separater Endpoint) const conv = document.getElementById('conversation-status');