# Verdikte — entschieden, nicht neu aufrollen _Stand 24.09.2026. Jedes Verdikt nennt Datum und Grund. Wer eines kippen will, braucht eine neue Messung oder einen User-Entscheid (siehe [ARBEITSWEISE.md](ARBEITSWEISE.md)). Abgelöstes steht unten unter „Überholt (mit Datum)": ersetzt, nicht gelöscht._ ## Richtung - **Box-Wart (23.09.):** MC2 ist nur noch Updater, Wächter und Modell-Radar der KI-Box. Coding läuft in OpenChamber; Ideen, Wissen, Chronik, Skills-Ansicht, Verbinden und Konsole sind aus der Oberfläche raus. Bedienung im Browser an PC und Handy, Oberfläche im Stil „Cockpit" (Warnlampen, Instrumente). - **Umbau statt Neubau (24.09.):** Wächter, Updates mit Rückweg und Festhalten, getrennte Prozesse, Cockpit und Gateway tragen. Neu gebaut wird hinter Schnittstellen: Job-Engine, Einstellungen, Verlauf (Plan: [OFFENE-FAEDEN.md](OFFENE-FAEDEN.md)). Einen Neubau („MC3") hatte der User schon am 03.07. verworfen. - **Homelab Orchestrator (24.09.):** zwei Instanzen, eine Oberfläche. Der Box-Wart bleibt auf der KI-Box, der Homelab-Teil läuft als Container auf dem Proxmox-PC, beide prüfen sich gegenseitig. „Box-Wart" bleibt der Name des Bereichs für die KI-Box. - **Homelab-Umfang und Rechte (24.09.):** Proxmox-Host, 6 Container, Arcane mit Docker, KI-Box, nichts weiter. Proxmox nur über eine Lese-API und einen kleinen Ausführer auf dem Host. Dabei ist, was das Etikett `community-script` oder `watcher` trägt; `watcher-aus` nimmt ein Gerät aus. Schlüssel und Ausführer erst nach User-OK. - **Homelab-Updates nur per Knopf (24.09.):** „Jetzt updaten" je Gerät, mit Erfolgsmeldung und Erreichbarkeits-Check; ist der Check rot, rollt der Homelab-Teil selbst zurück und meldet es. Host-Updates mit Warnung, Neustart getrennt; die KI-Box prüft danach, ob der Host wieder läuft. - **Keine Anmeldung (24.09.):** nur eine unsichtbare Herkunftsprüfung, damit fremde Webseiten keine Knöpfe auslösen (`backend/services/herkunft.py`). - **Android-App am Ende (24.09., Phase 5):** Push, Cockpit, Updates freigeben, Lucy per Sprache mit Live-Modus. - **Die Coding-Oberfläche heißt „OpenChamber" (24.09.).** Die Gemini-/Antigravity-Doku und SAVEPOINT liegen im Archiv. - **Merge und Deploy (23./24.09.):** Claude darf selbst mergen und deployen, sobald alle Prüfläufe grün sind. - **Agent-Runtime: Hermes bleibt (01.07.).** Ein ZeroClaw-Test wurde gebaut und wieder abgerissen; der Latenz-Gewinn kam vom Hirn, nicht von der Runtime ([Messwerte](../archiv/2026-06-30-zeroclaw-poc-ergebnis.md)). - **Hermes führt sein Gedächtnis selbst (07.08.).** Es ist die einzige Gedächtnis-Wahrheit; der Box-Wart hat keinen eigenen Gedächtnis-Dienst. - **Telegram bleibt der Mobil-Kanal, WhatsApp ist verworfen (09.07.):** Die inoffizielle Bridge bedeutet Bann-Risiko auf der Privatnummer und einen zusätzlichen Dauerprozess. Neu bewerten nur bei einer offiziellen Personal-Bot-API. ## Betrieb des Box-Warts - **Der Wächter behebt Einfaches selbst (23.09.):** Abgestürzte Dienste (`failed`) startet er neu, höchstens 2× je Stunde. Gestoppte Dienste meldet er nur. Schlafende (abgeschaltet und nicht im Autostart, 24.09.) sind kein Befund. - **Updates automatisch sonntags 04:30 (23.09.),** seit 24.09. über `mc2-autoupdate.timer` statt Hermes-Cron: Als Kind des Hermes-Gateways hing der Lauf beim Hermes-Update am eigenen Neustart (20.09.: 180 s, Fehlschlag). - **Neustart der Box nur im Wartungsfenster So 04:00–06:59 (24.09.).** `MC_AUTOUPDATE_REBOOT_JETZT=1` erzwingt ihn. - **Nachtruhe für Meldungen (24.09.):** `notify.sh` sammelt 00:00–06:59, um 07:00 kommt eine Morgenmeldung. Dringendes geht sofort raus. - **Deploy zweistufig mit Prüftor und Rückweg (24.09.):** `deploy/pruefen.sh` ersetzt die CI-Ampel. - **llama-swap-Config (24.09.):** Die lebende Datei `/etc/llama-swap/config.yaml` ist die Wahrheit. Der Repo-Abzug überschreibt sie nur, wenn er sich im selben Deploy geändert hat. Geschrieben wird nur unter der Config-Sperre. - **Box-Diät (24.09.):** Konsole und Spracherkennung schlafen (nicht gelöscht). PC-Fernsteuerung (MCP `hermes-pc-control`, PC-Aufgabe `HermesPCExecutor`) und MCP `mission-control-stack` sind aus. 10 alte Skills liegen in `~/.hermes/skills-archiv`. Embedding und Reranker schlafen (ttl 300); warm ist nur das Hirn. - **Sicherung mit Lucys Gedächtnis (24.09.):** Der Tarball enthält `memories/`, `SOUL.md`, Skills, Cron-Skripte, Box-Wart-Zustand, Units und Stimmreferenz. `restore.sh` spielt Gedächtnis und Zustand nur zurück, wenn sie fehlen oder mit `--mit-gedaechtnis`. - **Endgültig gelöscht wird nur per User-Klick (23.09.):** Modelle im Aufräumen-Panel, Reste auf der Box ebenso. - **Git (24.09.):** nur `main` plus Archiv-Tags. Ungemergtes, das weg soll, erst als Tag `archiv/` sichern. - **Approvals bleiben aus (17.09.):** `approvals.mode: 'off'`, `approvals.cron_mode: auto`. - **Erinnerungen und Wecker laufen im Box-Wart** (`backend/services/reminders.py`), nicht als Hermes-Cron. - **Hermes-Quellcode nie forken oder patchen; Hermes' interne Prompts bleiben Englisch (03.07.).** Deutsch kommt aus `SOUL.md`; alles, was der User sieht, ist Deutsch. - **Tool Search nicht auf `on` (04.07.):** Es spart Cloud-Tokens, kostet lokal Latenz (gemessen 15,1 s statt 5–7 s). ## Modell-Radar (23./24.09.) - Zwei Rollen: Hirn und Coder. Höchstens drei Modelle; eine dritte Rolle nur bei nachgewiesenem Mehrwert. Der Debugger entfällt (23.09.). - Das Radar testet selbst: nachts 00:30–02:30 (um 03:00 braucht NerdQuiz das Hirn), höchstens ein neuer Kandidat pro Woche, nur was neben das Warm-Set passt. Durchgefallene werden gelöscht; getauscht wird erst per Knopf „Übernehmen" (23.09.). - Hirn und Coder müssen Bilder verstehen, auch mitten in Agenten-Aufgaben (23.09.). - Fairer Vergleich (24.09.): Jeder Kandidat misst mit seiner schnellsten Draft-Variante (ohne, eingebauter MTP-Kopf, Draft des heutigen Modells); das heutige Modell misst mit seinem Draft. - Jev (TypeSafe AI) ist nicht relevant (24.09.): nur Cloud-API, liefert nur Wahrscheinlichkeiten, passt in keine Rolle. ## Engine und Modelle (Box, gfx1151) - **Vulkan/RADV schlägt ROCm** (+12–22 % Generierung, seit 27.06. mehrfach bestätigt). ROCm-Recheck 24.07.: Der Vulkan-Prefill hält bei 32k noch 488 t/s, kein ROCm-Bau. Wiedervorlage nur bei neuem Langkontext-Support der Engine oder einem reinen HIP-Modell. **Das Hirn bleibt in jedem Fall auf Vulkan.** - **hipEngine und strix-halo-toolboxes: beobachten, nicht übernehmen (03.07.).** Übernahme nur nach eigener Messung. - **Hirn: Qwen3.6-35B-A3B** (MoE, 3B aktiv) mit DFlash-Draft (seit 22.07.), KV q8_0 (07.07.: Qualität vor ein paar GB), `--parallel 2` = zwei Slots à 65k (Nebenlast blockiert keinen Sprach-Turn), `--reasoning-budget 2048` (17.09.). - **Dichte Modelle nie als Hirn (17.07.):** bandbreitengebunden, ~12 statt ~100 t/s. Das Radar lässt als Hirn nur Modelle mit höchstens 12B aktiven Parametern zu. - **Coder: Qwen3.8-27B mit DFlash2-Draft (04.09.):** 12,6 → 31 t/s. `heavy` ist seit 04.09. derselbe Coder. - **Varianten der Basismodelle (17.09.):** Hirn und Coder laufen als Varianten (Prüfstand: 100,8 statt 92,8 t/s bzw. 30,4 statt 26,2 t/s). Die Originale bleiben als Rückweg. Nemotron 3.5 Lightning 30B-A3B ist eine gleichwertige Hirn-Reserve, nicht besetzt. - **Bild-Zwillinge (24.09.):** Bilder gehen an Zwillinge ohne Draft (`vision`, `coder-bild`), weil llama.cpp Draft und Bild nicht zusammen kann (HTTP 500, b11057 und b11157 geprüft). - **`brains` mit `exclusive: false` (24.09.):** Ohne den Schlüssel ist eine llama-swap-Gruppe exklusiv, und jede Hirn-Anfrage entlud den Coder. Gruppe `bild`: `swap: true` (höchstens ein Zwilling geladen), `exclusive: false`. - **Eine Gruppe für alles gleichzeitig Warme (25.07.):** Zwei ko-residente Gruppen verdrängen sich. Speicherregel: Warm-Set plus größtes Bedarfsmodell ≤ ~115 GB (bei 107 GB Warm-Set plus 20 GB folgte ein Kernel-OOM). - **`frontend/dist` im Git ist Absicht:** Die Box hat kein Node; der Deploy holt `main` per fast-forward. - **MoA-Preset nicht übernommen (09.07.):** lädt mehrere Modelle parallel, RAM ist der Engpass. ## Lucy (Desktop-App, eigenes Repo) - **Electron, nicht Tauri:** Klick-Durchlass-Overlay, Capture, Loopback und Tray gibt es nur in Electron. - **Stimme: pocket-tts `german_24l` bleibt.** Qwen3-TTS-1.7B, Chatterbox und F5 sind verworfen (Latenz, kein Streaming). Seit 04.09. kommt Lucys Stimme von der Box (`lucy-stimme`, in MC2 unter `/api/lucy/stimme/*`), auch für die Sprachnachricht der Daily News. - **Spracherkennung läuft auf der Box** (Parakeet-TDT v3, 0,3–0,8 s), nicht am PC. Der Dienst schläft seit 24.09. bis zur Android-App. - **Kein Multi-Agent im Sprachweg** (dreifache Latenz). - **Smart Turn v3:** Audio links auffüllen; die Ausgabe ist empirisch P(unfertig). Läuft im Sprach-Sidecar (`/turn`). ## Sonstiges - **LobeChat/WebUI-Ersatz verworfen** (Mehrbenutzer-Design passt nicht; Lehre: Scope challengen). - **Lokaler GPU-Klon (9070 XT):** wenn, dann llama.cpp-Vulkan + llama-swap, nicht Lemonade. Zweck offen. - **Aussortiert:** Kyutai-Streaming-STT (nur EN/FR), Unmute-Voll-Stack, openWakeWord (Wake-Gate ist STT-basiert). ## Überholt (mit Datum) | Seit | Was galt | Was heute gilt | |---|---|---| | 24.09. | Sonntags-Update als Hermes-Cron (21.08.) | `mc2-autoupdate.timer`; der Hermes-Cron ist pausiert | | 24.09. | CI-Ampel in Gitea Actions (22.07.); der Runner war seit 28.08. tot | Prüftor `deploy/pruefen.sh` am PC und im Deploy | | 24.09. | `vision` = Qwen3-VL-30B-A3B (seit 20.08.), davor GLM-4.6V-Flash | Bild-Zwillinge von Hirn und Coder | | 24.09. | Regel `persistent: false` für `brains` (25.07., nach dem OOM mit 107 GB Warm-Set) | Warm-Set ist nur das Hirn; `brains` mit `persistent: true` und `exclusive: false` | | 24.09. | Embedding und Reranker immer warm (für die Gedächtnis-Suche) | schlafen, ttl 300 | | 24.09. | Hermes-Aufgabenbrett (Kanban) mit Verteiler im Gateway | Werkzeugsatz seit 21.08. aus, Verteiler (`kanban.dispatch_in_gateway`) seit 24.09. aus | | 24.09. | Werkstatt-Profil, `worker.sh`, Orchestrator- und Konzept-Skills, Agent-Hooks | Profile seit 19.08. archiviert, Dateien am 24.09. aus dem Repo | | 24.09. | Governor (erst Dienst `:8100`, dann OpenCode-Plugin `mc2-governor.ts`) | am PC seit 22.08. abgeschaltet, Plugin am 24.09. aus dem Repo | | 24.09. | Gemini über Antigravity als Notfall- und Review-Partner (10.07.) | Doku im Archiv | | 24.09. | Referenz-Branch des Gedächtnis-Ausbaus | Tag `archiv/referenz-mem0-ausbau` | | 23.09. | „MC2 lebt" (10.07.): Ideen-Queue → Karte → Klick, Auftragsbuch mit Bagatell-Annahme | Box-Wart; das Auftragsbuch war am 04.09. ausgebaut | | 23.09. | Pins nur von Hand lösen (`jq` per SSH) | Knopf „Freigeben" (Wächter-Hinweis und Updates-Seite) | | 04.09. | `heavy` = gpt-oss-120b (03.07.), „nie im heißen Pfad" | `heavy` = Qwen3.8-27B; gpt-oss-120b ohne Rolle | | 21.08. | Hermes Desktop als Arbeits-Tür (09.07.); davor Zed-Agent mit Box-Modell (04.07.: kein Zed ACP) | OpenChamber am PC | | 21.08. | Nachtprogramm aus Traum, Chef-Gutachter, Release- und Trend-Radar, Prüfstand-Cron, Restore-Probe, Selbsttest, Briefing | drei Hermes-Jobs (KISS-Umbau), seit 24.09. Timer für Updates und Morgenmeldung | | 21.08. | natives Fan-out mit `delegation.model: coder` (10.07.) | Werkzeugsatz `delegation` aus | | 21.08. | `approvals.cron_mode: deny` (Autonomie-Härtung, Juli) | `off`/`auto`, bestätigt 17.09. | | 21.08. | Box-Host-Sicherung nach PBS (`pbs-backup.timer`) | aus (lief rot); der Tarball ist die Sicherung | | 21.08. | Zwei-Kritiker-Gate (Coder-Next + GLM) über `fremdblick.sh` | entfallen mit Modell-Konsolidierung (19.08.) und KISS-Umbau | | 19.08. | Kritiker Devstral Small 2 mit 16k-Deckel (25.07.), Rollen `scout` und `dense-planer` | ein Coder, ein Hirn | | 19.08. | Coder Qwen3-Coder-Next „final" (24.07.); „Coder ohne DFlash" (22.07.) | Qwen3.8-27B, seit 04.09. mit DFlash2 | | 07.08. | Gedächtnis-Sidecar Mem0 (`:8765`) samt Memory-MCP und Plugin | Hermes führt sein Gedächtnis selbst; am 27.08. restlos ausgebaut | | 24.07. | ROCm-Recheck 20.–25.07. als Wiedervorlage | erledigt, Vulkan bleibt |