Zentrale: "Lucys Augen"-Check ergaenzt (Vision-Modell im Blick)

Nutzer-Fund: Die Faehigkeiten-Liste zeigte Hirn/Gedaechtnis/Gateway/Agent/
Stimme, aber nicht die Augen — obwohl das Vision-Modell seit heute zum
Immer-bereit-Set gehoert. Neuer Check (nicht kritisch): gruen wenn das
vision-Modell geladen ist, sonst Warnung mit 1-Klick-"Augen aufwecken".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-03 09:14:40 +02:00
parent d2ab662146
commit a024ea1b2f
4 changed files with 72 additions and 53 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -7,7 +7,7 @@
<link rel="manifest" href="/manifest.webmanifest" /> <link rel="manifest" href="/manifest.webmanifest" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>Mission Control 2.0</title> <title>Mission Control 2.0</title>
<script type="module" crossorigin src="/assets/index-C3HWS1JY.js"></script> <script type="module" crossorigin src="/assets/index-BsGulpv8.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-_Rap01H_.css"> <link rel="stylesheet" crossorigin href="/assets/index-_Rap01H_.css">
</head> </head>
<body> <body>
+24 -5
View File
@@ -2,7 +2,7 @@
// Lucy-Fähigkeiten in Klartext, inkl. Gesamt-Verdikt, Speicher-Ampel und einer // Lucy-Fähigkeiten in Klartext, inkl. Gesamt-Verdikt, Speicher-Ampel und einer
// konkreten 1-Klick-Reparatur pro Problem. EINE Quelle für das Status-Panel. // konkreten 1-Klick-Reparatur pro Problem. EINE Quelle für das Status-Panel.
import { Brain, BookMarked, Plug, Bot, Mic, type LucideIcon } from "lucide-react" import { Brain, BookMarked, Eye, Plug, Bot, Mic, type LucideIcon } from "lucide-react"
import { useHealth, useServices, useModels, useSystemStatus } from "./queries" import { useHealth, useServices, useModels, useSystemStatus } from "./queries"
export type CheckStatus = "ok" | "warn" | "down" | "loading" export type CheckStatus = "ok" | "warn" | "down" | "loading"
@@ -83,7 +83,26 @@ export function useLucyHealth(): LucyHealth {
return { ...base, status: "ok", detail: "Wach und ansprechbar." } return { ...base, status: "ok", detail: "Wach und ansprechbar." }
})()) })())
// 2) Lucys Gedächtnis — Mem0-Dienst. // 2) Lucys Augen — das Vision-Modell (Rolle `vision`, Teil des Immer-bereit-Sets seit
// ttl 0 am 03.07.). Nicht kritisch: Reden geht auch blind — aber ehrlich anzeigen.
checks.push(((): LucyCheck => {
const base = { id: "vision", label: "Lucys Augen", icon: Eye, critical: false }
if (!loaded || !modelsResp) return { ...base, status: "loading", detail: "Wird geprüft …" }
const vm = modelsResp.models.find((m) => m.role === "vision")
if (!vm)
return { ...base, status: "warn", detail: "Kein Augen-Modell eingerichtet — Lucy kann keine Bilder ansehen." }
const warm = (modelsResp.running ?? []).includes(vm.name)
return warm
? { ...base, status: "ok", detail: "Sieht Bildschirm und Bilder." }
: {
...base,
status: "warn",
detail: "Lucys Augen sind eingeschlafen — das erste Bild-Ansehen dauert dann kurz.",
repair: { kind: "loadModel", model: vm.name, label: "Augen aufwecken" },
}
})())
// 3) Lucys Gedächtnis — Mem0-Dienst.
checks.push(((): LucyCheck => { checks.push(((): LucyCheck => {
const base = { id: "memory", label: "Lucys Gedächtnis", icon: BookMarked, critical: true } const base = { id: "memory", label: "Lucys Gedächtnis", icon: BookMarked, critical: true }
const ok = svcOk("mem0") const ok = svcOk("mem0")
@@ -98,7 +117,7 @@ export function useLucyHealth(): LucyHealth {
} }
})()) })())
// 3) Verbindung (Gateway) — der integrierte OpenAI-Gateway, über den Apps/IDEs Lucy erreichen. // 4) Verbindung (Gateway) — der integrierte OpenAI-Gateway, über den Apps/IDEs Lucy erreichen.
checks.push(((): LucyCheck => { checks.push(((): LucyCheck => {
const base = { id: "gateway", label: "Verbindung (Gateway)", icon: Plug, critical: true } const base = { id: "gateway", label: "Verbindung (Gateway)", icon: Plug, critical: true }
const ok = health ? health.gateway_reachable : svcOk("integriert") const ok = health ? health.gateway_reachable : svcOk("integriert")
@@ -113,7 +132,7 @@ export function useLucyHealth(): LucyHealth {
} }
})()) })())
// 4) Lucys Agent (Hermes) — der Dienst, der als Lucy antwortet (Terminal/Telegram/Sprechen). // 5) Lucys Agent (Hermes) — der Dienst, der als Lucy antwortet (Terminal/Telegram/Sprechen).
checks.push(((): LucyCheck => { checks.push(((): LucyCheck => {
const base = { id: "agent", label: "Lucys Agent (Hermes)", icon: Bot, critical: true } const base = { id: "agent", label: "Lucys Agent (Hermes)", icon: Bot, critical: true }
const ok = svcOk("hermes-gateway") const ok = svcOk("hermes-gateway")
@@ -128,7 +147,7 @@ export function useLucyHealth(): LucyHealth {
} }
})()) })())
// 5) Lucys Stimme — Voice-Dienst (STT/TTS). Nicht kritisch: Chat geht auch ohne. // 6) Lucys Stimme — Voice-Dienst (STT/TTS). Nicht kritisch: Chat geht auch ohne.
checks.push(((): LucyCheck => { checks.push(((): LucyCheck => {
const base = { id: "voice", label: "Lucys Stimme", icon: Mic, critical: false } const base = { id: "voice", label: "Lucys Stimme", icon: Mic, critical: false }
const ok = svcOk("voice") const ok = svcOk("voice")