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-24 17:31:18 +02:00

14 KiB

Mission Control — Roadmap

Nordstern: Den Bosgame nie wieder via SSH/Putty bedienen. 100 % Automatisierung oder Klicki-Bunti. Größeres Ziel: Mission Control als persönliches Agentic OS — lokaler, privater KI-Assistent der das gesamte Setup kennt und steuert.


v9 — Hermes-Agent-Adoption (🔜 IN ARBEIT, Entscheidung 2026-06-23)

Strategiewechsel: Der hand-gebaute Agent (hermes_agent.py) wird durch das Nous Research Hermes Agent-Framework (MIT, github.com/nousresearch/hermes-agent) ersetzt. Mission Control wird zur Control-Plane darum herum.

Warum: Der Eigenbau ist schwach wegen Scaffolding (blinde DuckDuckGo-Suche, Memory-Voll-Dump in den Prompt, Fake-Streaming) — nicht wegen des Modells (Qwen3 ist SOTA bei Tool-Calling). Hermes Agent liefert die gesamte alte v9-Wunschliste fertig & gepflegt: Cron-Scheduler, Cross-Session-Memory (FTS5), Skills (procedural memory), 40+ Tools.

Verifizierte Kompatibilität (Primärquelle):

  • 100 % lokal: spricht jeden OpenAI-kompatiblen Endpoint → llama-swap/llama.cpp (Agent-Modell braucht --jinja).
  • MCP-Client (≥v0.2.0) und MCP-Server (≥v0.6.0) → eigenes mcp_memory.py plugt als MCP-Server ein, v7/v8.3-Memory + MemoryPanel bleiben erhalten.
  • OpenAI-API-Server auf :8642 (API_SERVER_ENABLED=true, API_SERVER_KEY) → HermesPanel-Chat + Voice (Whisper/Piper) zeigen dorthin.
  • Config: ~/.hermes/config.yaml. Braucht Python 3.11, Node.js, ripgrep, ffmpeg.

Phasen:

  • Phase 0 — Proof auf echter HW ( 2026-06-23): Hermes Agent v0.17.0 installiert (~/.hermes/, Code in ~/.hermes/hermes-agent). coder (Qwen3-Coder-30B-A3B) in llama-swap um --jinja ergänzt (Backup: /etc/llama-swap/config.yaml.bak-pre-jinja). hermes config: provider=custom, base_url=http://127.0.0.1:8080/v1, ctx 65536. Proof via hermes -z … --yolo: echter Tool-Call (free -h → „21 GiB frei", exakt deckungsgleich mit Live-Wert). Befunde: ripgrep fehlt (grep-Fallback, später apt install ripgrep); Hermes hat eigenes lokales STT (faster-whisper); terminal.backend=local; Version nicht sauber pinbar → v0.17.0 in ~/.hermes/PINNED_VERSION, kein hermes update.
  • Phase 1 — Memory-Bridge ( 2026-06-23): mcp_memory.py via hermes mcp add mission-control-memory --command /opt/mission-control/.venv/bin/python --env MC_URL=http://127.0.0.1:9000 --args …/mcp_memory.py registriert (5/5 Tools, Test ✓). Erkenntnis: mcp_memory.py ist stdio-MCP→HTTP-Wrapper auf MC /api/memoryMC :9000 muss laufen. Proof: Hermes liest beide Bestands-Memories und schrieb neuen Eintrag (verifiziert in SQLite, 2→3). v7/v8.3-Gedächtnis ohne Migration im Agenten. Hinweis: Hermes' eigenes Session-Memory läuft zusätzlich → zwei Schichten im Blick behalten.
  • Phase 2 — Control-Plane ( 2026-06-23): Hermes als systemd-User-Service hermes-gateway (hermes gateway install, Linger aktiv → boot-/logout-fest, kein sudo). API-Server :8642 aktiviert (~/.hermes/.env: API_SERVER_ENABLED/KEY/PORT/HOST). Produktionspfad bewiesen: Tool-Call via curl :8642/v1/chat/completions. mcp_memory.py läuft als Kindprozess im Dienst. UI-Hälfte: routers/hermes.py-Chat-WS proxyt jetzt streamend zu :8642 (Key aus ~/.hermes/.env); WS-Contract (thinking/token/done/error) beibehalten → HermesPanel unverändert, kein Frontend-Build nötig. Status-Endpoint meldet zusätzlich Hermes-Erreichbarkeit.
  • Phase 3 — Aufräumen ( 2026-06-23, harter Cutover): hermes_agent.py gelöscht (ReAct-Loop, tote Tools, Modell-Routing weg); config.py um HERMES_SIMPLE/COMPLEX_MODEL bereinigt, HERMES_API_URL/KEY ergänzt; routers/hermes.py zu reinem Proxy verschlankt. Rest-offen: Self-Update auch für hermes-gateway (aktuell nur mission-control); HermesPanel-Altlast (Windows-SSH-Setup-Sektion) ist nur noch kosmetisch.
  • Phase 4 — Auszahlung ( 2026-06-24): Agent-Cockpit in der HermesPanel (aufklappbar, „📡 Cockpit"). Read-only Control-Plane-Reads in hermes_control.py (TTL-Cache 10 s): Status aus ~/.hermes/gateway_state.json + Cron-Heartbeat (Liveness), Cron-Jobs via hermes cron list --all, Skills via hermes skills list + .usage.json (Nutzungszähler). Rich-Tabellen werden mit COLUMNS=400 ohne Truncation erzeugt und über / geparst. Endpunkte GET /api/hermes/{agent,cron,skills}. Auf der Box verifiziert: Status running/Scheduler aktiv, 71 Skills geparst, 0 Cron-Jobs. Offen-Rest: Schreib-Aktionen (Job anlegen/pausieren, Skill an/aus) aus der UI — bewusst später, erst Sichtbarkeit.
  • Memory-Feintuning ( 2026-06-23): ~/.hermes/SOUL.md (Persona, frisch je Nachricht geladen) instruiert Hermes, das MCP-Gedächtnis bei Nutzer-/Projektfragen proaktiv via get_memories zu konsultieren, bevor er nachfragt — Name/Profil bleiben im Gedächtnis (nicht hart in SOUL.md). Verifiziert: weicher Prompt „nenne meinen Namen" → „Hallo Tobi!". Hinweis: SOUL.md liegt auf dem Bosgame (~/.hermes/), nicht im Repo — bei Neuaufsetzen mitschreiben.
  • Phase 5 — UI-Adoption ( 2026-06-24, Kurswechsel): Statt Eigenbau-Chat das mitgelieferte Hermes-Web-Dashboard einbetten (Chat mit Live-Tool-Aktivität, Approval-Prompts, Settings, Sessions). Dashboard läuft als systemd-User-Dienst hermes-dashboard (hermes dashboard --host 127.0.0.1 --port 9119 --skip-build, Extras [web,pty]); MC reverse-proxyt es unter /hermes-ui/ (routers/hermes_ui.py, HTTP + WS-Bridge für pty/ws) mit X-Forwarded-Prefix → Dashboard rewritet Assets/Base-Path selbst und injiziert seinen Session-Token (kein zweiter Login). HermesPanel: Chat → iframe; Eigenbau-Chat/Voice/_proxy_chat entfernt. Damit gelöst: Kontextverlust + „lernt nicht" (UI spricht direkt mit dem Agent-Loop, kein Proxy-Bug) und Tool-Sichtbarkeit. Verifiziert: HTTP-Kette (Asset-Rewrite, 1,9-MB-Bundle) + Chat-WS /api/ws durch MC identisch zu direkt.
  • Phase 6 — Rechte & Multi-Agent ( 2026-06-24): „lokal = volle Rechte" via hermes config set: approvals.mode: auto, approvals.cron_mode: allow, hooks_auto_accept: true, delegation.subagent_auto_approve: true. Tirith/allow_private_urls:false bleiben an (Injection-Schutz). Verifiziert: Agent legt über die API autonom eine Datei an (Schreibrechte ohne manuelle Freigabe). Multi-Agent damit entsperrt.
  • Phase 7 — Agent-Modell Hermes 4 14B ( 2026-06-24): GGUF bartowski/NousResearch_Hermes-4-14B-GGUF Q6_K (~12 GB) → /srv/models/Hermes-4-14B-GGUF/. llama-swap-Eintrag Hermes-4-14B (Alias hermes, --jinja, -c 65536, Backup config.yaml.bak-pre-hermes4). hermes config set model.default Hermes-4-14B + Gateway-Restart. Verifiziert: llama-swap lädt das Modell (state: ready), Agent macht sauberen Tool-Call (kein <function>-Leak, RAM via Terminal abgefragt). Kaltstart-Load ~3,5 min, dann ttl 1800 s. A/B gegen Qwen3-Coder jederzeit per model.default umschaltbar.
  • Phase 9 — Gedächtnis wächst autonom + Kurator ( 2026-06-24): Tool-Beschreibungen in mcp_memory.py auf ein proaktives Protokoll umgeschrieben (get→Session-Start laden, add→proaktiv bei dauerhaften Fakten, vorher search/dedup) → schlägt auf alle Tools (Hermes + IDE-Tools) durch, das geteilte MC-SQLite wächst aus Vibe-Coding-Sessions mit. Kurator/Dedup als Hermes-Cron-Job Memory-Kurator (So 04:00, ID 7ac183295470): liest das geteilte Gedächtnis via MCP, führt Dubletten zusammen, prunt Veraltetes/Widersprüche, konservativ. Erster echter autonomer Hintergrund-Job — nutzt Scheduler (P4) + Rechte (P6) + MCP-Memory. Nebenbei Bugfix: _parse_cron (cron list ist Block-Format, keine Rich-Tabelle) → Jobs erscheinen jetzt im Cockpit.
  • Phase 8 — Cockpit-Ausbau ( 2026-06-24): Cockpit zeigt jetzt Aktivität (hermes insights: Sessions/Nachrichten/Tool-Calls/Tokens/aktiv + Top-Tool-Balken) und „Was Hermes über dich gelernt hat" (USER.md-Profil, §-getrennt + MEMORY.md). Reads in hermes_control.py (learned_profile, insights), Endpunkte /api/hermes/{learned,insights}. Beantwortet sichtbar „lernt er mit?" — ja (7 Profil-Fakten, 262 Tool-Calls/30 T verifiziert).

Entscheidungen (gesetzt): Memory via MCP einbinden (nicht migrieren) · Kurswechsel 2026-06-24: mitgeliefertes Hermes-Web-Dashboard per iframe einbetten (ersetzt Eigenbau-Chat; der alte „nicht hermes-webui"-Entscheid ist überholt — die UI ist offiziell, mit dem Install versioniert und auf genau dieses Ziel gebaut) · Agent-Modell Hermes 4 14B · stabiler OpenAI-API-Server bleibt für programmatischen Zugriff.

Risiken: sehr junges Projekt (hohes Release-Tempo) → Version pinnen · zwei Memory-Schichten (eigene via MCP + Hermes-Session-Recall) im Blick behalten.


v8.3 — Memory Import ( UMGESETZT & live, Stand 2026-06-23)

  • MemoryPanel: Import-Button öffnet Formular — Text einfügen, jede Zeile wird ein eigener Eintrag (Batch-POST).
  • Quelle wählbar: claude · gemini · chatgpt · import · manual — Kategorie frei wählbar.

v8.2 — UX & Mobile ( UMGESETZT & live, Stand 2026-06-23)

  • GuidesPanel: "Begriffe kurz erklärt" jetzt ganz oben; Tab-Navigation mit Active-Highlighting + Scroll-to-Group.
  • ConnectPanel: Download-Links für Zed (zed.dev) und Cline (VS Code + JetBrains Marketplace) ergänzt; OpenCode .jsonc-Pfad und "providers"-Key korrigiert; LAN-IP Override für NPM-Proxy-Setups.
  • Mobile (≤520px): Sidebar → Bottom-Navigation; kompaktere Buttons/Padding; Touch-freundliche Mindesthöhen.

v8.1 — Bug-Fix Release ( UMGESETZT & live, Stand 2026-06-23)

Alle kritischen Bugs aus dem ersten Bosgame-Praxistest behoben:

  • Hermes system_status: Key-Mismatch behoben — zeigt jetzt echte CPU/RAM/GPU-Werte statt ?
  • Model-Routing: Keyword-Liste erweitert (recherchiere/suche/vergleiche/…); kein Downgrade wenn komplexes Modell bereits geladen
  • HermesPanel: Chat-History überlebt Browser-Reload (sessionStorage); ⏹ Stopp-Button während Generierung; Verlauf-löschen
  • Engine-Update: fragt jetzt nach sudo-Passwort (analog OS-Update)
  • asyncio: get_event_loop()get_running_loop() in Whisper + TTS
  • Guide-Titel: &amp;& (HTML-Entity in Textknoten war ein Bug)
  • import os in routers/maintenance.py ergänzt (war NameError in updates())

v8 — Hermes Agent / Agentic OS Kern ( UMGESETZT & live, Stand 2026-06-23)

Hermes: dauerhafter lokaler KI-Assistent auf dem Bosgame. Text + Voice, Tool Calling, Gedächtnis.

  • hermes_agent.py: ReAct-Agent mit Tool-Set (read_file, list_dir, run_command, system_status, memory r/w, web_search). Modell-Routing: scout für einfache Tasks, coder für komplexe.
  • routers/hermes.py: WS /chat (streaming), POST /transcribe (Whisper STT, CPU), POST /tts (Piper TTS, weibliche Stimme Kerstin), GET /status, GET /pubkey.
  • HermesPanel.svelte: Chat-UI mit Token-Streaming, Tool-Anzeige, Mikrofon-Button (MediaRecorder), TTS-Wiedergabe, Setup-Wizard.

Offene Schritte (nicht Code, sondern Einrichtung):

  • Piper Binary + Kerstin-Stimme auf dem Bosgame installieren (Befehle im Setup-Wizard)
  • Windows OpenSSH Server aktivieren (5 PowerShell-Befehle im Setup-Wizard)
  • SSH-Key auf Bosgame generieren: ssh-keygen -t ed25519 -C "hermes-agent@bosgame" -f ~/.ssh/id_ed25519_hermes_agent -N ""
  • HERMES_WINDOWS_HOST + HERMES_WINDOWS_USER in mission-control.service setzen

v7 — Memory Layer / Gedächtnis ( UMGESETZT & live, Stand 2026-06-23)

Persistentes, tool-übergreifendes Gedächtnis für alle KI-Tools via MCP.

  • routers/memory.py: SQLite CRUD + Export, WAL-Mode, 5 Kategorien mit Enum-Validierung.
  • mcp_memory.py: stdio-MCP-Server — Tools: get/add/search/update/delete_memory. Einmalig in Cline/OpenCode/Claude Code einbinden.
  • MemoryPanel.svelte: Gedächtnis-Tab mit Kategorie-Filter, Inline-Edit, Add-Formular.
  • ConnectPanel.svelte: Gedächtnis-MCP Setup-Guide mit Config-Snippets.
  • 5 Kategorien: user (wer du bist) · instruction (Verhaltensregeln für alle Tools) · stable (Projektfakten) · versioned (Tech-Versionen) · ephemeral (7 Tage, dann weg).

v6 — Workflow & Politur ( UMGESETZT & live, Stand 2026-06-21)

  • Dashboard zeigt echtes Modell hinter dem Alias; Toolbar-Update-Badges (OS + Modell-Upgrades).
  • News als Magazin-Layout; Guide neu mit Tutorials/Workflows + Konzept-Karten.
  • Cookbook: Modelle diversifiziert (Qwen3/Gemma/Mistral/DeepSeek), „Beste Wahl für dein System".

v5 — „Anfänger-Lotse" ( UMGESETZT & live)

v4 — „Der Lotse" ( UMGESETZT & live)

v3 — Redesign + Beginner-UX + Security ( UMGESETZT & live)

Details in Git-History.


Nächste Features (Vorschläge)

v8.4 — Hermes Windows-SSH ( überholt durch v9-Adoption)

Hermes Agent bringt SSH-Terminal-Backend von Haus aus mit — Eigenbau-SSH-Tools unnötig. read_file_windows / write_file_windows / run_command_windows via paramiko

v9 (alt) — Agentic OS Orchestrierung Eigenbau ( ersetzt durch Hermes-Agent-Adoption)

Cron, Task-Queue, Push-Notifications, Multi-Step-Workflows — alles im Hermes-Agent-Framework bereits enthalten, siehe v9-Adoption oben.

v8.5 — .well-known/opencode Remote Config (bleibt relevant)

  • GET /.well-known/opencode — vollständige, dynamisch generierte OpenCode-Config (providers + models + MCP)
  • OpenCode Desktop lädt beim Start automatisch alle Configs von Mission Control
  • Einmalig: OPENCODE_REMOTE_CONFIG=http://192.168.178.151:9000/.well-known/opencode setzen

v9.1 — Guides & Connect weiter verbessern

  • Zed als primäre Editor-Empfehlung (Inline-Completion + Agent, lokal)
  • Antigravity entfernen oder als "Cloud-first, lokal wackelig" markieren
  • Continue als "unsichere Zukunft (Cursor-Akquisition)" markieren
  • .well-known/opencode-Snippet in Connect-Tab ergänzen (nach v8.5)

Langfristig

  • Hermes-Persönlichkeit konfigurierbar (Name, Tonalität) über Gedächtnis instruction-Einträge
  • Voice-to-Voice latency optimieren (Whisper ROCm wenn stable)
  • Mehrsprachige TTS-Stimmen (EN + DE umschaltbar)
  • Hermes kann Mission Control selbst weiterentwickeln (Agentic self-improvement)