12 KiB
12 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:
ruffclean, Backendimport appsauber,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_msnicht 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-v2ist 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:
backend/config.py—MEMORY_DBundMC_MEM_DEDUPE_ENABLEDentfernt,MEM0_SERVICE_URL-Kommentar bereinigtbackend/routers/system.py—_mem0_reachable()entfernt,mem0_reachableaus Systeminfobackend/routers/voice.py—Mem0-Retrieve→Gedächtnis-Retrievebackend/routers/zeitmaschine.py—Mem0in Docstrings/Kommentaren →Gedächtnisbackend/services/sentry.py—MC_MEM0_DASHBOARD_URLin Docstring entfernt
git status war nach d508a84 clean.
Wichtig: Kahlschlag-Commit 1e68f62 (bereits auf main)
backend/services/memory.py— gelöschtbackend/routers/memory.py— gelöscht (/api/memoryexistiert nicht mehr)deploy/mc2-steward.service— gelöschtdeploy/mem0-service.service— gelöschtdeploy/voice-service.service— gelöschtdeploy/mem0-konsolidierung.*— gelöscht
Erledigt in dieser Sitzung
1. backend/steward.py
- Toter Import
from services import memory as memory_svcentfernt - Toter
memory_svc.AUTO_DEDUPE_ENABLED-Block entfernt - Docstring:
Mem0-Auto-Dedupe→Re-Warm-Wächter und Health-Wächter (sentry) - Docstring:
memory.auto_dedupe_loop — Gedächtnis-Dublettenentfernt - Docstring:
MC_MEM_DEDUPE_ENABLEDentfernt - Verifiziert:
memory.pywurde in Kahlschlag gelöscht,steward.pyhatte toten Import
2. backend/services/voice_metrics.py (alle 9 Treffer bereinigt)
- Docstring (3x):
Mem0-Retrieve→Gedächtnis-Retrieve - Line 10:
Mem0-Retrieveim Best-effort-Kommentar →Gedächtnis-Retrieve - Line 39:
Mem0-Retrieveim docstring →Gedächtnis-Retrieve - Line 56:
Geparkten Mem0-Retrieve→Geparkten Gedächtnis-Retrieve - Line 106:
Unter-Detail: mem0 (Teil VON hirn...→Unter-Detail: memory (Teil VON hirn... - Line 116:
Agent + Mem0 + TTFT→Agent + Gedächtnis + TTFT - Line 133:
Agent-Overhead + Mem0 + LLM-TTFT→Agent-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 hirn→memory = Unter-Detail INNERHALB von hirn - Line 455:
Agent + Mem0 + LLM-TTFT→Agent + 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-Detail→Gedä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-Suche→Agent + 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-managed→voice-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/pythonaus for-Schleife entfernt - Line 95: MANIFEST:
mem0 (chroma + history.db)aus Inhalt entfernt
8. mcp/mcp_mc.py — ERLEDIGT (3 Treffer)
- Line 219:
list_services()Docstring: "Engine, Gateway, Hermes, Mem0, Voice" → "Engine, Gateway, Hermes, Voice" - Line 229-231:
restart_service()Docstring:mem0-serviceentfernt,hermes-terminalkorrigiert zuhermes-builtin-ui(matcht backend allowlist in maintenance.py) - Line 238:
backup_now()Docstring: "mem0 + Configs + Secrets" → "Configs + Secrets" - Verifiziert:
rg -i mem0 mcp/mcp_mc.py= 0 Treffer,py_compile mcp/mcp_mc.pyOK - Achtung: Der mc2-memory-Plugin (
hermes/plugins/mc2-memory/__init__.py) ruft noch/api/memoryund/api/memory/learnauf. Der Kahlschlag-Commit hatbackend/routers/memory.pygelöscht → dieser API-Pfad existiert nicht mehr. Der Plugin degraded silently (prefetch="", learn fail). Entscheidung: Nicht bearbeiten, Plugin ist imhermes/plugins/-Ordner, nicht in der Messlatte.
9. deploy/agent-hooks/box-steckbrief-inject.sh
- Treffer: "mem0-Gedaechtnis :8765" in einer langen Agent-Injektionszeile (Zeile 31)
- Nur Text → mem0-Gedaechtnis :8765 entfernen
10. deploy/autoupdate.sh
- Treffer: "Gehirn-Check (Mem0, Tools, Voice)" → "Gehirn-Check (Tools, Voice)"
11. deploy/hermes-postcheck.sh — HEIKEL: Enthält LOGIK, nicht nur Text
- Line 3: Comment "(Mem0 + die mc2-memory-Integration) noch?" → muss aktualisiert werden
- Line 8:
MEM0_URL="${MEM0_SERVICE_URL:-http://127.0.0.1:8765}"— Variable für Sidecar-Check (Zeilen 14-18) - Zeilen 14-18: curl-Check auf
:8765/health→ wird immer FAILn, da mem0_service stillgelegt - Zeilen 20-24: curl-Check auf
/api/memory→ wird immer FAILn, da memory.py in Kahlschlag gelöscht - Zeilen 26-31: grep-Check für
memory.provider=mc2-memoryin config.yaml → das ist neues Hermes-nativ-Memory, kein Mem0-Rest. NICHT entfernen (gehört zur aktuellen Architektur). - Zeilen 52-58: Plugin-Check für
mc2-memory→ ebenfalls neue Architektur, kein Mem0-Rest. NICHT entfernen. - Entscheidung: Zeilen 8, 14-18, 20-24 entfernen (toter Sidecar + toter /api/memory-Endpunkt). Zeilen 26-31 und 52-58 behalten (gehören zur neuen Hermes-native Memory).
12. deploy/restore.sh — LOGIK: Gegenstück zu backup.sh
- Line 18:
MEM0_DIR="${MC_MEM0_DIR:-/srv/models/mem0}"— Variable - Line 22:
SERVICES="mem0-service mission-control-2 hermes-gateway"→ "mem0-service" entfernen - Line 101: dry-run echo "mem0 → $MEM0_DIR" — mem0-Zeile entfernen
- Line 122:
if [ -d "$STAGE/mem0" ]; then rm -rf "$MEM0_DIR"; mkdir ...; cp ...; fi— ganze Zeile entfernen - Da backup.sh kein
$STAGE/mem0mehr erstellt, ist diese Logik tot (würde nie feuern). Entfernen.
13. deploy/stack-postcheck.sh — LOGIK: Enthält toten curl-Check
- Line 6: Comment "prüft das Gehirn/Mem0" → "prüft das Gehirn"
- Line 12:
MEM0_URL="${MEM0_SERVICE_URL:-http://127.0.0.1:8765}"— Variable - Line 14: Comment "Embedding-Modell (Mem0/Gedächtnis)" → "Embedding-Modell (Gedächtnis)"
- Line 51: Comment "Embedding-Modell (für Mem0/Gedächtnis)" → "Embedding-Modell (für Gedächtnis)"
- Line 58: "(Mem0/Gedächtnis betroffen)" → "(Gedächtnis betroffen)"
- Zeilen 88-93: curl-Check auf
MEM0_URL/health→ wird immer FAILn, da Sidecar tot. Ganze Block entfernen. - Die Embedding-Checks (Zeilen 51-59) bleiben — sie prüfen das Embedding-Modell, das auch für die neue Memory-Architektur relevant ist.
14. deploy/warmup.sh
- Treffer: "für Mem0/Gedächtnis" → "für Gedächtnis" (nur Text)
15. deploy/venv-audit.sh
- Line 2: Comment "(Mem0, Voice) altern" → "(Voice) altern"
- Line 12:
VENVS=("$HOME/.mem0/venv:mem0" "$HOME/.voice/venv:voice")→ mem0-Entry entfernen
16. Ordner mem0_service/ löschen
- Enthält:
app.py,migrate.py,smoke_test.py,requirements.txt - Toter Sidecar: Port
:8765antwortet 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/memoryauf → 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
.pyoder.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
- Prüfstein (Frontend-Konsistenz):
mem0_mswar ein API-Feld, das das Frontend las. Wurde zumemory_msumbenannt + Frontend angepasst. Nicht einfach löschen. - Restore vs. Backup:
restore.shist das Gegenstück zubackup.sh. Wenn backup.sh mem0 weglässt, darf restore.sh nicht versuchen, mem0 zu restaurieren. Sorgfältig prüfen! headfunktioniert in PowerShell nicht: MussSelect-Object -First Nverwenden.- Globs für native Befehle:
rgmit Globs muss gequoted werden, sonst spaltet PowerShell falsch. frontend/distist im git: Nach Frontend-Änderungen mussnpm run buildlaufen und das neuedistcommittet werden./api/memoryexistiert nicht mehr (Kahlschlag), aberfrontend/src/lib/queries.tsruft es noch viauseMemory():api<Memory[]>(/api/memory.... Das ist ein vorher bestehendes Problem (nicht eingeführt in dieser Runde).
Nächster Schritt
- mcp/mcp_mc.py committen (bereits bearbeitet)
deploy/agent-hooks/box-steckbrief-inject.shbearbeiten (1 Treffer, Text)deploy/autoupdate.sh,deploy/warmup.shbearbeiten (je 1 Treffer, Text)deploy/venv-audit.shbearbeiten (2 Treffer, Text + Venv-Liste)deploy/stack-postcheck.shbearbeiten (6 Treffer, 1 Block-Entfernung, 4 Kommentare)deploy/restore.shbearbeiten (4 Treffer, LOGIK: MEM0_DIR, SERVICES, dry-run echo, restore-Zeile)deploy/hermes-postcheck.shbearbeiten (heikel: Sidecar-Checks + /api/memory-Check entfernen, neue Memory-Checks behalten)mem0_service/Ordner löschenruff+import appprüfengrep -ril mem0 backend/ mcp/ deploy/ --include='*.py' --include='*.sh'→ muss 0 ergebenfrontend/distneu bauen (Box:cd frontend && npm run build)