Uebergabe S1: Wissens-Heimat docs/wissen/ + Gemini-Briefing + Monats-Review-Wrapper ins Repo

- docs/wissen/: kuratierte Projekt-Wahrheit fuer alle Agenten (Zielbild, Arbeitsweise,
  Stack live-verifiziert 10.07., Verdikte, Betriebs-Fallen, offene Faeden)
- docs/GEMINI_BRIEFING.md: Notfall+Review-Briefing (baut auf ANTIGRAVITY_REVIEW auf)
- RUNBOOK: Seite "Wann Gemini rufen" + Automatik-Fahrplan/Werkstatt/sudo aktualisiert
- deploy/radar-selbstkritik-wrapper.sh: lag NUR auf der Box (Monats-Review-Cron),
  jetzt versioniert + deploy.sh kopiert ihn
- docs/memory/-Altkopien mit Veraltet-Banner auf docs/wissen/ verwiesen

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-10 12:13:05 +02:00
parent ae523a171b
commit 2d32d21742
15 changed files with 702 additions and 10 deletions
+3 -1
View File
@@ -76,6 +76,8 @@ mkdir -p "$HOME/.hermes/scripts"
cp "$SRC/deploy/radar-feed.sh" "$HOME/.hermes/scripts/radar-feed.sh" cp "$SRC/deploy/radar-feed.sh" "$HOME/.hermes/scripts/radar-feed.sh"
# Selbstkritik-Cron (Faden 11b): Zwilling des Radars, Blick nach INNEN (Latenzen/Journal/Skills). # Selbstkritik-Cron (Faden 11b): Zwilling des Radars, Blick nach INNEN (Latenzen/Journal/Skills).
cp "$SRC/deploy/selbstkritik-feed.sh" "$HOME/.hermes/scripts/selbstkritik-feed.sh" cp "$SRC/deploy/selbstkritik-feed.sh" "$HOME/.hermes/scripts/selbstkritik-feed.sh"
# Monats-Review-Wrapper (Cron 1. d. M. 09:00): Radar + Selbstkritik in EINEM Lauf.
cp "$SRC/deploy/radar-selbstkritik-wrapper.sh" "$HOME/.hermes/scripts/radar-selbstkritik-wrapper.sh"
# Traum-Cron (Dreaming, Phase 2): Blick auf das GELERNTE → Wissens-Vault. Bootstrappt ~/wissens-vault. # Traum-Cron (Dreaming, Phase 2): Blick auf das GELERNTE → Wissens-Vault. Bootstrappt ~/wissens-vault.
cp "$SRC/deploy/dreaming-feed.sh" "$HOME/.hermes/scripts/dreaming-feed.sh" cp "$SRC/deploy/dreaming-feed.sh" "$HOME/.hermes/scripts/dreaming-feed.sh"
# Fremdblick-Helfer: Ein-Schuss-Zweitmeinung von einem anderen Modell (umgeht 64K-Delegations-Floor). # Fremdblick-Helfer: Ein-Schuss-Zweitmeinung von einem anderen Modell (umgeht 64K-Delegations-Floor).
@@ -87,7 +89,7 @@ cp "$SRC/deploy/chef-gutachter-feed.sh" "$HOME/.hermes/scripts/chef-gutachter-fe
# Release-Radar-Cron (10.07.2026): hält neue hermes-agent-Releases wöchentlich gegen die # Release-Radar-Cron (10.07.2026): hält neue hermes-agent-Releases wöchentlich gegen die
# Eigenbau-Landkarte im Wissens-Vault ("mehr Hermes nativ, weniger Eigenkreationen"). # Eigenbau-Landkarte im Wissens-Vault ("mehr Hermes nativ, weniger Eigenkreationen").
cp "$SRC/deploy/hermes-release-radar-feed.sh" "$HOME/.hermes/scripts/hermes-release-radar-feed.sh" cp "$SRC/deploy/hermes-release-radar-feed.sh" "$HOME/.hermes/scripts/hermes-release-radar-feed.sh"
chmod +x "$HOME/.hermes/scripts/fremdblick.sh" "$HOME/.hermes/scripts/dreaming-feed.sh" "$HOME/.hermes/scripts/worker.sh" "$HOME/.hermes/scripts/chef-gutachter-feed.sh" "$HOME/.hermes/scripts/hermes-release-radar-feed.sh" chmod +x "$HOME/.hermes/scripts/fremdblick.sh" "$HOME/.hermes/scripts/dreaming-feed.sh" "$HOME/.hermes/scripts/worker.sh" "$HOME/.hermes/scripts/chef-gutachter-feed.sh" "$HOME/.hermes/scripts/hermes-release-radar-feed.sh" "$HOME/.hermes/scripts/radar-selbstkritik-wrapper.sh"
# Werkstatt-Skill (Autonomie E6): Selbstwartungs-Kreislauf für Hermes. # Werkstatt-Skill (Autonomie E6): Selbstwartungs-Kreislauf für Hermes.
mkdir -p "$HOME/.hermes/skills/wartung" mkdir -p "$HOME/.hermes/skills/wartung"
cp "$SRC/deploy/skills/wartung/SKILL.md" "$HOME/.hermes/skills/wartung/SKILL.md" cp "$SRC/deploy/skills/wartung/SKILL.md" "$HOME/.hermes/skills/wartung/SKILL.md"
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Wrapper: Evolution-Radar + Selbstkritik zusammen
# Wird vom Hermes-Cron "Monats-Review" (1. des Monats, 09:00) als --script referenziert.
# Ins Repo geholt 10.07.2026 (Übergabe S1) — lag vorher NUR auf der Box.
set -uo pipefail
echo "=============================="
echo "## EVOLUTION-RADAR"
echo "=============================="
"$HOME/.hermes/scripts/radar-feed.sh"
echo
echo "=============================="
echo "## SELBSTKRITIK"
echo "=============================="
"$HOME/.hermes/scripts/selbstkritik-feed.sh"
+84
View File
@@ -0,0 +1,84 @@
# GEMINI-BRIEFING — Notfall- & Review-Partner für dieses System
_Für: Gemini via Google Antigravity (F:\-Checkout dieses Repos). Geschrieben 10.07.2026
in der Übergabe-Session, als das Claude-Abo auslief. Du bist der externe Zweit-Blick —
lies das hier KOMPLETT, bevor du irgendetwas empfiehlst oder änderst._
## Deine Rolle (User-Entscheid, bewusst eng)
**Notfall + Außen-Review. KEIN Großbau-Partner.**
Den Alltag (Features bauen, Wartung, Ideen umsetzen) macht die Box selbst über ihre
Queue→Karte→Klick-Pipeline. Du wirst gerufen, wenn:
1. **Notfall** — etwas ist kaputt und die Box kann sich nicht selbst heilen.
2. **Außen-Review** — ein Fremd-Blick auf Code/Architektur ist gewünscht
(das hast du am 05.07.2026 schon einmal sehr gut gemacht: 0 halluzinierte Funde).
Der User ist **kein Entwickler** (GUI-first, Terminal = Fremdkörper, Deutsch). Er kann dir
keine technischen Rückfragen beantworten — formuliere Optionen so, dass er mit
Ja/Nein/Klick entscheiden kann. Details: `docs/wissen/ARBEITSWEISE.md`.
## Pflicht-Lektüre in dieser Reihenfolge
1. `AGENTS.md` — verbindliche Projekt-Regeln (dist committen, Deploy-Weg, Deutsch-Regel …).
2. `docs/wissen/` — die kuratierte Projekt-Wahrheit:
[ZIELBILD](wissen/ZIELBILD.md) · [ARBEITSWEISE](wissen/ARBEITSWEISE.md) ·
[STACK](wissen/STACK.md) · [VERDIKTE](wissen/VERDIKTE.md) ·
[FALLEN](wissen/FALLEN.md) · [OFFENE-FAEDEN](wissen/OFFENE-FAEDEN.md).
3. Für Reviews zusätzlich: `docs/ANTIGRAVITY_REVIEW.md` (dein Review-Prompt) und
`SAVEPOINT.md` (Snapshot vom 05.07. — bei Widerspruch gewinnt `docs/wissen/STACK.md`).
## Was das System ist (ein Absatz)
Eine 100 % lokale KI-Appliance („die Box", AMD Strix Halo, 128 GB) mit llama.cpp-Vulkan +
llama-swap als Engine, Hermes-Agent als Runtime (Persona „Lucy"), MC2 (dieses Repo: FastAPI
+ React) als Web-Admin-Konsole, Mem0 als Gedächtnis, und einer Electron-Voice-Begleiterin
„Lucy" auf dem Windows-PC (EIGENES Repo `F:\Coding Stuff\lucy`). Die Box wartet sich selbst
(nächtliche Crons: Traum, Chef-Gutachter, Radar; Backups in 3 Schichten; Auftragsbuch mit
Ein-Klick-Annahme). Der Mensch ist das Gate für jede Code-Zeile.
## Harte Leitplanken (nicht verhandelbar)
- **Verdikte nicht neu aufrollen** ohne Messung/neuen Anlass — `docs/wissen/VERDIKTE.md`.
Insbesondere: keine Cloud, kein Rewrite, keine schweren Frameworks, kein Engine-Wechsel
ohne Bench, Hermes-Quellcode nie forken.
- **Security-Config (approvals/Tokens/ufw/sudoers) nur MELDEN, nie ändern.**
- **`frontend/dist` ist ABSICHT im Git** (Box hat kein Node) — kein Fehler.
- **Propose-only:** Änderungen als Branch/Diff vorschlagen; Merge+Deploy läuft über das
Auftragsbuch (User-Klick) oder ein explizites User-Ja.
- **Verifizieren vor Behaupten:** Behauptungen über Live-Verhalten nur nach echter Messung
auf der Box. Am 07.07. hat ein Gemini-Umbau Lucys STT still von Box-Parakeet auf
einkernigen PC-Whisper umgestellt und das Gegenteil behauptet — die Messung entlarvte es.
Das darf nicht wieder passieren: sag ehrlich, was du getestet hast und was nicht.
- Alles User-Sichtbare auf **Deutsch**.
## Notfall-Playbook (wenn du als Feuerwehr gerufen wirst)
1. **Erst Zustand lesen, nichts anfassen:**
`ssh hitonabi@192.168.178.151` · `curl -s http://127.0.0.1:9001/api/health` ·
`export XDG_RUNTIME_DIR=/run/user/$(id -u); systemctl --user status` ·
`journalctl --user -u <dienst> -n 100`. Alle IPs/Ports/Dienste: `docs/wissen/STACK.md`.
2. **Die Box hat Selbstheilungs-Netze — nutze sie, bevor du selbst baust:**
Zeitmaschine/Restore (`bash deploy/restore.sh --list`), Pin-Register
(`/srv/models/mc2-pins.json`), PBS-Backups, `docs/RUNBOOK.md` (Mensch-Anleitung),
`docs/DISASTER_RECOVERY.md` (Bare-Metal).
3. **Bekannte Stolperfallen zuerst prüfen** (`docs/wissen/FALLEN.md`): deploy.sh-Selbst-Reset,
leeres Warm-Set nach Config-Reload, XDG_RUNTIME_DIR, CRLF, stale index.lock, 64k-Floor.
4. Fix als kleinsten reversiblen Eingriff; vorher Backup (`bash deploy/backup.sh`);
danach `/api/health` + betroffene Funktion LIVE verifizieren; dem User in 2 Sätzen
auf Deutsch sagen, was war und was du getan hast.
## Review-Playbook
`docs/ANTIGRAVITY_REVIEW.md` als Prompt verwenden (P0P3, „was NICHT ändern", Deutsch).
`.aiexclude` hält venv/node_modules/dist aus dem Kontext. Befunde mit `datei:zeile` +
konkretem Fehlszenario; bewusste Entscheidungen (dist im Git, flache JSON-Stores,
sync-Subprozesse, User-Units statt sudo) NICHT als Fehler werten.
## Wo du NICHT ran sollst
- `~/.hermes/config.yaml`-Security-Keys, ufw, sudoers, Tokens (nur melden).
- Lucys Voice-Lane-Diät (`platform_toolsets.api_server`) und das Warm-Set/brains —
Lucys ~1-s-Sprech-Latenz ist heilig.
- llama-swap-Neustarts ohne Not (Warm-Set weg = Lucy stumm/langsam).
- Der Wissens-Vault (`~/wissens-vault/`) gehört Lucys Lernkreislauf — lesen ja, umbauen nein.
+27 -9
View File
@@ -11,7 +11,7 @@ höchstens „mach". Dieses Blatt ist NUR für den Fall, dass etwas klemmt.
| „… zurückgerollt … GEPINNT" | Update war schlecht, alte Version läuft wieder | keiner (läuft stabil weiter) | | „… zurückgerollt … GEPINNT" | Update war schlecht, alte Version läuft wieder | keiner (läuft stabil weiter) |
| „KRITISCH: …" | Update UND Rollback kaputt | siehe „Box tot?" unten | | „KRITISCH: …" | Update UND Rollback kaputt | siehe „Box tot?" unten |
| „🛰️ Evolution-Radar …" | monatlicher Chancen-Report | lesen; bei Interesse „mach" antworten | | „🛰️ Evolution-Radar …" | monatlicher Chancen-Report | lesen; bei Interesse „mach" antworten |
| „[Werkstatt] … merge oder verwerfen?" | Box hat einen Fix vorbereitet | mit „merge" oder „verwerfen" antworten | | „[Werkstatt] … Vorschlag liegt bereit" | Box hat einen Fix vorbereitet | im Web-UI → **Auftragsbuch** → Karte ansehen → „Annehmen" oder „Ablehnen" klicken |
## Box tot / Weboberfläche weg? ## Box tot / Weboberfläche weg?
@@ -30,8 +30,11 @@ höchstens „mach". Dieses Blatt ist NUR für den Fall, dass etwas klemmt.
## Automatik-Fahrplan (läuft ohne dich) ## Automatik-Fahrplan (läuft ohne dich)
- **Täglich 03:30** Backup · **So 04:30** Auto-Update (Router→Engine→Hermes) mit Rollback+Pin - **Nachts:** 03:15 Traum (Wissens-Vault) · 03:30 Backup · 03:50 PBS-Backup ·
- **Monatlich 1., 09:00** Evolution-Radar-Report auf Telegram 04:30 Chef-Gutachter (Morgenlage) · 07:15 Selbsttest · 08:00 Daily-Briefing
- **Mo 05:15** Release-Radar (Hermes-Neuerungen) · **Monatlich 1., 09:00** Monats-Review
(Evolution-Radar + Selbstkritik) auf Telegram
- Auto-Update ist BEWUSST AUS (dein Entscheid 04.07.) — Updates kommen als Vorschlag/Knopf
## Pinnwand: eine Ebene ist „GEPINNT" — was heißt das? ## Pinnwand: eine Ebene ist „GEPINNT" — was heißt das?
@@ -42,14 +45,29 @@ ein STABILER Dauerzustand, kein Fehler. Pin ansehen / lösen (per SSH):
jq 'del(.hermes)' /srv/models/mc2-pins.json > /tmp/p && mv /tmp/p /srv/models/mc2-pins.json jq 'del(.hermes)' /srv/models/mc2-pins.json > /tmp/p && mv /tmp/p /srv/models/mc2-pins.json
# (statt .hermes: .engine oder .swap) — nächster So-Lauf versucht das Update erneut # (statt .hermes: .engine oder .swap) — nächster So-Lauf versucht das Update erneut
## Einmalige sudo-Session (steht noch aus — schaltet Engine/Router-Auto-Update frei) ## Wann Gemini rufen (der Notfall- und Review-Partner)
ssh hitonabi@192.168.178.151 Seit dem Claude-Abo-Ende ist **Gemini (in der Antigravity-App am PC)** dein externer Helfer.
sudo install -m 0440 -o root -g root ~/mission-control-v2/deploy/sudoers-mc2-autonomie /etc/sudoers.d/mc2-autonomie && sudo visudo -c Du brauchst ihn NUR in zwei Fällen — den Alltag macht die Box selbst:
sudo apt-get install -y unattended-upgrades && sudo dpkg-reconfigure -plow unattended-upgrades
sudo systemctl disable --now mission-control.service # alte v1-Leiche entfernen
Bis dahin meldet der So-Lauf Engine/Router-Updates nur („wartet — sudo-Freischaltung fehlt"). 1. **Notfall:** Die Box ist kaputt UND die Schritte unter „Box tot?" (oben) haben nicht
geholfen — oder Lucy/Telegram melden wiederholt „KRITISCH".
2. **Außen-Review:** Du willst einen Fremd-Blick auf die Arbeit der Box (z. B. alle paar
Monate oder vor einem großen Umbau).
**So rufst du ihn:** Antigravity öffnen → Projektordner `F:\Coding Stuff\mission-control-2`
→ als erste Nachricht schreiben: **„Lies docs/GEMINI_BRIEFING.md und dann [dein Problem]."**
Für ein Review stattdessen: „Lies docs/GEMINI_BRIEFING.md und führe das Review aus
docs/ANTIGRAVITY_REVIEW.md durch."
**Grenzen (stehen auch in seinem Briefing):** Gemini schlägt vor, DU klickst/entscheidest.
Er darf Security-Sachen nur melden, nie ändern. Wenn er etwas über die Box behauptet,
darf er es nur nach echtem Test behaupten — im Zweifel nachfragen „hast du das gemessen?".
## Einmalige sudo-Session — ✅ erledigt (02.07.2026)
Sudo-Freischaltung für Engine/Router-Updates, unattended-upgrades und v1-Aufräumen sind
durch (`/etc/sudoers.d/mc2-autonomie` liegt). Nichts mehr zu tun.
## Nützliche Handgriffe (SSH) ## Nützliche Handgriffe (SSH)
+4
View File
@@ -1,3 +1,7 @@
> ⚠️ **TEILS VERALTET (Juni 2026, Archiv).** Aktueller Hermes-Stand (v0.18.2, delegation,
> Toolset-Diät, Desktop): [docs/wissen/STACK.md](../wissen/STACK.md) +
> [docs/wissen/FALLEN.md](../wissen/FALLEN.md). Der Zwei-Ebenen-Toolset-Gotcha hier gilt weiter.
--- ---
name: project-hermes-setup name: project-hermes-setup
description: "Hermes Agent — vollständige Verdrahtung, MCP-Server, Telegram, PC-Executor (Stand 2026-06-27)" description: "Hermes Agent — vollständige Verdrahtung, MCP-Server, Telegram, PC-Executor (Stand 2026-06-27)"
+4
View File
@@ -1,3 +1,7 @@
> ⚠️ **TEILS VERALTET (Juni 2026, Archiv).** Aktuelle Dienste/Ports/Modelle:
> [docs/wissen/STACK.md](../wissen/STACK.md) · Fallen: [docs/wissen/FALLEN.md](../wissen/FALLEN.md).
> Die Schichten-/Key-File-Übersicht hier stimmt im Kern noch.
--- ---
name: project-mc2-architecture name: project-mc2-architecture
description: "MC2 Architektur — Schichten, Key-Files, API-Endpunkte, wichtige Eigenheiten" description: "MC2 Architektur — Schichten, Key-Files, API-Endpunkte, wichtige Eigenheiten"
+3
View File
@@ -1,3 +1,6 @@
> ⚠️ **VERALTET (Stand 27.06.2026, Archiv).** Die einzige gepflegte Liste offener Punkte ist
> [docs/wissen/OFFENE-FAEDEN.md](../wissen/OFFENE-FAEDEN.md).
--- ---
name: project-pending-tasks name: project-pending-tasks
description: Offene Tasks und bekannte Baustellen im MC2-Projekt (Stand 2026-06-27) description: Offene Tasks und bekannte Baustellen im MC2-Projekt (Stand 2026-06-27)
+3
View File
@@ -1,3 +1,6 @@
> ⚠️ **VERALTET (Stand 27.06.2026, Archiv).** Die aktuelle, live-verifizierte Wahrheit
> steht in [docs/wissen/STACK.md](../wissen/STACK.md). Diese Datei nur noch als Historie lesen.
--- ---
name: project-stack-state name: project-stack-state
description: "Aktueller Stand des MC2-Projekts — Infrastruktur, Modelle, Dienste, Git-State (Stand 2026-06-27)" description: "Aktueller Stand des MC2-Projekts — Infrastruktur, Modelle, Dienste, Git-State (Stand 2026-06-27)"
+61
View File
@@ -0,0 +1,61 @@
# Arbeitsweise — wer der User ist und wie hier gearbeitet wird
_Kuratiert 10.07.2026. Gilt für JEDEN Agenten, der an diesem System arbeitet
(Box-Hermes, Hermes Desktop, Gemini/Antigravity, künftige)._
## Der User (Hitonabi / „Commander")
- **Kein Software-Entwickler.** Selbstbild: „ich mache keine Updates". Er fasst keine
Konsole an und drückt keine Update-Knöpfe — alles muss ohne ihn funktionieren oder
per Knopf/Lucy/Telegram bedienbar sein.
- **GUI-first / „klicki bunti":** visuelle, klickbare Oberflächen sind sein Geschmack;
Terminal-Lösungen sind Fremdkörper. Sein Referenz-Erlebnis ist der
Antigravity-Agent-Manager-Stil: Aufträge verteilen, Agenten zuschauen, Diffs abnicken.
- **Produkt-Instinkt ernst nehmen:** seine „naiven" Fragen treffen oft den Kern
(Marketing-Filter → Fan-out-Kritiker; „alles autonom" → Appliance-Prinzip;
„Update verpassen?" → Radar). Vorschläge ernsthaft prüfen, nie abtun.
- Sprache: **Deutsch**, locker, direkt. Lucy nennt ihn „Commander".
- **Nordstern (wörtlich):** „Das komplette System muss AUTONOM funktionieren — in 6 Monaten
ohne Claude darf nichts brachliegen." Robustheit/Autonomie schlägt Features.
## Die nicht verhandelbaren Regeln
1. **Verifizieren vor Behaupten.** Vor jeder Aussage/Änderung auf der Box messen
(SSH, Logs, curl, bench) statt aus Doku/Memory/Web zu schließen. Der Agenten-Erzählung
(auch der eigenen) nie glauben — Transcripts, worker.log, git-Status sind Beweise.
Mehrere erste Befunde kippten erst bei sauberer Gegenprobe.
2. **Scope challengen.** Ein Tool-/Technik-Vorschlag (auch vom User) ist kein
Umsetzungsbefehl: erst Use-Case klären, bei erkennbarer Fehlannahme kurz stoppen und
warnen. Lehrbuch-Best-Practice ≠ unser Use-Case (Beispiele: LobeChat, Tool Search).
3. **Propose-only + Mensch-Gate.** Jede Code-Zeile ist Klick-pflichtig (Auftragsbuch-Karte).
Merge/Deploy NIE ohne grünes Gate. Bagatell-Klassen ohne Klick sind ausschließlich:
Doku/Wiki/Vault/Chronik/tote Dateien — nichts mit Code-Logik, immer Morgenlage-Bericht.
4. **Security-Config NIE ohne explizites User-Ja** (approvals, Tokens, ufw, sudoers,
command_allowlist). Direkt-Push auf main braucht ebenfalls ein explizites Ja.
5. **Fremd-Modell-Kritiker als Korrektiv.** Wer baut, benotet nicht selbst.
Zwei-Kritiker-Gate (Coder-Next + GLM), Urteil nach der Regel
**REPRODUZIERT-ODER-ABGELEHNT** — Freispruch nur mit belegtem Vorher/Nachher.
6. **Hermes-first vor Eigenbau.** Vor jedem Neubau prüfen, ob Hermes es nativ kann
(Eigenbau-Landkarte im Vault → `hermes --help`); Befund in den Vorschlag schreiben.
Hermes-Quellcode wird NIE gepatcht/geforkt.
7. **Alles reversibel:** Branch + Backup + Zeitmaschine + Pin-Register. Nichts bauen,
was Lucys ~1-s-Sprech-Latenz oder das Warm-Set gefährdet.
8. **Deutsch für alles User-Sichtbare** (Meldungen, Skills, Summaries, Karten).
Erste Zeile von Meldungen idealerweise: „Musst du etwas tun? NEIN/JA: …"
## Rollen-Abgrenzung der Türen
- **Lucy (Electron-App)** = Zuruf, Voice, Begleitung — schlanke api_server-Lane, nicht mästen.
- **Hermes Desktop** = Arbeit: Projekte, Coding, Review, lange Threads (cli-Lane).
Faustregel: „Repo oder >2 Minuten → Desktop".
- **Telegram** = mobil + Melde-/Freigabe-Kanal (Alarmkette, Cron-Delivery).
- **MC2-Web-UI** = Verwaltung, Auftragsbuch (Karten-Klicks), Chronik/Zeitmaschine, Wissen.
- **Gemini/Antigravity** = Notfall + Außen-Review, siehe [GEMINI_BRIEFING](../GEMINI_BRIEFING.md).
## Wissens-Orte
- `docs/wissen/` (dieses Verzeichnis) = kuratierte Projekt-Wahrheit für alle Agenten.
- `AGENTS.md` (beide Repos) = verbindliche Bau-Regeln je Repo (lesen Zed/Kilo/Hermes nativ).
- `~/wissens-vault/` = Lucys Lernschicht (Träume, Radar, Eigenbau-Landkarte) — git-versioniert,
im MC2-UI als Wissens-Tab.
- Mem0 (`:8765`) = das LIVE-Gedächtnis (auto-lernend, semantisch) — kein Ablageort für Doku.
+121
View File
@@ -0,0 +1,121 @@
# Betriebs-Fallen — hart erarbeitet, nicht nochmal reintreten
_Kuratiert 10.07.2026. Jede Falle hat hier mindestens einmal real Zeit gekostet.
Neue Fallen: hier eintragen, mit Datum und Symptom._
## Git & Deploy
- **deploy.sh resettet sich SELBST mitten im Lauf.** Es macht früh `git reset --hard
origin/main`; bash liest aber aus dem alten File-Descriptor weiter → neue Install-Schritte
(z. B. neue `cp`-Zeilen) greifen beim ERSTEN Deploy nach der Änderung NICHT.
→ deploy.sh ein ZWEITES Mal laufen lassen oder Artefakte von Hand nachinstallieren.
Danach IMMER verifizieren, dass die neuen Dateien/Units wirklich da sind.
- **deploy.sh-enable-Zeilen können User-Entscheide zurückdrehen.** Beispiel mc2-autoupdate:
„einmalig deaktiviert" wurde von jedem Deploy still re-enabled, bis die Zeile raus war.
Bei Entscheiden der Form „X bleibt aus" immer deploy.sh gegenprüfen.
- **Paralleler Git-Zugriff auf den Shared-Checkout:** Mehrere Agenten/Sessions arbeiten
zeitweise im selben `F:\`-Verzeichnis — HEAD kann unter einem wandern, uncommittete Edits
verschwinden. → Änderungen sofort committen; zum Landen auf main einen ISOLIERTEN Worktree
nutzen: `git worktree add --detach <tmp> origin/main` → cherry-pick → rebase →
`git push origin HEAD:main` → Worktree weg.
- **Gitea-Push:** nur via PowerShell/GCM (Bash-Tool scheitert an der Credential-Auth);
„Failed to authenticate user" heißt oft nur „3 s warten, Retry" — Auth ist flatterhaft.
Wenn der nicht-interaktive Push hart scheitert: User pusht EINMAL interaktiv, danach geht's.
- **CRLF:** Box-git hat `core.autocrlf false` + `.gitattributes` erzwingt LF für
`*.sh/*.service/*.timer` — sonst `pipefail\r`-Abbrüche. Windows-Pipe auf die Box:
CR-Falle (`sed 's/\r$//'`).
- **Stale `index.lock`** im Box-Repo nach Deploy-Abbruch: Alter prüfen, dann löschen.
- **`hermes` ist über SSH nicht im PATH** → immer `bash -lc 'hermes …'`.
## Box / systemd / llama-swap
- **User-Units über SSH:** erst `export XDG_RUNTIME_DIR=/run/user/$(id -u)`, sonst sieht
`systemctl --user` nichts.
- **llama-swap:** Schutz-Key heißt **`persistent:`** — `persist:` wird still ignoriert
(dieser Tippfehler hat wochenlang den Verdrängungsschutz deaktiviert). `persistent`
schützt NUR gegen Verdrängung, NICHT gegen ttl-Selbstentladen → **jedes brains-Mitglied
braucht ttl:0.** Nach jedem Config-Reload (auch scp!) ist das Warm-Set LEER → Mini-Requests
an hermes/embed(/reranker) schicken.
- **`warmup.sh` liegt als Root-Kopie** unter `/usr/local/bin/llama-swap-warmup.sh` und wird
vom sudo-freien deploy.sh NICHT aktualisiert → nach Änderung manuell `sudo install`.
- **llama-swap NIE neustarten**, wenn es nicht sein muss (Warm-Set weg = Lucy-Latenz).
- **Nie zwei ~70-GB-Benches direkt nacheinander** (OOM-Kill beim zweiten).
- **Box ist deutschsprachig (de_DE):** jeder CLI-Output-Parser braucht `LC_ALL=C`
(apt sagt sonst „aktualisierbar von:" statt „upgradable from:").
- **`pkill -f` über SSH matcht die eigene Remote-Shell** → Muster als `'[g]en…'` klammern.
- **Deploy restartet voice-service** → Übernacht-Jobs mit STT-QA-Gate brauchen
Wiederanlauf-Logik (Backoff-Retry im hear()-Pfad).
## Hermes
- **Toolsets haben ZWEI Ebenen:** aktiv = NICHT in `agent.disabled_toolsets` UND in
`platform_toolsets.<platform>`. api_server (Voice) hat eine bewusste Diät-Allowlist;
MCP-Server sind namentlich allowlistbar (Key `mcp_servers`, snake_case).
`hermes prompt-size` ist Allowlist-BLIND — echte Kontrolle nur per Live-Call.
- **`MINIMUM_CONTEXT_LENGTH = 64000`:** Modelle mit kleinerem Kontext (heavy 32k, vision 32k)
sind als delegate_task-Ziel tot — der Fehler kann STILL ausfallen. Fremd-Kritik deshalb via
fremdblick.sh (Ein-Schuss), nie via Delegation.
- **delegate_task läuft top-level IMMER background** → in `hermes -z`/Cron-Ein-Schuss stirbt
das Kind mit dem Prozess. Nur langlebige Sessions (Chat/Desktop/Telegram) profitieren.
- **Cron-Fallen:** kein TZ-Feld (next_run_at = System-TZ zum Anlege-Zeitpunkt; nach
TZ-Wechsel `cron edit --schedule "<gleich>"` zum Neuberechnen) · Prompt/Positionsargumente
MÜSSEN vor die Flags · `--script` allein reicht nicht (braucht Prompt oder Skill) ·
Cron-Kontext hat `HERMES_CRON_SESSION=1` und `approvals.cron_mode: deny`.
- **Feed-Skripte: Pipe + Heredoc gleichzeitig = Heredoc gewinnt stdin** → JSON via Temp-Datei
übergeben. Außerdem ehrlichen Blind-Pfad einbauen (API kaputt → „AUSGEFALLEN", nicht „0 Funde").
- **Hooks:** Consent persistiert NUR über CLI-/Gateway-Start mit `HERMES_ACCEPT_HOOKS=1`;
`hermes hooks test` schreibt die Allowlist NICHT; Skript-Änderung invalidiert Consent (mtime).
- **GLM-Modelle sind Reasoning-Modelle:** content kommt NACH reasoning_content →
max_tokens großzügig (fremdblick: FREMDBLICK_MAXTOK bis 4500), sonst leeres Urteil.
- **Manager-Konfabulation:** Das Hirn überspringt Delegation gern „aus Bequemlichkeit" mit
erfundener Begründung („worker.sh existiert nicht"). Gegenmittel: worker.log als harter
Nachweis + Skill-Regel „du baust NICHT selbst" + Transcript prüfen, nie der Erzählung glauben.
- **Kritiker == Worker = blinder Fleck** („benotet eigene Hausaufgaben") → Zwei-Kritiker-Gate,
Urteil REPRODUZIERT-ODER-ABGELEHNT.
- **stage-vor-Diff:** untracked Dateien → `git diff origin/main` leer → Kritiker prüfen NICHTS.
Erst `git add -A`, dann `git diff --cached`, „Diff leer → STOPP".
- **Werkstatt-Gate:** `git -C ~/mission-control-v2 status --porcelain -uno` MUSS leer sein
(curl /api/health allein ist ein Loch — alter Code läuft im RAM weiter).
## Mem0 / Gedächtnis
- `mem0_service/requirements.txt` ist GEPINNT (wir nutzen Interna: NoThink-Swap, Roh-Chroma) —
blindes Upgrade bricht still; vorher/nachher `smoke_test.py`, Prozedur `docs/UPGRADE.md`.
- Qwen3.6 ist ein Thinking-Modell: JSON-Extraktion nur mit `enable_thinking:false`
(NoThinkLLM im Sidecar), sonst leere Extraktion.
- **Delete-Resurrection:** gelöschter Fakt kann beim nächsten learn() wieder auftauchen,
solange die Original-Nachricht in history.db liegt (mem0-Design, kein Bug).
- `sync_turn` läuft im Hintergrund → in kurzlebigen Prozessen (`hermes -z`) verpufft das
Lernen; nur langlebige Sessions lernen zuverlässig.
- Frontend: `reagraph` auf 4.22.0 gepinnt (4.23+ zieht React 19 → Crash).
## Lucy / Windows-PC
- **file://-Fallen im Electron-Build:** Asset-Pfade relativ; `import()` verzeiht KEINE
relativen Prefixe (onnxruntime-WASM brauchte `new URL("vad/", document.baseURI)`) —
fetch täuscht, import() nicht.
- **Lucy IMMER über `Lucy-Neustart.bat` neu starten** — hartes Kill hinterlässt
pocket_server-Waisen auf :8130 („Stimme startet nicht"); die BATs killen Waisen mit.
- `LUCY_WORKERS=2` (User-Env) — 4 Worker = ~4×1,9 GB Stimm-Modell-Kopien.
- Gerade `"` in config.ts-Prompt-Strings zerschießen den String → immer „…" nutzen.
- Zustands-Features IMMER mit sichtbarem Zustand + Sofort-Feedback bauen — der User testet
blind per Produkt-Gefühl.
- **Executor-Task** `HermesPCExecutor` läuft aus dem Repo mit pythonw → nach
executor.py-Änderung Task neu starten; Logs in `%LOCALAPPDATA%\HermesPCExecutor\`.
- **MSIX-Sandbox-Falle (Claude-Desktop-Tools):** Tools der Claude-App laufen im
MSIX-Container — Writes nach `AppData\Local\<app>` landen in
`AppData\Local\Packages\Claude_*\LocalCache\` (Merge-Read täuscht!). Windows-Apps NIE über
Agent-Tools nach AppData installieren/verwalten; Installer startet der USER per Doppelklick.
Die Packages-Kopie ist KEINE Dublette, sondern die virtualisierte echte Install.
- **Hermes Desktop:** NIE „Update / Repair install" klicken (pullt main, desynchronisiert
das Runtime-Repo → Boot-Fehler). Bei „tot": `git status -uno` im Runtime-Repo; Fehler
stehen in `logs/bootstrap-*.log`, nicht in desktop.log.
## Colab / Training (Mini-Stimme)
- Live-Drive-Sync JE Epoche einbauen (Session-Tod frisst sonst das Training).
- Notebook-Zellen vor Abgabe ast-prüfen; Colab-Patches nie durch Shell-Heredocs.
- **QA-Gate für synthetische Datensätze:** jeden Clip durch STT-Roundtrip — der ungeprüfte
XTTS-Datensatz war komplett unbrauchbar (sogar whisper-medium verstand ihn falsch).
- Kokoro-Output peakt >1.0 → Peak-Normalisierung 0.95 + Onset-Trim/Fade-In gehören in
JEDE künftige KokoroTtsEngine.
+71
View File
@@ -0,0 +1,71 @@
# Offene Fäden — DIE eine Liste
_Stand 10.07.2026 (Übergabe-Session S1). Regel: Neues hier rein, Erledigtes hier raus,
keine zweite Liste anlegen. Verdikte werden NICHT als „offen" geführt → [VERDIKTE.md](VERDIKTE.md)._
## Termine (auch als Box-Reminder hinterlegt)
- **Mo 13.07., 05:15** — erster echter Release-Radar-Cron-Lauf → Morgenlage/Chronik prüfen.
- **20.25.07. — ROCm-Recheck** (Anlass: Ryzen-AI-Halo-Launch 06.07., ROCm 7.13 Preview).
Fragen: neue Halo-Community-Benches? llama.cpp-Issue #21284 (gfx1151-Prefill) gemerged?
kyuz0-Grid aktualisiert (kyuz0.github.io/amd-strix-halo-toolboxes)? Falls ROCm dann
Langkontext-Prefill-Bedarf trifft: NUR Hybrid für heavy/coder erwägen —
**Hirn bleibt auf Vulkan, kein Voll-Cut.**
- **hipEngine-Watch** (shisa-ai/hipEngine, natives HIP gfx1151, nur Qwen3.6, >2× Prefill):
reif genug? Dann mit `deploy/bench/brain-bench.sh` gegen Vulkan messen.
## Das Ablösungs-Paket (Kurs, siehe [ZIELBILD.md](ZIELBILD.md))
- **S2 „leg los queue":** Kanban-Probe (`auto_decompose` liegt ungenutzt in der Config) →
Queue-Entscheid nativ vs. Auftragsbuch-Ausbau → Türen verdrahten (Telegram/Desktop-Idee →
Queue) → Morgenlage meldet Queue-Stand → Bagatell-Nacht-Deploy-Pfad.
- **S3 „leg los lucy-pipeline":** PC-Annahme-Weg (Auftragsbuch-Gegenstück für Lucy:
Karte → Klick = dist-Build + Neustart am PC) bauen + E2E-Beweis. Erster echter Auftrag:
**A4-Turncheck-Auswertung** (`C:\Users\TobisPC\lucy-turncheck.log` sammelt seit 07.07.;
danach HOLD_BELOW_P justieren).
- **S4 „leg los zuendung":** Idle-Radar / Fehler→Auftrag (Traum-Funde + Journal-Muster →
Queue-Kandidaten) · Großbau-Etappen-Regeln in Skills · Generalprobe ohne Claude.
## Lucy
- **Mini-Stimme v2:** Übernacht-Datensatz v2 (DE-Tech + EN) war für 10.07. armiert;
User-Schritte: Zip → Drive → `Lucy_Stimme_Training_v2.ipynb` auf Colab T4 → Hörtest.
Danach: Lexikon-Injektion in kokoro_server + Modell-Tausch. **pocket bleibt Default,
bis v2 den Live-Test gewinnt** (Umschalter „Neue Stimme (Mini-Lucy)" in der Steuerung).
- Saber-/XTTS-Altlasten in lucy-tts/ (untracked venvs, Datasets, tote Notebooks) —
aufräumen nur mit User-Ja (v2-Pipeline ersetzt sie).
- „Lucy light"-Experiment: ungestartet, Idee geparkt.
- Frechheit-Regler Phase 3 ist LIVE; weitere Animations-Wünsche nur auf Zuruf.
- Emotions-Stimme = Zukunftsfaden (Klon-DNA ist ruhig; warten auf Qwen-instruct-Clone o. ä.).
## Box / MC2 (Kleinkram + Politur)
- **mc2-autoupdate.timer war am 10.07. wieder enabled+active** (Altlast der
deploy.sh-enable-Falle; die Zeile selbst ist seit heute raus). Disable braucht ein
User-Ja bzw. einen Klick — bis dahin läuft So 04:30 wieder ein Auto-Update-Lauf.
- D16-Reste: c) System-Logs ausbauen (alle Dienste, Fehler-Filter) · e) Mem0-Dubletten
automatisch (an Curator/Selbstkritik hängen) · f) Politur (Cockpit Zone C entflechten,
Faden 6 Voice-Sidecar-Diät: Lucy-Reste aus dem Web-UI).
- C13 Bare-Metal-Bootstrap/First-Run-Wizard (Konzept: docs/DISASTER_RECOVERY.md) ·
C14 sudo-Kleinkram (stale v1-Unit `mission-control.service`, alter :9000-Rest) ·
C15 Docs-Refresh (README, STATUS.md, CUTOVER.md, HERMES_SETUP.md).
- Tarball-Backup-Schicht nach ~2 Wochen grüner PBS-Verifys in Rente schicken (ab ~23.07.).
- Embedding-A/B-Bench (0.6B vs 4B/8B) als ruhiger Bench-Job; Discover.ROLE_METADATA hat
für neue Rollen (kritiker/reranker) nur Fallback-Texte.
- radar-feed.sh + selbstkritik-feed.sh haben keinen EIGENEN Cron mehr (laufen im
Monats-Review-Wrapper) — Aufräum-Kandidat, bewusst liegen gelassen.
- Orchestrator-Härtungs-Kandidaten (erst beobachten, ob es wieder passiert):
Schreibziel-Pflicht /tmp/orch-<slug>/ vor jedem write_file · große Artefakte nie in die
Antwort (Output-Limit-Tod).
- Selbstkritik-Cron in die Morgenlage falten (Empfehlung steht, Eingriff braucht Ja).
- pve-root-Passwort unverändert (User-Entscheid 09.07., „nur LAN") — bei Gelegenheit ändern.
## Beobachten (kein Handlungsbedarf)
- Erste Nächte des neuen Stacks weiter im Blick: Traum 03:15 / Chef-Gutachter 04:30 /
Briefing 08:00 / self-smoke 07:15 — Morgenlage lesen.
- Telegram-Hänger-Verdacht: NICHT der Prompt (gecacht) — echte Verdächtige sind kalter
Cache nach Modell-Reload oder Mem0/Session-Resume beim 1. Turn; braucht echte
Telegram-Log-Messung, falls es wieder auffällt.
- GLM-4.7-Flash tauchte 08.07. ~17:00 warm auf (irgendwas nutzte den Kritiker aktiv) —
unkritisch, nicht weiter verfolgt.
+37
View File
@@ -0,0 +1,37 @@
# docs/wissen/ — Die Wissens-Heimat für ALLE Agenten
_Angelegt 10.07.2026 (Übergabe-Session S1). Dieses Verzeichnis ist die kuratierte Übergabe
des Claude-Projektwissens ins Repo — damit Box-Hermes, Hermes Desktop, Gemini/Antigravity
und jeder künftige Agent dieselbe Wahrheit lesen._
**Warum hier:** Die Box liest `~/mission-control-v2/docs/wissen/`, Antigravity liest den
`F:\`-Checkout — versioniert, deploybar, kein Agent-privates Gedächtnis. Der Wissens-Vault
(`~/wissens-vault/`) bleibt Lucys LERNSCHICHT (Träume, Radar-Funde, Eigenbau-Landkarte);
hier liegt das kuratierte PROJEKT-Wissen.
## Die Dateien (Lese-Reihenfolge für einen frischen Agenten)
| Datei | Inhalt | Wann lesen |
|---|---|---|
| [ZIELBILD.md](ZIELBILD.md) | Richtungs-Entscheid 10.07.: Box übernimmt alles, 4-Session-Paket | Immer zuerst — das ist der Kurs |
| [ARBEITSWEISE.md](ARBEITSWEISE.md) | Wer der User ist + die nicht verhandelbaren Arbeitsregeln | Vor JEDER Arbeit |
| [STACK.md](STACK.md) | IPs, Ports, Dienste, Modelle, Backups, Security (live verifiziert) | Vor SSH/Deploy/Config |
| [VERDIKTE.md](VERDIKTE.md) | Finale Technik-Entscheide mit Warum — NICHT neu aufrollen | Bevor man etwas "Besseres" vorschlägt |
| [FALLEN.md](FALLEN.md) | Hart erarbeitete Betriebs-Fallen (Git, Deploy, llama-swap, Hermes, Mem0, PC) | Bevor man in eine davon läuft |
| [OFFENE-FAEDEN.md](OFFENE-FAEDEN.md) | Die EINE Liste offener Punkte + Termine | Bei "was ist noch zu tun?" |
Dazu im Repo-Wurzelverzeichnis bzw. docs/: `AGENTS.md` (verbindliche Projekt-Regeln),
`docs/GEMINI_BRIEFING.md` (Notfall-/Review-Briefing für Gemini), `docs/RUNBOOK.md`
(1-Seiten-Mensch-Anleitung), `docs/ANTIGRAVITY_REVIEW.md` (Review-Prompt).
## Pflege-Regeln
1. **Erledigtes raus, Neues rein** — OFFENE-FAEDEN.md ist die einzige offene Liste,
keine neuen "pending"-Dateien anlegen.
2. **Verdikte werden nur mit neuem, belegtem Anlass wieder geöffnet** (Messung, Release,
User-Entscheid) — dann in VERDIKTE.md den alten Eintrag ERSETZEN, nicht löschen.
3. **Verifizieren vor Behaupten:** Stand-Angaben tragen ein Datum; wer STACK.md ändert,
hat live auf der Box gemessen/gelesen, nicht vermutet.
4. Änderungen laufen wie alles über die Pipeline: Branch → Karte im Auftragsbuch → Klick.
Reine Doku hier gehört zu den "Bagatellen ohne Klick"-Klassen (siehe ZIELBILD.md),
erscheint aber immer in Morgenlage/Chronik.
+124
View File
@@ -0,0 +1,124 @@
# Stack-Wahrheiten — Infrastruktur, Dienste, Modelle
_Live gegen die Box verifiziert am **10.07.2026** (Dienste-Liste, llama-swap-Config, hermes
--version, /api/health). Bei Widerspruch zu älteren Docs (SAVEPOINT.md, docs/memory/) gewinnt
diese Datei. Wer sie ändert: erst messen, dann schreiben._
## Maschinen & Zugänge
| Was | Wo |
|---|---|
| **AI Box** (Bosgame M5, Ryzen AI MAX+ 395, 128 GB unified) | `hitonabi@192.168.178.151` (SSH); Zeitzone **Europe/Berlin** |
| **Windows-PC** („Tobis PC", 9070 XT) | `192.168.178.98` — PC-Executor `:7777` (Task `HermesPCExecutor`, Bearer-Token) |
| **Proxmox** | `root@192.168.178.108:8006` (PW in Keepass) — LXCs: adguard(100), npmplus(101), netbird(102), gitea(104), PBS(105) |
| **PBS** (Proxmox Backup Server) | `192.168.178.156:8007`, Datastore `qnap` |
| **QNAP TS-228A** „TobiNAS" | `192.168.178.62` — Freigabe `/Backup` per NFSv3 exklusiv an pve |
| **Gitea** | `git.tobisniceshomelab.ddnsfree.com` (lokal `192.168.178.153:3000`); Push-to-Create AUS |
## Repos
- **MC2:** `F:\Coding Stuff\mission-control-2` ↔ Gitea `Hitonabi/mission-control-v2` ↔ Box
`~/mission-control-v2` (nur Branch `main`). Enthält backend, frontend (dist committet!),
Sidecars, deploy, hermes-Plugin, `client/hermes-pc`.
- **Lucy:** `F:\Coding Stuff\lucy``Hitonabi/lucy` (privat; lucy-desktop/ + lucy-tts/).
- **Wissens-Vault:** `~/wissens-vault/` auf der Box (eigenes git; Lucys Lernschicht:
Träume, Radar-Funde, **Eigenbau-Landkarte**, Skill-Kandidaten). Im MC2-UI als Wissens-Tab.
## Dienste auf der Box (live 10.07.2026)
| Dienst | Port | Zweck |
|---|---|---|
| `llama-swap` (System-Dienst) | `:8080` | Modell-Router; Engine = llama.cpp **Vulkan/RADV** (`/opt/llamacpp-vulkan`) |
| `mission-control-2` (User) | `:9001` | MC2 Backend+Frontend; `/v1` = OpenAI-Gateway; `/hermes-ui/` = Desktop-Gateway-Proxy |
| `hermes-gateway` (User) | `:8642` | Hermes Agent API (Lucys Lane) |
| `hermes-builtin-ui` (User) | `:9119` (loopback) | Eingebaute Hermes-GUI; LAN-Zugang NUR via MC2-Proxy `/hermes-ui/` (statischer Token im systemd-Drop-in) |
| `mem0-service` (User) | `:8765` (loopback) | Mem0-Sidecar (Gedächtnis), Py 3.12 `~/.mem0/venv` |
| `voice-service` (User) | `:8650` | STT (Parakeet/Whisper) + Turn-Check für Lucy |
| `box-console` (User) | `:7682` | ttyd-Login-Shell hinter MC2-Proxy |
**Stillgelegt (Diät 09.07.):** `hermes-terminal` (:7681) und `hermes-webui` (:8787) — nicht
wiederbeleben. ⚠️ User-Units per SSH nur sichtbar mit
`export XDG_RUNTIME_DIR=/run/user/$(id -u)` vor `systemctl --user`.
## Modell-Stack (llama-swap, live 10.07.2026)
**Warm-Set (Gruppe `brains`, swap:false, persistent:true, alle ttl 0):**
Qwen3.6-35B-A3B + Qwen3-Embedding-0.6B + Qwen3-Reranker-0.6B. Sonst NICHTS dauerhaft warm.
| Alias/Rolle | Modell | ttl | Notizen |
|---|---|---|---|
| `hermes` + `fast` | Qwen3.6-35B-A3B (UD-Q4_K_M, MTP) | 0 | Agent-Hirn. `-c 131072 --parallel 2`**65536/Slot**, KV **q8_0**, `--spec-draft-n-max 3` |
| `embed` | Qwen3-Embedding-0.6B (Q8_0) | 0 | Mem0-Embeddings (1024 dim) |
| `reranker` | Qwen3-Reranker-0.6B (q8_0, **Mungert-GGUF**) | 0 | Gedächtnis-Sortierer (`/v1/rerank`); Community-GGUFs liefern oft Nullscores |
| `coder` | Qwen3-Coder-Next (Q4_K_M) | 600 | 131k ctx; Werkstatt-/Orchestrator-Worker + IDE „bauen"; auch `delegation.model` |
| `heavy` | gpt-oss-120b (mxfp4) | 600 | 32k ctx! Planer/Chef-Gutachter/Radar-Analyst — nur Ein-Schuss, lädt seit der LLM-Diät in ~28 s |
| `vision` | Qwen3-VL-30B-A3B (Q4_K_M) | 900 | Augen, ON-DEMAND; Lucy-App wärmt beim Start + alle 10 min |
| `kritiker` | GLM-4.7-Flash (UD-Q4_K_XL) | 600 | Fremdblick-Prosa + Chef-Gutachter-Vertretung |
| `scout` | GLM-4.6V-Flash (Q4_K_M) | 300 | Vision+Tools-Allrounder |
Config: `/etc/llama-swap/config.yaml` (sudo zum Schreiben). Qwen3.5-122B und VL-8B sind
ENTFERNT (07.07.) — die alten Rollback-Pfade existieren nicht mehr.
**Merkregeln:** Schutz-Key heißt `persistent:` (nicht `persist:`) · jedes brains-Mitglied
MUSS ttl:0 haben · nach JEDEM Config-Reload ist das Warm-Set leer → hermes/embed (+reranker)
per Mini-Request anwärmen (direkt curlen ist zuverlässiger als warmup.sh).
## Hermes (Agent)
- **v0.18.2** (git-Install `~/.hermes/hermes-agent`, Py 3.11), Config `~/.hermes/config.yaml`
(IMMER Backup vor Änderung), Persona `~/.hermes/SOUL.md` = **Lucy** (alle Kanäle, Anrede
„Commander").
- Hirn: `model.default` UND `model.model` = `fast`. `delegation.model: coder` (seit 10.07.).
- `approvals.mode: smart`, `approvals.cron_mode: deny` · `platform_toolsets.api_server` =
Voice-Diät (NICHT mästen!) · cli-Bucket = volles Coding-Set (auch Hermes Desktop).
- MCP-Server (aus `~/mission-control-v2/mcp/`): mission-control-memory, mission-control-stack
(mcp_mc.py, 23 Tools), hermes-pc-control, hermes-web-fetch, mcp_voice (dünn, für Voice-Lane).
- **Hermes Desktop am PC:** lokales PC-Hermes mit Box-Gateway als Hirn (`:9001/v1`), Profil
`pc` für F:\-Arbeit, geteiltes Mem0 via mc2-memory-Plugin. Remote-Gateway der Box =
`http://192.168.178.151:9001/hermes-ui`.
## Automatik-Fahrplan (was nachts von allein läuft)
| Zeit | Was |
|---|---|
| 02:30 | PBS sichert alle Proxmox-LXCs |
| 03:15 | **Traum-Cron** (dreaming-feed.sh → Wissens-Vault, fremdblick-Gate, propose-only) |
| 03:30 | Tarball-Backup (mem0+Configs+Secrets+`~/.hermes/cron`+state → `/srv/models/mc2-backups`, 14 Tage; rsync-Spiegel → Proxmox) |
| 03:50 | PBS-Host-Backup der Box (`host/aibox`: mem0+hermes+vault+llamaswap.pxar) |
| 04:30 | **Chef-Gutachter** (gpt-oss richtet über die autonome Arbeit → Morgenlage) |
| 05:15 Mo | **Release-Radar** (hermes-Releases gegen die Eigenbau-Landkarte; erster Lauf 13.07.) |
| 07:00 | QNAP-Volume-Snapshot (7 behalten) |
| 07:15 | self-smoke (Gateway/Tools/Voice/:9119; Alarm nur bei Rot) |
| 08:00 | Daily-Briefing |
| 09:00, 1. d. M. | Monats-Review (radar-selbstkritik-wrapper.sh = Evolution-Radar + Selbstkritik) |
**`mc2-autoupdate.timer` ist BEWUSST AUS** (User-Entscheid 04.07.: Updates nur bestätigt;
deploy.sh enablet ihn seit 10.07. nicht mehr). Update-Lauf manuell: `bash deploy/autoupdate.sh`
oder MC2-Wartungs-Drawer.
## Security (Stufe 0, live)
PC-Executor nur mit Bearer `HERMES_PC_TOKEN` (fail-closed) · ufw default deny, nur
LAN→22/9001/8080 (+Alt-Port 7681) · Prompt-Injection-Guard `mcp/guard.py` (wrappt
Web-/Bildschirm-Text) · mc2-memory lernt nicht aus untrusted Turns · command_allowlist =
5 exakt gepinnte curls (fnmatch; Shell-Operatoren hart geblockt — NIE offenes `curl *`) ·
Box-sudo braucht Passwort; NOPASSWD nur für update-engine/swap (`/etc/sudoers.d/mc2-autonomie`).
**Security-Config (approvals/Tokens/ufw) NIE ohne explizites User-Ja ändern.**
## Deploy & Pipeline
- **Standard-Weg für Box-Arbeit = Auftragsbuch:** Vorschlags-Branch auf Gitea
(`wartung/*`, `orchestrator/*`, `doku/*`, `feature/*`) → Karte in der UI → User-Klick =
Merge + Deploy + Health + Auto-Revert (detached Runner).
- Manuell: main auf Gitea pushen → `ssh … 'bash ~/mission-control-v2/deploy/deploy.sh'`
ODER `POST :9001/api/system/self-update` (restart meldet ok:false — harmlos, /api/health prüfen).
- deploy.sh macht `git reset --hard origin/main` (main MUSS vorher auf Gitea liegen) und baut
KEIN Frontend → dist lokal bauen + committen. Fallen: [FALLEN.md](FALLEN.md).
## Backup/Restore (3 Schichten, alle live)
1. **Tarball** täglich 03:30 → `/srv/models/mc2-backups/` + rsync-Spiegel auf Proxmox;
Restore: `bash deploy/restore.sh --list | latest` (macht vorher Sicherheits-Backup).
In der UI: Zeitmaschine (Ein-Klick-Restore).
2. **PBS** (LXCs 02:30, Box-Host 03:50), Prune 7d/4w/3m, Verify So 06:00.
3. **QNAP-Snapshots** täglich 07:00 als Ransomware-Netz.
Bare-Metal: `docs/DISASTER_RECOVERY.md`. Mensch-Anleitung: `docs/RUNBOOK.md`.
+91
View File
@@ -0,0 +1,91 @@
# Finale Verdikte — nicht neu aufrollen ohne neuen, belegten Anlass
_Kuratiert 10.07.2026 aus dem Claude-Projektgedächtnis. Jedes Verdikt trägt sein Warum und
(wo sinnvoll) die Wiedervorlage-Bedingung. Wer eines kippen will, braucht eine MESSUNG oder
einen User-Entscheid — kein „Best Practice sagt aber…" (siehe ARBEITSWEISE.md)._
## Richtung & Architektur
- **MC3-Neubau VERWORFEN (03.07.), „MC2 Final" ERSETZT durch „MC2 lebt" (10.07.).**
Kein Basisstation-Neubau; seit dem Ablösungs-Entscheid wird MC2 über die
Queue→Karte→Klick-Pipeline weiterentwickelt statt eingefroren. Siehe [ZIELBILD.md](ZIELBILD.md).
- **Agent-Runtime: Hermes bleibt.** ZeroClaw-PoC gebaut + abgerissen (01.07.) — der echte
Latenz-Fix war das Hirn (gemma→Qwen3.6), nicht die Runtime. (ZeroClaw-Messwerte für den
Fall „Hermes-Latenz wird wieder Thema": `docs/ZEROCLAW_POC_RESULTS.md`.)
- **Memory-Layer: Mem0 bleibt.** Zep/Letta/Hindsight benchen höher, sind aber schwerer/teils
closed; Mem0 = beste Framework-Integration + v3-Algorithmus + läuft deployt.
- **Telegram bleibt DER Mobil-Kanal; WhatsApp VERWORFEN (09.07.).** Baileys-Bridge = Meta-ToS-
Verstoß mit Bann-Risiko auf der Privatnummer + fragiler Dauerprozess; Alarmkette/Crons sind
simple Bot-API-Calls. Neu bewerten nur bei offizieller Personal-Bot-API.
- **Multi-Profil Lucy/Werkstatt auf der Box: NICHT nötig (09.07.).** `tui_gateway` lädt hart den
`cli`-Bucket, Lucy läuft über `api_server` — die Trennung existiert auf Platform-Ebene.
(Das PC-Profil des Hermes Desktop ist ein ANDERER Fall: eigene Maschine.)
- **MoA-Preset NICHT adoptiert.** Lädt mehrere Modell-Slots parallel — RAM ist der Engpass.
Das sequenzielle Zwei-Kritiker-Gate (Coder-Next + GLM) ist E2E-bewährt und RAM-schonend.
- **worker.sh bleibt; natives `delegate_task` nur für interaktive Arbeit (10.07.).**
delegate_task kann KEINE Modellwahl pro Aufruf und läuft top-level IMMER background
(stirbt in der `-z`-Lane mit dem Prozess). `delegation.model: coder` ist live —
Fan-out funktioniert E2E in langlebigen Sessions (Desktop/Telegram/Chat).
- **Kein heavy/gpt-oss im heißen Pfad.** heavy läuft mit 32k (< Hermes-Floor 64k) und 60 GB
Kaltladen. Als Ein-Schuss-Completion (Chef-Gutachter, Radar-Analyst, Orchestrator-Planung)
ok — als delegate_task-Ziel oder Pro-Schritt-Worker nie.
## Engine & Modelle (Box, gfx1151)
- **Vulkan/RADV schlägt ROCm** (+1222 % tg, Cutover 27.06., mehrfach bestätigt; Recheck-Stand
09.07.: hält weiter, einziger ROCm-Vorteil = Langkontext-Prefill auf gpt-oss).
**Wiedervorlage: ROCm-Recheck 20.25.07.2026** (Box-Reminder gesetzt) — falls dann Bedarf:
NUR Hybrid für heavy/coder erwägen, **das Hirn bleibt in jedem Szenario auf Vulkan.**
- **Lucys Hirn: Qwen3.6-35B-A3B mit MTP-Spec-Draft n-max 3** (+26 %; n-max 4 lohnt nicht).
KV **q8_0** (Entscheid 07.07.: Qualität > ein paar GB; der q4_k-Commit lief nie live).
`--parallel 2` = bewusster Trade (Mem0-Lernen blockiert nie den nächsten Voice-Turn).
- **coder-Lane: Qwen3-Coder-Next, FINAL** („bleiben bei dem was wir haben, nachweislich
besser"). Qwen3.6-27B dense gebencht + verworfen (tg 12,7 t/s = 47× langsamer).
- **hipEngine + strix-halo-toolboxes/TheRock: beobachten, nicht adoptieren.** hipEngine
(natives HIP, nur Qwen3.6, >2× Prefill) ist jung; kyuz0-Toolboxes lösen ein Problem, das
die Box nicht hat. Radar/Reminder wachen; Adoption nur nach eigenem brain-bench.
- **dist/ im Git ist ABSICHT.** Box hat kein Node; Deploy = `git reset --hard` + committetes
`frontend/dist`. NICHT gitignoren.
## Lucy (Voice-App)
- **Shell: Electron, nicht Tauri.** Alle harten Features (Klick-Durchlass-Overlay, Capture,
Loopback, Tray, TTS-Spawn) existieren in Electron; Tauri fehlt Region-Klick-Durchlass.
- **Stimme: pocket-tts bleibt Default, bis die Mini-Lucy (Kokoro-Finetune) den Live-Test
gewinnt.** Qwen3-TTS-1.7B (RTF ~14), Chatterbox („zu delayed"), F5 (nicht streamfähig) —
alle verworfen. Mini-Lucy v1 gewann alles Messbare (TTFB 0,45 s vs 1,72 s), scheiterte aber
am Live-K.o. „nicht multilingual" → v2-Training läuft (Stand 10.07.). Umschalter in der App.
- **STT läuft auf der BOX** (Parakeet-TDT v3, 0,30,8 s, praktisch fehlerfreies Deutsch),
lokaler Whisper nur als Lazy-Fallback. Gemini hatte das 07.07. still auf PC-CPU umgebaut —
zurückgedreht, Messung gewann.
- **Kein Multi-Agent in der Voice-Lane** (3× Latenz-Falle). Multi-Agent JA für Radar
(Fan-out) und Werkstatt (Worker/Reviewer).
## Hermes-Betrieb
- **Hermes-Quellcode NIE forken/patchen; interne Prompts bleiben ENGLISCH.** Deutsch kommt
aus SOUL.md (verifiziert); alles User-Sichtbare (Meldungen, Skills, Summaries) = deutsch.
- **Tool Search NICHT auf `on`** (steht auf `auto`, schläft de facto). Es optimiert
Cloud-Token-Kosten; wir optimieren lokale Latenz mit Prompt-Caching — `on` war gemessen
LANGSAMER (15,1 s statt 57 s).
- **Zed ACP / Hermes-im-Editor: NICHT machen.** Editor-Agent + Box-coder-Modell + AGENTS.md
ist der Sweet Spot; Hermes dazwischen = 70-KB-Prompt-Overhead. (Zed selbst ist inzwischen
vom PC entfernt — Hermes Desktop übernahm.)
- **`approvals.cron_mode: deny` bleibt** (Autonomie-Härtung 1c, User wählte Option A):
Gefahr-Befehle + execute_code sind im Cron-/Autonom-Kontext geblockt, interaktiv `smart`.
- **Fremd-Kritik via `fremdblick.sh`** (Ein-Schuss an leichtes Fremdmodell), NIE via
delegate_task→heavy (64k-Floor + Lade-Tod). Raster: prose=GLM-4.7-Flash (kritiker),
code=Coder-Next. Harte Regel: **REPRODUZIERT-ODER-ABGELEHNT** — Freispruch nur mit
belegtem Vorher/Nachher.
- **Erinnerungen/Wecker laufen deterministisch in UNSERER Schicht** (services/reminders.py),
bewusst ohne Hermes-cron.
## Sonstiges
- **LobeChat/WebUI-Ersatz verworfen** (Multi-User-Fehlpassung — Lehre: Scope challengen).
- **Smart Turn v3:** Audio LINKS padden; Output ist empirisch **P(unfertig)** — Doku behauptet
das Gegenteil. Läuft im Voice-Sidecar (/turn, ~110 ms).
- **Lokaler GPU-Klon (9070 XT):** Stack = llama.cpp-Vulkan + llama-swap, NICHT Lemonade
(deprecated Python, Server blockiert, Hybrid unsupported). Zweck/Umfang offen.
- **Aussortiert (tot):** Kyutai-Streaming-STT (nur EN/FR) · Unmute-Voll-Stack · LXC 105 (alt) ·
WebUI-Update-Checks · openWakeWord (Wake-Gate ist STT-basiert).
+55
View File
@@ -0,0 +1,55 @@
# Zielbild: Die Ablösung (Richtungs-Entscheid 10.07.2026)
_Quelle: User-Interview in 3 Fragerunden, 10.07.2026. Überschreibt ältere Richtungs-Entscheide
(insbesondere D16 „MC2 Final/einfrieren")._
**Kernsatz des Users:** „Wenn ich neue Ideen habe, soll es die Box selbst machen und nicht du."
Das Claude-Abo wird **nicht verlängert**. Danach ist **Gemini via Antigravity** der Notfall- und
Review-Partner (siehe [GEMINI_BRIEFING](../GEMINI_BRIEFING.md)). Zeitfenster unklar → knapp
planen, **jede Session hinterlässt einen sauberen Stand**.
## Die 7 Entscheide (überschreiben ältere Verdikte!)
1. **MC2-Freeze AUFGEHOBEN** — „Freeze aufgehoben, MC2 lebt." Die Box baut neue Features direkt
in MC2, über die Queue→Karte→Klick-Pipeline. „MC2 Final/einfrieren" (D16) ist Geschichte;
Stabilität kommt aus **Gates + Zeitmaschine**, nicht aus Stillstand.
2. **Lucy (Electron-Voice-App) lebt weiter + volle Pipeline:** Idee → Queue → PC-Hermes baut/testet
auf F:\ → Karte → Klick = dist-Build + Neustart. Der PC-Annahme-Weg (Auftragsbuch-Gegenstück
für Lucy) muss GEBAUT und E2E BEWIESEN werden (Session S3). **LucyWatchdog bleibt WEG**
(User: „brauchen wir nicht mehr" — er startet sie selbst).
3. **EINE Ideen-Queue, Türen egal** — Telegram/Desktop/MC2 münden alle dort. Mechanik: Entscheid
nach Probe — erst natives Hermes-Kanban (`auto_decompose`, liegt ungenutzt in der Config)
ernsthaft testen, dann nativ vs. Auftragsbuch-Ausbau festlegen (Hermes-first-Regel).
4. **Bau-Ambition: auch Großes versuchen** — in Etappen über Tage, rauere Qualität ok, der User
ist das Gate, die Zeitmaschine fängt. Aus Fehlversuchen lernen (Skills destillieren).
5. **Bagatellen ohne Klick** — „Harmloses darf selbst". Konservative Klassen: Doku/Wiki/Vault/
Chronik/tote Dateien — **NICHTS mit Code-Logik; jede Code-Zeile bleibt Klick-pflichtig.**
Immer Morgenlage-Bericht + Zeitmaschine.
6. **Gemini-Rolle: Notfall + Außen-Review** — kein Großbau-Partner. Briefing-Paket liegt IM REPO
(`docs/GEMINI_BRIEFING.md`), nicht in Agent-Gedächtnissen.
7. **Wissens-Heimat für ALLE Agenten = `docs/` im MC2-Repo** (Box liest `~/mission-control-v2`,
Antigravity liest den F:\-Checkout — versioniert + deploybar). Der Vault bleibt Lucys
Lernschicht.
## Recherche-Fundament (10.07., Web)
Das Industrie-Muster 2026 ist exakt unsere Architektur: Issue → Agent → PR → Mensch-Gate, nie
Auto-Merge (GitHub Agentic Workflows; Stripe fährt ~1300 Agent-PRs/Woche über kontinuierliche
Pflege-Agenten aus einer Task-Queue). Lokal-Konsens: „supervised assistant" schlägt
Vollautonomie. → Uns fehlte nur die QUEUE davor + kontinuierliche Selbst-Aufträge.
## Das Ablösungs-Paket (4 Sessions, nach Unersetzlichkeit sortiert)
| Session | Inhalt | Stand |
|---|---|---|
| **S1 „uebergabe"** | Claude-Wissen kuratiert → docs/wissen/ · GEMINI_BRIEFING · Runbook „Wann Gemini rufen" · Termine als Box-Reminder · radar-selbstkritik-wrapper.sh ins Repo | ✅ 10.07.2026 (diese Session) |
| **S2 „queue"** | Kanban-Probe → Queue-Entscheid → Türen verdrahten (Telegram/Desktop-Idee → Queue) · Morgenlage meldet Queue-Stand · Bagatell-Nacht-Deploy-Pfad | offen |
| **S3 „lucy-pipeline"** | PC-Annahme-Weg bauen + E2E-Beweis. Kandidat für den ersten echten Auftrag: A4-Turncheck-Auswertung (Log liegt seit 07.07. in `C:\Users\TobisPC\lucy-turncheck.log`) | offen |
| **S4 „zuendung"** | Idle-Radar/Fehler→Auftrag (Traum-Funde + Journal-Muster → Queue-Kandidaten) · Großbau-Etappen-Regeln in Skills · Generalprobe ohne Claude | offen |
## Scan-Restposten (10.07., in die Sessions eingeplant)
Lucy-Repo-Hygiene (untracked venvs/Datasets, 2 tote Branches) · C13/0f Runbook/First-Run-Wizard ·
C14 stale v1-Unit · D16 c (System-Logs) / e (Mem0-Dubletten automatisch) / f (Politur) ·
Voice-Sidecar-Diät (Faden 6). **Watchdog = bewusst NICHT wiederherstellen.**