Files
mission-control-v2/README.md
HitonabiandClaude Fable 5.1 479fecd2c6
Ampel / ampel (push) Failing after 24s
Auftragsbuch ausgebaut: Karten-Annahme, Bagatell-Annahme, Lucy-Annahme raus — Gate ist Ampel + User-Merge
Die Vorschlags-Inbox (routers/services auftragsbuch, AuftragsbuchView, /auftraege, Cockpit-
Kachel + Handlungsbedarf-Eintrag, deploy/auftrag-annehmen.sh, lucy-annahme.sh, bagatell-
annahme.sh, docs/AUFTRAGSBUCH.md) war seit 02.08.2026 ungenutzt: Kanban-Tools seit 21.08. aus,
v3-Umbau lief ueber Branch -> Ampel -> Merge -> deploy.sh, PC-Executor-IP in Box und Config
veraltet. Doku behauptete den Karten-Weg trotzdem als Standard.

Jetzt:
- Cockpit: Kachel "Ideen" (offen/haengend) statt "Auftragsbuch"; Handlungsbedarf zeigt haengende
  Ideen und springt in die Ideen-Ansicht.
- Guide/Schaubild: Kreislauf Idee -> Ideen-Queue -> IDE am PC -> Ampel -> DEIN Merge -> Live.
- events.py: kein Auftragsbuch-Fingerprint mehr; config.py: PC_EXECUTOR_URL-Default auf .22.
- Skills/Skripte: selbst-inventur ohne Karten-Abschnitt, morning-report nennt offene Branches,
  konzept-fliessband verweist auf die Ideen-Ansicht.
- Doku: STACK "Deploy & Pipeline" = Branch -> Ampel -> User-Merge -> deploy.sh (einziger Weg),
  GRENZEN/ARBEITSWEISE/FALLEN/README/BEDIENUNG/RUNBOOK/GEMINI_BRIEFING/gitea-workflow angepasst,
  ZIELBILD Punkt 9, OFFENE-FAEDEN + RAPHAEL.md: erledigt.
- Bewusst geblieben: werkstatt-SOUL/projektstart-SOUL (Werkstatt-Persona, eigener Faden),
  Chronik-Kategorie "auftragsbuch" fuer historische Eintraege.
Auf der Box bereits erledigt (Hand): mc2-bagatell.timer deaktiviert + Units archiviert,
PC-Executor-URL in ~/.hermes/config.yaml auf .22.

Baut auf wartung/lucy-stimme-proxy-raphael auf (Proxy /api/lucy/stimme/*).
Gates: eslint 0 Fehler, vitest 59/59, tsc + vite build gruen, frontend/dist committet,
py_compile gruen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 16:25:05 +02:00

7.5 KiB
Raw Permalink Blame History

Mission Control 2.0

Steuerzentrale des lokalen KI-Stacks auf dem Bosgame M5 (AMD Ryzen AI MAX+ 395 „Strix Halo", 122 GB Unified Memory, keine dedizierte GPU — llama.cpp über Vulkan/RADV). Läuft live als sudo-freier systemd-User-Dienst und ist auf Autonomie ausgelegt: Die Box wartet sich selbst, prüft sich selbst und meldet sich, wenn etwas nicht stimmt.

100 % lokal. Kein Cloud-Modell, kein externer Dienst im Datenpfad.

Die drei Bahnen

Bahn Was sie tut Wo
Steuerzentrale Modelle, Routing, Wartung, Gedächtnis, Ideen-Queue MC2 :9001
Coding Agentic IDE (z.B. OpenCode Desktop) auf Dev-PC via lokaler API + MCP 100% lokal
Lucy Innere Stimme am PC (HUD, kein Avatar) und auf Telegram — eine Stimme, ein Hirn eigenes Repo Hitonabi/lucy

Lucy holt ihr Hirn direkt über das MC2-Gateway (:9010/v1) mit nativer Bildweiche und Voice-Streaming.

Ports & Dienste

Port Dienst Erreichbar
9001 MC2 (FastAPI + React) — Cockpit, API, Konsole LAN
8080 llama-swap — Modell-Router LAN
9010 mc2-gateway/v1-Datenpfad (model: auto, Bild-Weiche) loopback
8642 · 9119 Hermes-Gateway · Hermes-Web-UI loopback
8765 · 8650 Mem0-Sidecar · Voice-Sidecar (STT/TTS) loopback
7682 ttyd — Box-Konsole, same-origin unter /console/ loopback

Units in deploy/: mission-control-2 · mc2-gateway · mc2-steward · mem0-service · voice-service · box-console · hermes-builtin-ui + Timer für Backup, Auto-Update und Self-Smoke. llama-swap läuft als System-Unit.

Die Bau-Pipeline

Idee in MC2  →  Gitea-Repo (mit CI-Ampel + VERIFY)  →  in Agentic IDE bauen  →  Ampel  →  main
     └── autonomes Vibe Coding via OpenCode Desktop + MCP

Jedes neue Repo wird von deploy/gitea-repo-create.sh mit beiden Wächtern geboren:

  • .gitea/workflows/ci.yml — die Außen-Prüfung nach dem Push (Gitea Actions)
  • VERIFY — die Innen-Prüfung: eine Zeile, wie man das Projekt testet. Die Agentic IDE führt sie im Mix-Ansatz vor jedem Push aus, um Code-Fehler ("Quality Gap") abzufangen. Keine VERIFY-Datei = Prüf-Tor aus.

Modelle & Rollen

Gemessen auf der Box (Stand: 27.08.2026, Vulkan b10653):

Rolle Modell Tempo Aufgabe
coder Qwen3.8-27B (dicht, 27B) 12,7 t/s Plant und baut — der Haupt-Coder. 131k Kontext (ganzer Slot), multimodal
hermes / fast Qwen3.6-35B-A3B 69,690 t/s Lucys Hirn und Sucher-Subagent. Immer warm, 65k/Slot
debugger Muse-Glimmer-30B 4050 t/s (DFlash) Runtime-Debugger & Fehler-Diagnostiker (multimodal)
vision Qwen3-VL-30B-A3B auf Abruf Lucys Augen (On-Demand)
heavy gpt-oss-120b nur nachts Chef-Gutachter (4:30 Uhr). Nie tagsüber — verdrängt das warme Set
embed · reranker Qwen3 0.6B immer warm Vektorsuche + Feinsortierung

Sieben Rollen, mehr nicht. Frühere Fassungen listeten hier auch kritiker, scout und dense-planer — die Modell-Konsolidierung vom 19.08. hat sie entfernt (ein Coder, ein Agent-Hirn). Der dichte 27B ist seither nicht mehr „Planer" neben dem Coder, sondern ist der Coder. Details: docs/wissen/STACK.md.

‼️ Dichte Modelle sind auf dieser Box bandbreitengebunden. Der Prefill bricht mit wachsendem Kontext ein — beim früheren Kritiker (Devstral, dicht) waren bei 32k gemessene 63 t/s ≈ 9 Minuten nur zum Lesen, weshalb er hart auf 16k gedeckelt war. Das gilt weiter für jedes dichte Modell: coder (Qwen3.8-27B) liefert ~12,7 t/s gegen ~90 t/s des MoE-Hirns — kein Konfigfehler, sondern das 215-GB/s-Limit der Plattform. Der Kritiker selbst ist seit dem 19.08. nicht mehr im Stack.

‼️ Speicher-Regel: Warm-Set + größtes On-Demand-Modell ≤ ~115 GB. Die ko-residente Gruppe (groups.brains) steht auf persistent: true (Verdrängungsschutz; live gegengeprüft 27.08.2026). Wichtig ist nicht der Schalter, sondern: alles, was gleichzeitig warm sein muss, gehört in DIESELBE Gruppe — zwei Gruppen verdrängen sich gegenseitig, und persistent schützt nicht davor (gemessen 25.07.). Details und Messwerte: docs/wissen/VERDIKTE.md.

Qualitäts-Tore

  1. Prüf-TorVERIFY nach jeder Etappe; rot → der Agent (OpenCode Desktop) repariert lokal nach.
  2. CI-Ampel — Lint (ruff) · Import/Syntax (compileall) · Frontend-Build. Läuft in Gitea.

Gemeinsame Lehre dahinter: Wissen lebt in Datei + git, nicht im schrumpfenden Chat-Kontext. Kontext-Komprimierung löscht still die Regeln mit.

Selbsterhaltung

  • Health-Wächter (sentry) + Warm-Set-Wächter (warmer, per Env abschaltbar)
  • Updates mit Fangnetz — Backup → Update → Postcheck → bei Fehler Auto-Rollback + Pin
  • Melde-Briefkasten (/api/voice/announce) — alles, was die Box von sich aus sagen will; Lucy pollt ihn und spricht es. Absender loop = Coding-Ereignisse
  • Gedächtnis — Mem0-Sidecar, auto-lernend, semantisch, mit Auto-Dedupe
  • Tägliche Self-Smokes, Zeitmaschine (Snapshot + Ein-Klick-Restore), Chronik der autonomen Taten

API (Auswahl)

health · models/* · discover · fit · groups · routing/* · system/* · maintenance/* · connect · memory/* · agent/* · ideen/* · lucy/stimme/* · chronik · eigenleben · wissen · zeitmaschine/* · reminders/* · voice/* · events (SSE) OpenAI-kompatibel: /v1/chat/completions, /v1/completions. MCP-Server: mcp/.

Entwickeln

# Backend
cd backend
python -m venv .venv && .venv/Scripts/python -m pip install -r requirements.txt   # Windows
.venv/Scripts/python -m uvicorn app:app --port 9000

# Frontend (Dev, proxyt /api → :9000)
cd frontend && npm install && npm run dev        # http://localhost:5173

# Frontend (Build → wird vom Backend ausgeliefert)
cd frontend && npm run build                     # → frontend/dist

frontend/dist wird mitcommittet — die Box hat kein Node; Deploy ist ein git pull plus Dienst-Neustart. Vor jedem Commit lohnt der Ampel-Vorlauf: ruff check . und npm run build.

Env-Vars (Auswahl)

Variable Default Zweck
MC_PORT 9000 MC-Backend-Port (die Unit auf der Box setzt 9001)
MC_LLAMA_SWAP_URL http://127.0.0.1:8080 Engine/Router
MC_CONFIG_PATH /etc/llama-swap/config.yaml llama-swap-Config
MC_V1_UPSTREAM gesetzt → /v1 geht an mc2-gateway (:9010) statt in-process

| MC_ENGINE_PATH | /opt/llamacpp-vulkan | aktive Engine (Vulkan-Build) | | MC_REWARM_ENABLED | 1 | Warm-Set-Wächter (auf der Box bewusst 0) | | MC_DRAFTS_DIR · MC_SPEC_TYPE | $MODELS/drafts · draft-simple | Spekulatives Dekodieren |

Weiterlesen

Dokument Inhalt
docs/BEDIENUNG.md Wie man MC2 benutzt
docs/RUNBOOK.md · docs/DISASTER_RECOVERY.md Betrieb, Störungen, Wiederherstellung
docs/HERMES_SETUP.md Hermes-Agent, Profile, Crons
docs/wissen/VERDIKTE.md Finale Technik-Entscheide — nicht neu aufrollen
docs/wissen/FALLEN.md · docs/wissen/OFFENE-FAEDEN.md Stolpersteine · offene Punkte

| AGENTS.md | Arbeitsregeln für Agenten in diesem Repo |