Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8.3 KiB
Mission Control - Roadmap v2
Nordstern: Den Bosgame nie wieder via SSH/Putty bedienen müssen. 100 % Automatisierung oder Klicki-Bunti.
v4 — „Der Lotse" (GEPLANT, Stand 2026-06-21)
Sprung vom Modell-Manager zum geführten Berater. Roter Faden: Das System kennt bereits Hardware
(system.py), Modell-Meta (models.py) und Fit-Mathe (hw_math.py) — v4 nutzt das, um den Nutzer
aktiv zu beraten. Alles automatisch aus Modellen + Hardware abgeleitet. KISS/SoC bleibt:
je Bereich ein routers/<x>.py + js/panels/<x>.js + Nav-Eintrag, keine DB, keine schwere Lib.
Reihenfolge: 1 → 2 → 3 → 4 (Fundament zuerst).
1. Optimale Kontextfenster (Fundament)
hw_math:max_ctx_for(params_b, quant, ram_gb)— Umkehrfrage „welcher ctx passt noch?" (KV-Cache-Bedarf vs. freier Speicher).- Pro Modell empfohlener ctx + Klartext-Begründung; Ein-Klick „optimal setzen" (nutzt
update_model). - Speist Cookbook (2.) + Modelle-Tab.
2. Cookbook 2.0 — Use-Case-getrieben
- Einstieg „Wofür?": Coding · Bilder verstehen · Allrounder/Chat · Lange Dokumente · Agenten/Tool-Use · Schnell & sparsam.
- Pro Use-Case ein kuratiertes Setup/Stack (mehrere Modelle/Rollen) statt Einzelmodell, mit
Hardware-Ampel pro Setup (via
hw_math) + vorgeschlagenem ctx. Rezepte als Daten (recipes.py). - „Komplettes Setup installieren" — download + register aller Modelle in einem Rutsch.
- Roh-Suche bleibt als „Profi-Modus".
3. Verbinden / Orchestrierung (neuer Tab, erweitert Guides)
- Geführter Assistent je Tool (OpenCode/Cline/Cursor/OpenWebUI) mit exakter Config.
- „Verbindung testen" —
routers/integration.py/api/integration/testruft llama-swap/v1/models(LAN-URL) und meldet Erfolg + Modell-Liste zurück. - Bild-Eingaben für Fehleranalyse: erkennt Vision-Modell (sonst Hinweis „Vision installieren") + Copy-Snippet im OpenAI-Vision-Format. Auto-Swapping erklären.
4. News-Board (neuer Tab)
routers/news.py: kuratierte RSS/Atom-Feeds (HuggingFace-Blog, r/LocalLLaMA, llama.cpp-Releases, Ollama) viahttpx+ stdlib-xml.etree(kein neuer Dep), In-memory-Cache (~30 min TTL).panels/news.js: Karten (Titel/Quelle/Datum/Link), sanitisiert, LAN-only; Hardware-relevante Releases (gfx1151/ROCm) hervorheben.
v3 — Redesign + Beginner-UX + Security (Stand 2026-06-21, live)
Nach der funktional kompletten v2 (unten) umgesetzt — Fokus: schick, selbsterklärend, wasserdicht.
- Design-System: EINE Akzentfarbe (Teal), Bento, Monospace-Zahlen, beschriftete Sidebar; Inline-Styles
raus → alles über
components.css. Mockup-getrieben (Übersicht + Cookbook). - Beginner-UX: Klartext-Microcopy, Fachbegriffe übersetzt, menschliches Hero-Urteil, geführte Aktionen,
confirmModal/promptModalfür heikle Aktionen, Fit-Ampel + Sortierung im Cookbook, Guides mit Kopier-Buttons. - Security: sudo-Passwort über stdin (kein Leak mehr im Job-Log/
ps), ehrlicher Security-Chip (status.secured), WS-Token (Query). Bind bleibt0.0.0.0(LAN-only), Token optional. - Self-Update: Button „Mission Control aktualisieren" (
/api/self-update: git pull → rsync → restart) — end-to-end verifiziert.no-cache-Middleware für sofortige UI-Wirkung nach Deploy. - Infra geklärt: llama-swap lauscht
*:8080(LAN);MC_UPDATE_CMD= llama.cpp-Engine-Update (≠ MC selbst).
Details/Konventionen: CLAUDE.md. Modus jetzt: Feinschliff & Bug-Hunting.
Projektstand v2 (Stand 2026-06-20)
✅ Schritt 1 erledigt & live auf :9000 — SoC-Refactor + Design 2.0 als Fundament (Commit 3649394).
Backend in Helfer + routers/* zerlegt, Frontend in ES-Module (js/core + js/panels) + ausgelagertes
CSS, neues Dashboard-Layout (Sidebar-Nav, Topbar, Alert-Banner, Hero, KPI-Kacheln, Health-Signale,
Modell-Listen, Aktivitäts-Stream) angelehnt an docs/mission-control-overview.png. Bestehende Funktionen
1:1 migriert, Endpoint-URLs unverändert. Architektur + Deploy-Weg stehen in CLAUDE.md.
✅ Schritt 2 erledigt & live — Feature 3: Live-Auslastung. system.py Router mit psutil und sysfs für CPU/RAM/Disk/GPU/Temp.
Reihenfolge (abgestimmt): Design/Architektur zuerst (✅), dann Quick Wins, Security-Brocken zuletzt:
1 (✅) Fundament → 2 (✅) Feature 3 Live-Auslastung → 3 (✅) Feature 6 Mehr LLM-Metriken → 4 (✅) Feature 1 Server-Management → 5 (✅) Feature 4 Cookbook → 6 (✅) Feature 7 Integrations-Anleitungen → 7 (✅) Feature 2 Live-Terminal.
Arbeitsweise je Schritt: neuer routers/<x>.py + js/panels/<x>.js + Nav-Eintrag, sauber degradierend.
Bauen + Smoke-Test auf Windows, dann push→pull→rsync→restart auf den Bosgame (CLAUDE.md „Entwickeln & Deployen").
Ein Commit je Schritt. Ich (KI) habe key-basierten SSH-Zugang zum Bosgame und kann selbst deployen+restarten.
→ Letzte Errungenschaften:
- WebSockets:
/api/system/streamfür super-fluide 2Hz System-Metriken (CPU/RAM/GPU) ohne HTTP-Overhead. - Cookbook 2.0: Suchergebnisse laden Metriken asynchron ("Lazy Loading"), inklusive Hardware-Fit-Berechnung. UI ist auf Premium-Niveau angehoben (Hover-Effekte, Badge-Colors).
- Log-Streaming:
GET /running-Polls werden herausgefiltert, Live-Konsolen sind sauber.
→ Aktueller Modus = Wartung & Feinschliff.
- Die v2 Roadmap ist damit zu 100% umgesetzt.
- Fokus liegt ab sofort auf Stabilität, Bug-Hunting und dem finalen "Polishing".
Features
1. Server-Management ("Update-Panel 2.0") (✅ Erledigt)
Aktuell gibt es nur "Container aktualisieren" + "Alles aus dem Speicher". Ziel: den kompletten Server aus der UI verwalten.
- OS-/Core-Updates (
apt update/upgrade) per Knopf, mit Live-Output - Dienste steuern (
llama-swap,mission-control: Status, Restart) - Reboot / Health-Übersicht
- Referenz: altes
ai-control-Skript als Funktionsvorlage - ⚠️ Scope-/Security-Sprung: macht MC zum Server-Admin-Panel. Rechte minimal halten (sudoers-Whitelist für genau die erlaubten Befehle, statt Vollzugriff).
2. Live-Terminal / Log via SSH (✅ Erledigt)
- Unter "Server" -> "Console" kann man das Journal verfolgen.
- Simpler "Log" Endpunkt in
maintenance.py(journalctl -u llama-swap -n 100 -füber Websockets). - UI: Schwarze Konsole, umschaltbar zwischen
llama-swapundmission-control. - ⚠️ Security-kritisch: Authentifizierung via Token als Query-Parameter, da Browser keine Custom Websocket-Header senden können.
3. Live-Auslastung im Dashboard (✅ Erledigt)
- CPU / RAM / GPU-VRAM+GTT / Temperatur live anzeigen
- Quellen: sysfs + psutil —
amd-smi/rocm-smisind auf dem Bosgame NICHT installiert! GPU-Mem:/sys/class/drm/card1/device/mem_info_*; Temp: hwmon-nameamdgpu/k10temp.
4. Cookbook + "Modell holen" verschmelzen (✅ Erledigt)
- Bisher: Textfelder für HuggingFace-Repo + Pfad unter "Modelle". Das ist super für Custom-Zeug.
- Neu: Ein Klick-Cookbook (Sidebar-Tab "Cookbook") mit kuratierter Liste (z.B. Qwen2.5-Coder 32B, Llama3 Vision, etc.) inkl. Hardware-Aware "What Fits" Logik (wie bei Odysseus).
- Klick auf Modellkarte im Cookbook triggert den Download via
/api/download. - UI-Aufräumen: "Modell holen" Panel wandert ins Cookbook, unter "Modelle" bleibt nur die Tabelle & Chat.
5. Design 2.0
- Grundgerüst + Design-Sprache in Schritt 1 umgesetzt (Sidebar-Nav, Topbar, Hero, getönte
KPI-Kacheln, Health-Signale, Listen, Aktivitäts-Stream, Alert-Banner) — Tokens in
css/base.css. - Feinschliff pro Feature durchgeführt.
6. Mehr LLM-Metriken (✅ Erledigt)
- Fähigkeiten pro Modell anzeigen (Text / Bild / Code)
- Tokens/Sek, Kontextgröße, Quant, Dateigröße auf Platte
- Status pro Modell: geladen / idle / Ladezeit
7. Integrations-Anleitungen (Copy-Paste) (✅ Erledigt)
- Unter "Guides" (neuer Tab links) gibt es Copy-Paste Templates.
- Templates für die Integration von llama-swap/mission-control in:
- Cline / Cursor
- N8N / Zapier
- OpenWebUI
- LangChain / Python Code
Tech-Leitplanken
- KISS beibehalten — kein schweres Framework, solange es ohne geht.
- Sicherheit zuerst bei allem mit Shell-/SSH-Zugriff: LAN-only, Auth, minimale Rechte.
- Backend-Logik in
app.py, UI instatic/index.html— Trennung sauber halten.