3.9 KiB
Referenzaufgabe: Mem0-Sidecar restlos ausbauen
Zweck dieser Datei: Messlatte für den Stack-Umbau (Stufe 2, 20.08.2026). Dieselbe Aufgabe wird mehrfach mit verschiedenen Modellen gefahren. Gemessen wird nicht Tokens pro Sekunde, sondern: Wurde sie fertig? Wie lange? Wie viele Züge? Alle Pfade und Befehle unten sind am 20.08.2026 auf der Box nachgemessen, nicht geraten.
Hintergrund
Mem0 wurde im August abgelöst (bf145a3, eb4bcfc, 2286879). Der Rückbau blieb unvollständig:
Der Sidecar-Ordner liegt noch im Baum, MC2 fragt weiterhin einen toten Port ab.
Gemessen: curl http://127.0.0.1:8765/health → keine Antwort. Kein systemd-Dienst dafür,
/srv/models/mem0 bereits entfernt. Es ist also wirklich tot, nicht nur gerade aus.
Arbeitsplatz
Isolierter Worktree — NICHT das Live-Deployment:
~/projekte/mc2-referenz Zweig: referenz/mem0-ausbau
~/mission-control-v2 bleibt auf main und bedient weiter den laufenden Dienst auf :9001.
Dort nichts ändern.
Auftrag
Entferne die Mem0-Reste vollständig, ohne etwas anderes kaputtzumachen.
17 Dateien haben Treffer (gemessen 20.08., selbst nachprüfen statt blind vertrauen):
backend/steward.py deploy/stack-postcheck.sh
backend/config.py deploy/venv-audit.sh
backend/routers/voice.py deploy/agent-hooks/box-steckbrief-inject.sh
backend/routers/system.py deploy/warmup.sh
backend/routers/zeitmaschine.py deploy/autoupdate.sh
backend/services/sentry.py deploy/hermes-postcheck.sh
backend/services/voice_metrics.py deploy/restore.sh
backend/services/backup.py deploy/backup.sh
mcp/mcp_mc.py
Dazu der Ordner mem0_service/ (app.py, migrate.py, requirements.txt, smoke_test.py).
‼️ Der eigentliche Prüfstein: Wenn eine API-Antwort ein Feld wie
mem0_reachableliefert, das das Frontend liest, darf es nicht einfach verschwinden — sonst bricht die Oberfläche. Entweder das Frontend mit anpassen oder das Feld sauber entfernen. Wer nurgrep mem0laufen lässt und alles wegwirft, produziert eine Fassade.
Fertig-Kriterien
Ausgangswert am 20.08.: 1, 2, 4, 5 sind bereits grün — sie sind Schutzgeländer, nicht die Arbeit. Nur Kriterium 3 ist offen. Wer 3 erfüllt und dabei 1/2/4/5 kaputtmacht, hat versagt.
| # | Prüfung | Befehl | Ausgangswert |
|---|---|---|---|
| 1 | Lint sauber | cd ~/projekte/mc2-referenz && ~/.venv-lint/bin/ruff check . |
✅ All checks passed |
| 2 | Backend lädt | cd ~/projekte/mc2-referenz/backend && ~/mission-control-v2/backend/.venv/bin/python -c "import app" |
✅ ok |
| 3 | keine mem0-Reste | cd ~/projekte/mc2-referenz && grep -ril mem0 backend/ mcp/ deploy/ --include='*.py' --include='*.sh' | wc -l |
❌ 17 → muss 0 werden |
| 4 | Selbsttest grün | bash ~/mission-control-v2/deploy/self-smoke.sh |
✅ grün |
| 5 | MC2 gesund | curl -s localhost:9001/api/health |
✅ "status":"ok" |
Treffer in docs/ sind erlaubt — das ist Historie und darf stehenbleiben.
Randbedingungen
- Nicht pushen. Der Zweig bleibt lokal, damit der Lauf wiederholbar ist.
- Nichts außerhalb des Worktrees anfassen — kein
/etc, keine systemd-Dienste, kein Neustart. - Wenn ein Kriterium nicht erfüllbar ist: ehrlich sagen und aufhören. Ein klares „Kriterium 3 scheitert an X" ist wertvoller als ein beschönigter Abschluss.
Zurücksetzen zwischen den Läufen
cd ~/mission-control-v2
git worktree remove --force ~/projekte/mc2-referenz
git branch -D referenz/mem0-ausbau
git worktree add -b referenz/mem0-ausbau ~/projekte/mc2-referenz main
Messprotokoll
| Lauf | Modell in der coder-Rolle |
Fertig? | Wanduhr | Züge | Bemerkung |
|---|---|---|---|---|---|
| A | Qwen3.8-27B (dicht, 12,6 t/s) — Ausgangswert | ||||
| B | Qwen3.8-27B + DFlash-2 | ||||
| C | Qwen3.6-35B-A3B (fast, 95,7 t/s) |