Files
mission-control-v2/SAVEPOINT.md
T

8.7 KiB

Savepoint — Mem0-Ausbau (Referenzaufgabe)

Stand: 2026-08-22, Worktree referenz/mem0-ausbau in F:\Coding Stuff\mc2-referenz. Branch wurde aus d508a84 (A2's gesicherter Stand) erstellt und enthält dessen 5 bearbeitete Dateien.

Auftrag

docs/aufgaben/referenzaufgabe-mem0-ausbau.md: Mem0-Reste vollständig entfernen, ohne MC2/Frontend/Deployment zu brechen.

  • Messlatte: ruff clean, Backend import app sauber, grep -ril mem0 backend/ mcp/ deploy/ --include='*.py' --include='*.sh' = 0 Dateien, mem0_service/ entfernt, Box-Smoke/Health so weit wie möglich grün.
  • Prüfstein: API-Felder wie mem0_ms nicht einfach löschen — Frontend mit anpassen oder Feld sauber aus beiden Seiten entfernen.
  • Arbeitsweise: Datei für Datei, höchstens zwei vor der ersten Änderung. Nach jeder Änderung ein Satz.
  • Live-Deployment ~/mission-control-v2 ist TABU.

Wichtig: A2-Vorgang (Commit d508a84 — bereits auf diesem Branch)

Diese 5 Dateien wurden vom abgebrochenen Lauf A2 bereits bearbeitet und im Commit d508a84 gesichert:

  1. backend/config.pyMEMORY_DB und MC_MEM_DEDUPE_ENABLED entfernt, MEM0_SERVICE_URL-Kommentar bereinigt
  2. backend/routers/system.py_mem0_reachable() entfernt, mem0_reachable aus Systeminfo
  3. backend/routers/voice.pyMem0-RetrieveGedächtnis-Retrieve
  4. backend/routers/zeitmaschine.pyMem0 in Docstrings/Kommentaren → Gedächtnis
  5. backend/services/sentry.pyMC_MEM0_DASHBOARD_URL in Docstring entfernt

git status war nach d508a84 clean.

Wichtig: Kahlschlag-Commit 1e68f62 (bereits auf main)

  • backend/services/memory.py — gelöscht
  • backend/routers/memory.py — gelöscht (/api/memory existiert nicht mehr)
  • deploy/mc2-steward.service — gelöscht
  • deploy/mem0-service.service — gelöscht
  • deploy/voice-service.service — gelöscht
  • deploy/mem0-konsolidierung.* — gelöscht

Erledigt in dieser Sitzung

1. backend/steward.py

  • Toter Import from services import memory as memory_svc entfernt
  • Toter memory_svc.AUTO_DEDUPE_ENABLED-Block entfernt
  • Docstring: Mem0-Auto-DedupeRe-Warm-Wächter und Health-Wächter (sentry)
  • Docstring: memory.auto_dedupe_loop — Gedächtnis-Dubletten entfernt
  • Docstring: MC_MEM_DEDUPE_ENABLED entfernt
  • Verifiziert: memory.py wurde in Kahlschlag gelöscht, steward.py hatte toten Import

2. backend/services/voice_metrics.py (alle 9 Treffer bereinigt)

  • Docstring (3x): Mem0-RetrieveGedächtnis-Retrieve
  • Line 10: Mem0-Retrieve im Best-effort-Kommentar → Gedächtnis-Retrieve
  • Line 39: Mem0-Retrieve im docstring → Gedächtnis-Retrieve
  • Line 56: Geparkten Mem0-RetrieveGeparkten Gedächtnis-Retrieve
  • Line 106: Unter-Detail: mem0 (Teil VON hirn...Unter-Detail: memory (Teil VON hirn...
  • Line 116: Agent + Mem0 + TTFTAgent + Gedächtnis + TTFT
  • Line 133: Agent-Overhead + Mem0 + LLM-TTFTAgent-Overhead + Gedächtnis + LLM-TTFT
  • Line 141: mem0 = _take_retrieve(...)memory = _take_retrieve(...) (starker Kommentar)
  • Line 154: "mem0_ms""memory_ms" (API-Feld im JSON-Rückgabewort)

3. frontend/src/lib/api.ts (3 Treffer)

  • Line 446: mem0 = Unter-Detail INNERHALB von hirnmemory = Unter-Detail INNERHALB von hirn
  • Line 455: Agent + Mem0 + LLM-TTFTAgent + Gedächtnis + LLM-TTFT
  • Line 457: mem0_ms: number | null // ... (Mem0-Retrieve)memory_ms: number | null // ... (Gedächtnis-Retrieve)

4. frontend/src/components/dashboard/LatencyCard.tsx (4 Treffer)

  • Line 5: Mem0 ist ein Unter-DetailGedächtnis ist ein Unter-Detail
  • Line 42: t.mem0_ms (2x) → t.memory_ms (2x)
  • Line 106: latest.mem0_ms (2x) → latest.memory_ms (2x)
  • Line 131: Agent + Mem0-SucheAgent + Gedächtnis-Suche

5. frontend/src/views/GuideView.tsx (1 Treffer, kompletter Paragraph)

  • Stack-Paragraph (Card 8 "Gedächtnis & RAG"): "Dein Gedächtnis ist Mem0-basiert: auto-lernend..." umgeschrieben zu "Dein Gedächtnis ist auto-lernend & semantisch: Der Agent lernt im Hintergrund nach jedem Turn..."
  • Gotcha-Zeile (Mem0-extraktion) entfernt
  • Begründung: Gedächtnis-Tab existiert nicht mehr (Kahlschlag), Mem0 wurde durch Hermes-Nativ abgelöst

6. backend/services/backup.py (1 Treffer)

  • Docstring: Full state backup (mem0 + ...)Full state backup (...)

7. deploy/backup.sh (8 Treffer)

  • Line 6-7: Kommentar mem0 (Chroma + history.db) aus Inhalt entfernt
  • Line 23: MEM0_DIR="${MC_MEM0_DIR:-/srv/models/mem0}" — ganze Zeile gelöscht
  • Line 30: mkdir -p "$STAGE/mem0" — aus mkdir entfernt
  • Line 32: [ -d "$MEM0_DIR" ] && cp -a "$MEM0_DIR/." "$STAGE/mem0/" || true — ganze Zeile gelöscht
  • Line 63: Kommentar mem0-venv ist uv-managedvoice-venv ist uv-managed
  • Line 71: freeze_venv "$HOME/.mem0/venv/bin/python" "$KG/pip-mem0.txt" — ganze Zeile gelöscht
  • Line 82: $HOME/.mem0/venv/bin/python aus for-Schleife entfernt
  • Line 95: MANIFEST: mem0 (chroma + history.db) aus Inhalt entfernt

Noch offen (nächste Dateien)

8. mcp/mcp_mc.py

  • Treffer: "mem0" in Texten (Stack-Dienste, Backup-Beschreibung, Service-Liste)
  • Keine Logik, nur Dokumentation/Texte → Mem0 → Gedächtnis

9. deploy/agent-hooks/box-steckbrief-inject.sh

  • Treffer: "mem0" in Texten/Kommentaren

10. deploy/autoupdate.sh

  • Treffer: "mem0" in Texten/Kommentaren

11. deploy/hermes-postcheck.sh

  • Treffer: "mem0" in Texten/Kommentaren

12. deploy/restore.sh

  • Treffer: "mem0" — VORSICHT: Dies ist die Gegenstück zu backup.sh! Wenn restore.sh mem0-Reste im Restore-Prozess hat, müssen diese entfernt werden. Keine Logik ändern, nur mem0-Referenzen.

13. deploy/stack-postcheck.sh

  • Treffer: "mem0" in Texten/Kommentaren

14. deploy/warmup.sh

  • Treffer: "mem0" in Texten/Kommentaren

15. deploy/venv-audit.sh

  • Treffer: "mem0" in Texten/Kommentaren

16. Ordner mem0_service/ löschen

  • Enthält: app.py, migrate.py, smoke_test.py, requirements.txt
  • Toter Sidecar: Port :8765 antwortet nicht, nicht systemd-registered

Noch nicht touchen (out-of-scope / unklar)

voice_service/app.py + voice_service/install.sh

  • Enthalten "mem0" — gehören zur voice_service, nicht zur Messlatte
  • voice_service.service wurde in Kahlschlag gelöscht, aber voice_service/ Ordner ist noch vorhanden
  • Entscheidung: Nicht bearbeiten, da nicht in backend/, mcp/, deploy/ Messlatte

hermes/plugins/mc2-memory/ (2 Dateien)

  • __init__.py, plugin.yaml
  • Rufen /api/memory auf → existiert nicht mehr, degradieren gracefully
  • Nicht in Messlatte (deploy/ mit .py/.sh — YAML zählt nicht, Python-Plugin ist extern)
  • Entscheidung: Nicht bearbeiten (Hermes-Plugin, nicht Teil von MC2)

deploy/mission-control-2.service + deploy/mc2-backup.service

  • systemd Service-Dateien (keine .py oder .sh)
  • Nicht in Messlatte, aber könnten Mem0-Referenzen haben
  • Entscheidung: Prüfen, ob sie Mem0 nennen; wenn ja, Text anpassen

deploy/llama-swap.config.yaml

  • YAML, nicht in Messlatte

frontend/dist/

  • Muss nach Änderungen neu gebaut werden (npm run build)
  • NACHDEM alle .ts/.tsx Dateien bearbeitet sind

Bekannte Fallstricke

  1. Prüfstein (Frontend-Konsistenz): mem0_ms war ein API-Feld, das das Frontend las. Wurde zu memory_ms umbenannt + Frontend angepasst. Nicht einfach löschen.
  2. Restore vs. Backup: restore.sh ist das Gegenstück zu backup.sh. Wenn backup.sh mem0 weglässt, darf restore.sh nicht versuchen, mem0 zu restaurieren. Sorgfältig prüfen!
  3. head funktioniert in PowerShell nicht: Muss Select-Object -First N verwenden.
  4. Globs für native Befehle: rg mit Globs muss gequoted werden, sonst spaltet PowerShell falsch.
  5. frontend/dist ist im git: Nach Frontend-Änderungen muss npm run build laufen und das neue dist committet werden.
  6. /api/memory existiert nicht mehr (Kahlschlag), aber frontend/src/lib/queries.ts ruft es noch via useMemory(): api<Memory[]>(/api/memory.... Das ist ein vorher bestehendes Problem (nicht eingeführt in dieser Runde).

Nächster Schritt

  1. mcp/mcp_mc.py bearbeiten → Mem0 in Texten/Kommentaren zu Gedächtnis
  2. deploy/agent-hooks/box-steckbrief-inject.sh bearbeiten
  3. deploy/autoupdate.sh, deploy/hermes-postcheck.sh, deploy/restore.sh, deploy/stack-postcheck.sh, deploy/warmup.sh, deploy/venv-audit.sh bearbeiten
  4. mem0_service/ Ordner löschen
  5. ruff + import app prüfen
  6. grep -ril mem0 backend/ mcp/ deploy/ --include='*.py' --include='*.sh' → muss 0 ergeben
  7. frontend/dist neu bauen (Box: cd frontend && npm run build)