This repository has been archived on 2026-07-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
mission-control/ROADMAP.md
T
2026-06-21 13:07:52 +02:00

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/test ruft 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) via httpx + 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/promptModal fü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 bleibt 0.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 :9000SoC-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 & liveFeature 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/stream fü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-swap und mission-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 + psutilamd-smi/rocm-smi sind auf dem Bosgame NICHT installiert! GPU-Mem: /sys/class/drm/card1/device/mem_info_*; Temp: hwmon-name amdgpu/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 in static/index.html — Trennung sauber halten.