Commit Graph

161 Commits

Author SHA1 Message Date
Hitonabi 5f6e3c77d4 Konzept-Fliessband: Skill fuer wasserdichte Konzepte (heavy denkt, Skeptiker haertet)
Neuer Skill konzept-fliessband: rohe Idee -> mehrere Fach-Rollen (heavy/gpt-oss-120b
waehlt den Cast) schaerfen ein Konzept in Runden, ein Advocatus Diaboli (fremdblick/GLM)
haertet bis wasserdicht (max 3 Runden) -> Konzept-Dokument als Vorlage fuer projekt-start
in Hermes Desktop. Propose-only, KEIN Code.

Behebt das delegate_task=coder-Loch: Konzept-/Recherche-Arbeit lief bisher stumm auf dem
Code-Modell, weil natives delegate_task hart auf delegation.model=coder verdrahtet ist und
pro Aufruf kein Modell waehlen kann.

Gehaertet gegen die Reasoning-Modell-Token-Falle (heavy & GLM antworten erst in
reasoning_content): WORKER_MAXTOK=6000 / FREMDBLICK_MAXTOK=4000 + Kaltstart-Retry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 10:30:13 +02:00
Hitonabi faf25bf76c Faden 8+5-Fix: Worker-Scope korrigieren + Profil-Hooks reproduzierbar
Zwei zusammenhaengende Bugs, beim echten Worker-Test entdeckt:

1) HOOKS FEUERTEN FUER WORKER NIE. Kanban-Worker laufen unter IHREM Profil
   (HERMES_HOME=~/.hermes/profiles/<name>) und lesen dessen config.yaml, NICHT
   die Top-Level ~/.hermes/config.yaml. Die neuen Hooks waren nur oben
   registriert -> fuer Worker inaktiv. FIX: ensure-profile-hooks.py registriert
   pre_llm_call + pre_tool_call in jeder Worker-Profil-config (idempotent,
   validiert, Backup); deploy.sh ruft es je Profil auf -> reproduzierbar.

2) FALSCHER SCOPE. Beide Hooks scopeten auf task_id == t_<hex>. Aber Worker
   tragen als effective_task_id den SESSION-Zeitstempel (z.B.
   20260713_224206_267304), NICHT die Kanban-t_-ID -> der Check schlug immer
   fehl -> box-steckbrief injizierte nie, tabu-guard liess alles durch.
   FIX:
   - tabu-pfade-guard.py: Schutz jetzt UNBEDINGT (kein Task-Scope) - kein
     legitimer Hermes-Agent-Flow schreibt je in Live-Checkout/Hermes-Quelle
     (Werkstatt arbeitet im Workspace-Klon, Wartung ist Shell nicht Agent-Tool).
   - box-steckbrief-inject.sh: Scope jetzt cwd unter ~/.hermes/kanban/workspaces/
     (zuverlaessiger Worker-Signal; Lucy/Voice/CLI laufen nie dort).

Verifiziert: echter betrieb-Worker versuchte in den Live-Checkout zu schreiben
-> GEBLOCKT, Datei nicht erstellt, TABU-Meldung im Log. 26 Guard-Unit-Faelle gruen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 22:51:47 +02:00
Hitonabi 5a236b4b28 Faden 8: Tabu-Pfade hart sperren (pre_tool_call-Guard)
Fallstrick #2: Worker koennen in die falsche Ebene wandern - Patches im
Live-Checkout ~/mission-control-v2 ablegen oder die Hermes-Quelle
~/.hermes/hermes-agent anfassen. Hermes' native is_write_denied deckt diese
Pfade NICHT ab (nur Credentials/System, live geprueft).

deploy/agent-hooks/tabu-pfade-guard.py (neu): pre_tool_call-Hook, blockt
Schreib-Operationen (write_file/patch + terminal git-write/sed-i/redirect/rm)
auf den home-verankerten Live-Checkout und die Hermes-Quelle - NUR fuer echte
Kanban-Worker (task_id t_<hex>); Lucy/CLI (UUID) = No-op (~15 ms). Der
Workspace-KLON (<workspace>/mission-control-v2) bleibt beschreibbar (nur der
home-verankerte Pfad ist tabu) -> legitime Worker-Arbeit ungestoert. Lesen
erlaubt. 25 Faelle gruen (Block + Allow, inkl. git log 2>/dev/null, Redirect
nach /tmp, Workspace-Commit). deploy.sh synct den Hook (cmp-Guard).

Registrierung in ~/.hermes/config.yaml (pre_tool_call) einmalig von Hand.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 22:26:29 +02:00
Hitonabi 967225b1d7 Faden 7: betrieb-Profil (Ops/Bench/Mess-Worker) - SOUL + deploy-Sync
Fallstrick #1: Mess-/Bench-/Verify-Aufgaben landeten auf default (Lucys
nicht-technische Persona) und flailten. Neues Worker-Profil betrieb (analog
werkstatt): misst/bencht/diagnostiziert/verifiziert auf der LEBENDEN Box,
aendert aber nichts (kein Restart/Config/Deploy).

deploy/betrieb-SOUL.md: Ops-Leitplanken - nur lesen am Live-System, kennt die
Werkzeuge (Health-curl, systemctl --user status MIT XDG_RUNTIME_DIR, bench-
Skripte), Bench-Vorsicht (kein OOM, Lucys Warm-Set schuetzen), Verifizieren-
vor-Behaupten, falsche Ebene -> werkstatt/default. deploy.sh synct sie (guarded
auf existierendes Profil).

Profil selbst + Modell (hermes) + Routing-Descriptions werden einmalig auf der
Box angelegt (hermes profile create betrieb --clone-from werkstatt).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 21:44:07 +02:00
Hitonabi e7f143823e Faden 6: Grenzen-Landkarte (was gehoert wohin) + Worker-Hinweis
Verhindert das "Chat-in-MC2"-Muster und Ebenen-Verwechslungen: neue
docs/wissen/GRENZEN.md mappt die fuenf Flaechen (MC2=Steuerpult,
Lucy=Chat/Stimme, Hermes=Fundament/Quelle-tabu, Telegram, Hermes-Desktop)
mit "gehoert hin / gehoert NICHT hin", den Code-Ebenen-Grenzen und einer
"ich will X bauen - wohin?"-Entscheidungshilfe + roten Linien.

Eingewoben: README-Lesereihenfolge, ARBEITSWEISE (Rollen-Abgrenzung zeigt
auf GRENZEN + "MC2 = Steuerpult, kein Chat"), und der pre_llm_call-Worker-
Hook (box-steckbrief-inject.sh) gibt jedem Worker die Kurz-Grenzen inline
(MC2=Steuerpult/kein Chat-UI, Lucy=Chat, Hermes-Quelle tabu) + Zeiger auf
GRENZEN.md. Verifiziert: Hook injiziert 1236 Z inkl. Grenzen, Lucy-UUID No-op.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 21:29:33 +02:00
Hitonabi 4e8f0b91dd deploy: Agent-Hooks nur bei echter Aenderung kopieren (cmp-Guard)
Ein blindes cp aktualisiert die mtime auch bei identischem Inhalt und loest
dadurch bei jedem Deploy die harmlose "script modified since approval"-Warnung
von `hermes hooks doctor` aus. cmp -s ueberspringt unveraenderte Hooks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 21:21:46 +02:00
Hitonabi 69537de304 Faden 5: Scope-Gate auf Kanban-Muster t_<hex> verschaerfen
Wichtige Korrektur vor dem Scharfschalten: Hermes setzt
effective_task_id = task_id OR uuid4() (agent/turn_context.py:216) — Lucys
interaktiver/Voice-Chat laeuft also mit einer NICHT-leeren UUID-Ersatz-task_id.
Der urspruengliche "task_id nicht leer"-Check haette damit auch Lucy getroffen
(Persona-/Latenz-Schaden). Fix: nur injizieren, wenn task_id dem echten
Kanban-Muster t_<hex> entspricht; UUIDs (mit Bindestrichen, nie t_-Prefix)
fallen auf No-op. Verifiziert: t_-ID -> injiziert, UUID/leer/non-t_ -> No-op.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 21:18:16 +02:00
Hitonabi c81523c0f4 Faden 5: Box-Selbstwissen mechanisch in jeden Kanban-Worker (pre_llm_call-Hook)
Fallstrick #1 behoben: Ops-/Mess-/Verify-Aufgaben landen oft auf `default`
(= Lucys Persona, "nicht technisch, keine Pfade/Versionen") und flailen, weil
sie llama-swap :8080 & Co. nicht kennen. Nur `werkstatt` hatte Box-Wissen.

deploy/agent-hooks/box-steckbrief-inject.sh (neu): pre_llm_call-Hook, haengt
eine kompakte Box-Orientierung ephemer an die User-Message JEDES Kanban-Workers
(egal welches Profil) — aber NUR wenn eine task_id gesetzt ist. Lucys
interaktiver/Voice-Chat hat keine task_id -> sofortiger No-op (7 ms gemessen),
kein Persona- oder Latenz-Eingriff. Inhalt: Identitaet + Modell-Endpunkte
(llama-swap :8080, MC2 :9001/v1, gateway :8642, mem0 :8765) + Tabu-Live-Checkout
+ Zeiger auf den vollen Selbst-Steckbrief und docs/wissen. = der "via Hook/
Wrapper/Guard"-Weg aus der Fallstrick-Karte (Dispatcher-Spawn ist Hermes-intern).

deploy/agent-hooks/pre-verify-gates.sh: der bestehende py_compile/dist-Gate-Hook,
bisher nur manuell auf der Box -> jetzt verbatim im Repo getrackt (ueberlebt
Box-Neuaufbau, schliesst eine Autonomie-Luecke).

deploy.sh synct beide nach ~/.hermes/agent-hooks/ (+chmod). Die Registrierung
in ~/.hermes/config.yaml (hooks: pre_llm_call) bleibt einmalig von Hand
(config.yaml ist Zwei-Schreiber-sensibel).

Verifiziert: Hook-Logik auf der Box gegen synthetische Payloads (Worker ->
987-Zeichen-Kontext injiziert, Lucy/leer -> {}, JSON valide), bash -n + LF sauber.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 21:10:34 +02:00
Auftragsbuch 5436e4df16 Auftragsbuch: 'feature/soul-push-verify' angenommen (Ein-Klick-Gate) 2026-07-13 18:23:33 +02:00
werkstatt a1957d7094 deploy/werkstatt-SOUL.md: Drittes Gate 'Push wirklich gelandet' hinzufügen 2026-07-13 18:21:49 +02:00
claude-direkt 0a9293f669 Werkstatt-Anleitung: Push wirklich verifizieren bevor Abschluss
Drittes Gate nach merge-base + rebase: git ls-remote origin <branch> muss den Branch zeigen, sonst kanban_block statt kanban_complete. Behebt Schein-Erfolg (13.07.2026: Worker meldete gepusht+done, Branch war nie auf Gitea).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 18:17:08 +02:00
Hitonabi 52f25432b8 Projekt-Start-Skill: "erst denken, dann bauen" fuer Hermes Desktop
Portiert vom PC-Skill (F:\Coding Stuff\projekt-start): 4 Phasen mit hartem
Plan-Riegel, Savepoints, AGENTS.md/SAVEPOINT.md/.aiexclude-Ritual und
Kontext-Waechter. Zed-Verweise durch Hermes Desktop ersetzt (Modellwaehler
"Box / Coder (bauen)" / "Box / Planer (denken)", Planer-Kontexthinweis),
.aiexclude-Regel in die AGENTS.md-Vorlage gehoben, Verweis auf den
Werkstatt-Weg fuer Box/Lucy-Wartung ergaenzt. deploy.sh installiert ihn
nach ~/.hermes/skills/projekt-start.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 10:56:33 +02:00
Auftragsbuch 2caecb0a79 Auftragsbuch: 'wartung/annahme-selbstheilung' angenommen (Ein-Klick-Gate) 2026-07-13 09:36:13 +02:00
Hitonabi 552299a761 Annahme-Selbstheilung: Orphan-Branches entlarven, veraltete Branches auto-rebasen
Anlass: feature/cleanse-skill-index — ein Werkstatt-Worker hatte git init statt
Klonen gemacht (Orphan-Commit ohne gemeinsamen Vorfahren, Inhalt: ~/.hermes-Index-
Dateien statt Repo-Dateien). Solche Karten sahen aus wie normale Vorschlaege,
liefen bei Annahme aber IMMER in 'refusing to merge unrelated histories' — und
die Fehlermeldung ('bitte am PC aufloesen') war eine Sackgasse. Das passiert
oefter; darum drei Schichten dagegen:

1) ERKENNEN (Auftragsbuch): neue Karten-Flags 'verwaist' (kein merge-base mit
   main -> rote Markierung 'kein gemeinsamer Ursprung', Annehmen-Knopf fehlt,
   API+Runner halten zusaetzlich dicht) und 'leer' (Diff gegen main leer ->
   'bringt nichts'-Badge). Empfehlung auf der Karte: ablehnen mit Grund,
   Idee frisch in die Queue.

2) HEILEN (beide Runner, mc2 + lucy): kollidiert der Merge, weil main weiter-
   gelaufen ist, versucht der Runner automatisch einen Rebase des Branches auf
   main (isolierter Worktree; Gates laufen danach normal, Merge-Message sagt
   'auto-rebased'). Nur wenn auch der Rebase kollidiert, faellt die Karte durch —
   mit ehrlicher Meldung statt 'am PC aufloesen'.

3) VERHINDERN (werkstatt-SOUL): voll klonen (nie git init/--depth), Selbstcheck
   'git merge-base HEAD origin/main' + fetch/rebase vor JEDEM Push, nie
   ~/.hermes-Artefakte committen.

Doku: AUFTRAGSBUCH.md + FALLEN.md (Erkennungsmuster: Diff 0 Dateien + behind ~
ganze Historie) + OFFENE-FAEDEN. Geprueft: py_compile gruen, bash -n beide
Runner gruen, tsc+vite build gruen (dist dabei); merge-base-Verhalten am echten
kaputten Branch auf der Box verifiziert.
2026-07-13 09:34:23 +02:00
Hitonabi fc591da024 Karten-Gutachter: leerer Diff => mechanisch UNKLAR (ohne Richter)
Erstlauf-Befund 12.07.: Karte mit 0 Dateien bekam ANNEHMEN - ein LLM
kann einen leeren Vorschlag nicht pruefen. Jetzt deterministische Regel
vor dem Richter.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 20:12:08 +02:00
Hitonabi 1570b2fc71 Lucy kennt sich: Selbst-Inventur, Karten-Gutachter, Lern-Klick, Radar->Queue
User-Auftrag 12.07. ("bau das alles ein im Sinne der Autonomie. Auch muss
Lucy selbst bemerken wenn sich etwas aendert"):

- deploy/selbst-inventur.sh (Cron 03:35): SELBST-STECKBRIEF wird LIVE aus
  der Realitaet GENERIERT (Versionen, Dienste, Timer, Modelle, Crons,
  Queue, Karten -> ~/.hermes/state/selbst-steckbrief.md) statt von Hand
  gepflegt. Diff gegen gestern => die Box BEMERKT SELBST Aenderungen an
  sich (stille Chronik-Karte + kurze Telegram-Zeile; sonst still).
- deploy/karten-gutachter.sh (Cron 04:00): stempelt jede neue Karte mit
  "Empfehlung: ANNEHMEN/ABLEHNEN/UNKLAR + ein ehrlicher Satz" (prueft
  Redundanz gegen den Steckbrief, Risiko, Nutzen; Ein-Schuss-Richter
  gpt-oss/GLM; Stempel = Meinung, kein Gate; neuer Commit entwertet den
  alten Stempel). Backend mischt den Stempel in /api/auftragsbuch,
  UI zeigt ihn farbig auf der Karte.
- Ablehnen mit Grund (Lern-Klick): UI-Inline-Feld beim Ablehnen ->
  /srv/models/mc2-ablehnungen.jsonl -> Idle-Radar bekommt die Gruende
  als "NIE wieder vorschlagen"-Material vorgelegt.
- idle-radar-feed.sh: Material + Raster erweitert um Selbst-Steckbrief,
  Inventur-Diff und Ablehn-Gruende (Fehlerfall 12.07.: redundanter
  Gateway-Restart-Vorschlag waere damit gestorben).
- werkstatt-SOUL Regel 7 + wartung-Skill: REALITAETS-CHECK - existiert es
  schon? Dann kanban_block statt Branch (ein Branch fuer Ueberfluessiges
  ist ein gescheiterter Lauf).
- hermes-release-radar-feed.sh: echter Treffer legt zusaetzlich EINE rohe
  Idee in die Queue (idempotent je Release-Tag) - der Blick nach draussen
  fuettert denselben Kreislauf.
- deploy.sh: kopiert beide neuen Skripte; Doku AUFTRAGSBUCH.md +
  wissen/OFFENE-FAEDEN.md; frontend/dist frisch gebaut (tsc+vite gruen,
  UI gegen Live-Box verifiziert).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:58:00 +02:00
Hitonabi 961b003df4 Zuendung (S4): Idle-Radar + Grossbau-Etappen-Regeln
- deploy/idle-radar-feed.sh (Hermes-Cron 03:45): destilliert aus Journal-
  Fehlermustern (24h) + juengster Traum-Notiz max. 2 belegte Wartungs-
  Kandidaten und legt sie als rohe Ideen (triage) ins native Kanban.
  Ehrlichkeits-Gate: Beleg-Zitat wird MECHANISCH gegen das Material
  geprueft (reproduziert-oder-abgelehnt). Stau-Bremse (>=4 offene Queue-
  Aufgaben oder >=3 offene Karten -> nichts Neues), Dedup dreifach
  (State-Datei + Board-Abgleich inkl. archivierter + --idempotency-key),
  Security/Config/Updates tabu. Analyst gpt-oss-120b, Vertretung GLM.
- deploy/idle-radar-prompt.md: versionierter Boten-Auftrag (Lucys Stimme,
  max 3 Saetze, nichts selbst umsetzen).
- deploy.sh: kopiert idle-radar-feed.sh nach ~/.hermes/scripts/ (greift
  wegen Selbst-Reset-Falle erst ab dem 2. Deploy -> Vorinstallation
  einmalig von Hand; Cron-Registrierung einmalig: hermes cron create).
- Grossbau-Etappen-Regeln (Zielbild-Entscheid 4, 10.07.): werkstatt-SOUL
  Regel 6 + wartung-/orchestrator-SKILL Scope-Check: Grosses nicht mehr
  ablehnen, sondern in Etappen bauen - jede Etappe eigener Branch, fuer
  sich lauffaehig + annehmbar, Folge-Etappen als neue Queue-Aufgaben,
  NIE auf unangenommene Branches aufbauen.
- Doku: AUFTRAGSBUCH.md (Idle-Radar-Abschnitt), wissen/OFFENE-FAEDEN.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 18:58:05 +02:00
Hitonabi b4c405a127 Lucy-Annahme-Fixes: Start-Process-Quoting, Python-3.14-Parse, Executor ohne Fensterblitz
Der erste Live-Lauf der Lucy-Annahme (wartung/pc-annahme-und-turncheck-aus) fand
zwei Bugs im Box-Runner — der Build selbst war gruen, nur Start und Abschluss
mussten manuell nachgezogen werden:

1) Start-Process -ArgumentList quotet Elemente NICHT (PS 5.1): der Runner-Pfad
   'F:\Coding Stuff\lucy\...' zerbrach am Leerzeichen, die gespawnte powershell
   starb still (kein Status, kein Log). Fix: Anfuehrungszeichen ins -File-Element
   eingebettet. (Der Probe-Test lief ueber einen Pfad OHNE Leerzeichen — deshalb
   nicht gefangen.)

2) Poll-Parser: \" in f-String-Ausdruecken ist seit Python 3.12 ein SyntaxError
   (Box: 3.14) -> der Poll blieb blind und haette den GRUENEN Merge nach 25 min
   revertiert. Fix: keine f-String-Quote-Akrobatik mehr, Werte in Variablen.
   Neuer Parser 1:1 auf der Box getestet.

3) executor.py /shell: CREATE_NO_WINDOW — der Executor laeuft unter pythonw,
   jede gespawnte powershell bekam ein SICHTBARES Konsolenfenster (Polling
   blitzte im 10-s-Takt auf dem Desktop). Nach Annahme: PC-Checkout pullen +
   HermesPCExecutor-Task neu starten (mache ich, steht auch in FALLEN.md).

Beide Fallen + Fensterblitz in docs/wissen/FALLEN.md; OFFENE-FAEDEN: S3-Stand.
Geprueft: bash -n gruen, py_compile gruen, Parser auf Box-Python 3.14 verifiziert.
2026-07-12 15:18:20 +02:00
Hitonabi 6d5b09a592 Lucy-Pipeline (S3): Auftragsbuch liest zwei Repos, Annahme baut am PC
Das Auftragsbuch-Gegenstueck fuer Lucy (Abloesungs-Paket S3, PC-Annahme-Weg):

- backend/services/auftragsbuch.py: Multi-Repo (mc2 + lucy via ~/lucy-Clone).
  Karten tragen repo-Feld; Status-Schluessel fuer Lucy = 'lucy:<branch>';
  fehlt ~/lucy, werden Lucy-Karten still weggelassen. Runner je Repo.
- deploy/lucy-annahme.sh: detached Annahme-Runner fuer Lucy-Karten.
  Vorpruefung am PC VOR dem Merge (Executor erreichbar, Arbeitskopie main+clean,
  laeuft Lucy?), dann Merge im isolierten Worktree von ~/lucy -> Push main ->
  PC zieht ff-only und baut detached (deploy/lucy-annahme.ps1 im Lucy-Repo),
  Box pollt .lucy-annahme.json und spiegelt Fortschritt auf die Karte.
  Rot = Merge automatisch revertiert, laufende Lucy bleibt die alte.
  Executor-Zugang (URL+Token) kommt aus ~/.hermes/config.yaml — kein zweiter
  Ablageort. Neustart nur, wenn Lucy vorher lief (User-Entscheid).
- Router/UI: repo-Parameter (rueckwaertskompatibel, Default mc2), rosa
  Lucy-Badge, eigener Annahme-Confirm-Text, Diff/Ablehnen je Repo.
- werkstatt-SOUL: Lucy-Auftraege ebenfalls propose-only, bauen macht der PC
  bei der Annahme.
- Doku: docs/AUFTRAGSBUCH.md (Lucy-Annahme-Kapitel), docs/wissen/OFFENE-FAEDEN
  (S2 erledigt, S3-Stand).

Geprueft: py_compile gruen, bash -n gruen, tsc+vite build gruen (dist dabei).
2026-07-12 14:48:03 +02:00
Auftragsbuch e951db36c5 Auftragsbuch: 'wartung/fix-double-zero-self-repair' angenommen (Ein-Klick-Gate) 2026-07-12 14:09:25 +02:00
Hitonabi 73a20daa52 wartung: Fix double-zero output in self-repair.sh grep command
n="0
0" erzeugt bei 0 Treffern '0\n0'.
Sichere Zuweisung: n=$(grep -cE ...); n=${n:-0}
2026-07-12 14:05:05 +02:00
Claude (Werkstatt PC) e1ca7f6a5e Ideen-Queue: natives Hermes-Kanban wird DIE Sammelstelle (Abloesung S2)
Entscheid nach Probe (Hermes-first): Dispatcher im Gateway, Specifier
(triage -> sauberer Auftrag), Profil-Routing und Artefakt-Tracking sind
nativ E2E bewiesen — kein Eigenbau. Auftragsbuch bleibt das Klick-Gate.

- backend services/ideen.py + routers/ideen.py: MC2-Tuer zur Queue
  (GET /api/ideen, POST /api/ideen -> kanban create --triage, Archiv)
- AuftragsbuchView: Ideen-Queue-Sektion (Eingabefeld + Status-Liste),
  dist frisch gebaut
- mcp_voice.py: idee_notieren (Lucys Sprech-Leitung, Prompt-Diaet: 1 Tool)
- chef-gutachter-feed.sh: Morgenlage bekommt kanban stats + Bewegung
- Bagatell-Pfad: bagatell-annahme.sh + mc2-bagatell.timer (04:10) —
  NUR .md-Anlagen/-AEnderungen, max 2/Nacht, gleicher Annahme-Runner
  mit Health-Gate + Auto-Revert, Chronik/Telegram-Meldung
- werkstatt-SOUL.md: Leitplanken des Kanban-Worker-Profils (propose-only,
  nie main, nie Live-Checkout) — deploy.sh zieht sie kuenftig nach

Box-live heute schon (ausserhalb Repo, mit Backups): toolsets+kanban,
platform_toolsets.telegram+kanban, SOUL.md-Ideen-Regel, Profil werkstatt
(model.default=coder), Gateway neu gestartet + E2E-Tuer-Test gruen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 14:02:50 +02:00
Hitonabi 7f224ec98e Uebergabe S1: Auto-Update-Entscheid 10.07. nachgezogen (Timer bleibt AN)
User-Antwort in der Uebergabe-Session: Router/Engine/Hermes duerfen automatisch
(So 04:30, Fangnetz Rollback+Pin) - ersetzt "nur bestaetigt" vom 04.07.
STACK/RUNBOOK/OFFENE-FAEDEN/deploy.sh-Kommentar entsprechend korrigiert;
deploy.sh schaltet den Timer weiterhin NICHT selbst.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 12:19:09 +02:00
Hitonabi 2d32d21742 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>
2026-07-10 12:13:05 +02:00
Hitonabi 3f32a9a746 Politur: Fremdblick-Budget fuer den Release-Radar auf 4500 (GLM-Reasoning verbrauchte 2200 vor dem Urteil) 2026-07-10 10:37:13 +02:00
Hitonabi 6e093ed163 Politur: Release-Radar-Parse repariert (Pipe+Heredoc-stdin-Kollision) + ehrlicher Blind-Pfad bei unbrauchbarer API-Antwort 2026-07-10 10:33:51 +02:00
Hitonabi 73f593b1a1 Release-Radar: hermes-Releases woechentlich gegen die Eigenbau-Landkarte halten
Baustein 2-4 des Plans "mehr Hermes nativ, weniger Eigenkreationen":
- deploy/hermes-release-radar-feed.sh: woechentlicher Cron-Feed (Muster chef-gutachter) —
  GitHub-Releases seit letztem Stand holen (nur Tags, kein main-Churn), Ein-Schuss-Abgleich
  gegen ~/wissens-vault/eigenbau-landkarte.md (Analyst gpt-oss-120b, Vertretung GLM),
  Zitat-Pflicht, fremdblick-Gegenpruefung bei Treffern, stiller Briefkasten-Spiegel
  (source=release-radar). Informiert nur — Updates bleiben manuell (Entscheid 04.07.).
- deploy/release-radar-prompt.md: versionierter Auftrag fuer den Boten-Agenten.
- deploy.sh: Feed nach ~/.hermes/scripts/ ausrollen.
- Skills wartung+orchestrator: Hermes-first-Leitplanke (vor Neubau nativ pruefen,
  Befund in den Vorschlag).
- backup.sh/restore.sh: Nebenbefund geschlossen — ~/.hermes/cron (ALLE Cron-Jobs!) und
  ~/.hermes/state wurden bisher nicht gesichert; Restore haette sie still verloren.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 10:31:50 +02:00
Hitonabi 83e5a04735 Betriebs-Lücken nach dem Hermes-Desktop-Umzug geschlossen
Systemblick 09.07. abends fand vier Lücken, drei davon hier (die vierte,
blogwatcher-Cron, ist Box-Config):
1. deploy.sh enablete mc2-autoupdate.timer bei JEDEM Deploy — und hat damit
   den User-Entscheid vom 04.07. ("Updates nur bestätigt") über die heutige
   Annahme-Kaskade still rückgängig gemacht. Zeile raus, Timer manuell
   wieder disabled; wer Auto-Updates will, enabled einmalig von Hand.
2. self-smoke.sh prüft jetzt auch das Desktop-Gateway (:9119 /api/status) —
   stirbt hermes-builtin-ui, ist die Desktop-App tot, das muss der
   Selbst-Test melden statt der User.
3. backup.sh/restore.sh sichern die neue Infrastruktur mit: agent-hooks/
   (pre_verify-Gates), shell-hooks-allowlist.json, desktop-gateway-token,
   pc-paths.yaml und den systemd-Token-Drop-in (mit chmod 600 + +x beim
   Restore). Vorher hätte ein Restore Desktop-Verbindung und Gates STILL
   verloren. bash -n auf allen vier Skripten grün.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 12:40:25 +02:00
Auftragsbuch 3572667e08 Auftragsbuch: 'wartung/pc-pfad-cache-skill' angenommen (Ein-Klick-Gate) 2026-07-09 11:20:19 +02:00
Hitonabi 15d5249458 Orchestrator-Feinschliff: drei belegte Fehlerbilder aus den Läufen vom 09.07.
1. "Auf der Box gibt es KEIN Node" war FALSCH — zwei Läufe haben dort gebaut.
   Neu: im Worktree bauen + dist mit-committen (AGENTS.md-Pflicht), danach
   package-lock.json zurücksetzen, wenn npm install es nur als Nebeneffekt
   anfasste (3 Läufe in Folge hatten lockfile-Dreck).
2. Schreibziel-Pflicht: jedes write_file/patch-Ziel muss unter /tmp/orch-<slug>/
   liegen; nie in den Live-Checkout, nie fremde Slug-Verzeichnisse recyceln
   (Doku-Lauf schrieb in ~/mission-control-v2, weil das alte Work-Dir
   wiederverwendet wurde).
3. Grosse Artefakte nie im Klartext in die Antwort — der Doku-Lauf starb am
   Output-Limit vor Kritiker-Gate und Vorschlag. Antwort = Pfade + Kurzfassung.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 11:13:15 +02:00
Hitonabi 91e1f1ec9a Skill pc-pfad-cache: Traum-Entwurf aufbereitet (Cache + pc_shell-Tool-Suche)
Übernimmt den unproponierten Entwurf aus /tmp/orch-pc-pfad-cache (Users
Orchestrator-Läufe 09.07. früh) mit einem konstruktiven Fix: der Entwurf rief
pc_shell als Shell-Befehl auf — das ist aber ein Agent-Tool, kein Binary, der
Fallback konnte nie funktionieren (der untracked .py-Rest war ein angefangener
Reparaturversuch via MCP-stdio, unnötig kompliziert). Neues Design:
pc_path_lookup.sh = reiner YAML-Cache (lookup/merken/liste, exit 3 = Miss);
die PC-Suche bei Cache-Miss macht der Agent selbst mit seinem pc_shell-TOOL
und merkt den Fund. SKILL.md im Hausstandard, deploy.sh installiert Skill +
Skript. Getestet auf der Box: merken/lookup-Roundtrip inkl. Umlaut-
Normalisierung (Ä→ae, dabei tr-Umlaut-Falle gefixt), Miss=exit 3, bash -n grün.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 11:11:33 +02:00
Auftragsbuch c0a97b1004 Auftragsbuch: 'wartung/hermes-terminal-unit-aufraeumen' angenommen (Ein-Klick-Gate) 2026-07-09 09:39:57 +02:00
Hitonabi b4a54304a4 Orchestrator-Härtung: "Task zu klein" ist kein Freibrief
Vorfall 09.07.2026 (Session 20260709_090725_9eebf3): Der Manager übersprang
Planung, Delegation UND das Zwei-Kritiker-Gate mit der Ansage "Overkill für
so einen kleinen Task" und baute selbst — transparent, aber ein Bruch des
Pflicht-Gates (ein Agent, der sein eigenes Werk durchwinkt). Neue Leitplanke:
kein Ermessensspielraum; der einzige erlaubte Ausweg bei zu kleinen Aufträgen
ist Abbruch ohne Code mit Verweis auf Werkstatt/Desktop. Code-liefernde Läufe
enthalten IMMER worker.sh-Belege und beide Kritiker-Verdikte.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 09:33:31 +02:00
Hitonabi a3068c1b08 Aufräumen: deploy/hermes-terminal.service aus dem Repo
Der Dienst ist seit der MC2-Diät stillgelegt (deploy.sh disable --now +
Unit-Löschung, auf der Box verifiziert inactive). Die Repo-Datei blieb nur
einen Deploy-Zyklus als Schutz gegen die deploy.sh-Selbst-Reset-Falle
(das alte deploy.sh kopierte sie noch beim Annahme-Deploy). Der Zyklus ist
durch — die Datei kann weg.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 09:01:40 +02:00
Auftragsbuch 531a10f8e5 Auftragsbuch: 'wartung/mc2-diaet-desktop' angenommen (Ein-Klick-Gate) 2026-07-09 08:58:21 +02:00
Hitonabi 12b7e00f7d Traum: Skill-Kandidaten im /learn-Hausstandard entwerfen
Der nächtliche Traum beschreibt Skill-Kandidaten künftig gleich als
SKILL.md-Gerüst (Frontmatter name/description<=60/version + Wann nutzen /
Schritte mit echten Hermes-Tools / Belege) statt als Freitext — die
Werkstatt übernimmt beim "Beauftragen" ein fertiges Gerüst. Propose-only
bleibt unverändert (kein skill_manage im Traum, Fremdblick-Gate davor).
Schließt das offene Traum-Increment "echte Skill-Extraktion" ab, indem es
den /learn-Autorenstandard von Hermes v0.18 in den Kreislauf holt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 08:55:23 +02:00
Hitonabi d9920fba8e MC2-Diät: Hermes-Fenster-Rolle an Hermes Desktop abgegeben
Der "Hermes GUI"-Tab (iframe auf /hermes-ui/) und das Hermes-Terminal-ttyd
(:7681) entfallen — die Agent-Oberfläche ist jetzt die Hermes-Desktop-App,
die über den BESTEHENDEN MC2-Proxy /hermes-ui/ (WS inklusive) an die Box
andockt. hermes-builtin-ui (:9119) bleibt als Desktop-Gateway erhalten und
wird im Dienste-Drawer + /api/system/services erstklassig geführt (statt
hermes-terminal); Wartungs-Allowlist kann ihn jetzt neu starten.

- Frontend: Tab/View raus (nav.ts, App.tsx, TerminalView.tsx gelöscht),
  AgentView + (Legacy-)AgentStatusCard zeigen Desktop-Gateway statt ttyd,
  Dienste-Zeile hermes-terminal → hermes-builtin-ui, Versions-Zeile
  "Hermes UI" (nesquena-Karteileiche ~/hermes-webui) entfernt.
- Backend: terminal_url/terminal_reachable + HERMES_TERMINAL_* raus,
  console.py proxyt nur noch die Box-Konsole, /api/system/services führt
  hermes-builtin-ui, USER_SERVICES getauscht, hermes-webui-GitInfo raus.
- deploy.sh: legt hermes-terminal + hermes-webui idempotent still
  (disable --now + Unit-Löschung). deploy/hermes-terminal.service bleibt
  EINEN Zyklus im Repo (das laufende alte deploy.sh kopiert es noch —
  Selbst-Reset-Falle); Aufräum-Commit folgt nach dem nächsten Deploy.
- frontend/dist mit-committet (Box baut nicht selbst).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 08:49:40 +02:00
Hitonabi 4dc5ca7343 Auftragsbuch/Chronik/Wissen/Zeitmaschine: Backend + Annahme-Runner (Ein-Klick-Gate)
Der letzte Meter des propose-only-Kreislaufs: Vorschlags-Branches (Werkstatt/
Orchestrator) und Traum-Skill-Kandidaten werden als API sichtbar; Annehmen laeuft
als detached systemd-Unit (Merge im Worktree -> Push main -> Deploy -> Health ->
Auto-Revert bei Rot). Dazu: Chronik-Endpoint (Announce-Store als Timeline),
Wissens-Vault-Reader (read-only, Traversal-Guard), Zeitmaschine (Snapshots +
detached Restore) und Morgenlage-Spiegel im Chef-Gutachter-Feed (priority=silent).
python-multipart explizit in requirements (voice braucht es, war implizit).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 18:42:03 +02:00
Hitonabi 8b6dbd4aa1 Backup: Known-Good-Manifest (pip freeze, Engine-Build, Modell-Liste) im Tarball
Die requirements sind teils ungepinnt — bei einer Neuinstallation sagt
known-good/, welche Versionen nachweislich zusammen liefen: pip freeze je
venv (backend/mem0/voice), llama.cpp+llama-swap-Version, MC2+Hermes-Git-
Staende, OS/Kernel, GGUF-Bestand. Best-effort, restore.sh unberuehrt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 18:02:17 +02:00
Hitonabi 88ec8b9121 Rollen-Ausbau: kritiker (GLM-4.7-Flash) + Gedaechtnis-Reranker (Qwen3-Reranker-0.6B)
Ergebnis des Rollen-Audits 07.07. (User: 'das beste, aber sinnvollste'):

(1) KRITIKER: fremdblick-Prosa + Chef-Gutachter-Vertretung liefen auf der
9B-Vision-GLM, obwohl es reine Text-Jobs sind. Neu: GLM-4.7-Flash
(30B-A3B, MIT, Unsloth UD-Q4_K_XL, 17,5 GB, on-demand ttl 600, Alias
'kritiker'). Gleicher Fremd-Vendor wie bisher -> die 'andere Brille'
des Kritiker-Konzepts bleibt. 4.6V-Flash bleibt scout (Bild-Jobs).

(2) RERANKER (die eine echte Rollen-Luecke): Mem0-Suche war reine
Vektor-Aehnlichkeit. Neu: Qwen3-Reranker-0.6B (q8_0, Mungert-GGUF —
Community-Konvertierungen liefern bekannt Nullscores) via llama-swap
/v1/rerank ordnet die Top-20 Kandidaten nach echter Relevanz um.
NUR die Reihenfolge aendert sich: score bleibt Vektor-Score (Hermes-
Plugin-Filter RECALL_MIN_SCORE bleibt kalibriert), rerank_score kommt
als neues Feld dazu; jeder Fehler -> lautlos Vektor-Reihenfolge.
Env: MC_RERANK_ENABLED/_URL/_MODEL/_TIMEOUT/_CANDIDATES. In brains
(verdraengungssicher, ~0,7 GB).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:21:57 +02:00
Hitonabi f88ed4e5df LLM-Landschaft: Vision raus aus dem Warm-Set (on-demand, ttl 900) + Template=Live-Abgleich
User-Entscheid 07.07.: 'Gehirn + Embedding reichen komplett aus' — die Augen
(VL-30B, ~19 GB) werden nur gebraucht, wenn Lucy auf dem Desktop an ist oder
die IDE-Lane sie ruft. Warm-Set = nur noch Qwen3.6 + embed; damit passt der
60-GB-Chef-Gutachter (gpt-oss) wieder neben das Hirn.

- llama-swap.config.yaml: VL-30B aus brains raus, ttl 0 -> 900 (15 min
  Nachlauf); Kommentare entstaubt. AUSSERDEM Template<->Live-Drift beendet:
  Template hatte coder-lite wiederbelebt (live seit 05.07. entfernt) und
  KV q4_k (lief NIE live) — beides auf Live-Wahrheit (q8_0, kein coder-lite)
  zurueckgesetzt; Qualitaet vor ein paar GB, RAM-Engpass ist mit der Diaet weg.
- warmup.sh: Default 'fast vision' -> 'fast' (Root-Kopie unter
  /usr/local/bin braucht spaeter einmal sudo cp — bis dahin waermt ein
  llama-swap-Restart vision einmalig, ttl 900 raeumt es wieder ab)
- warmer.py: Docstring auf neues Warm-Set angepasst
- Lucy-Seite (eigenes Repo): App waermt die Augen beim Start + alle 10 min,
  solange sie laeuft — Augen-Lebenszyklus == Lucy-Lebenszyklus

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 21:53:06 +02:00
Hitonabi d68ee60182 Chef-Gutachter-Cron (Orchestrator-Finale): gpt-oss urteilt naechtlich ueber die autonome Arbeit
User-Idee 06.07.: das grosse Modell NICHT im heissen Pfad, sondern als
naechtlicher Gutachter (04:30) — Kaltladen ist dann egal, Lucy bleibt
tagsueber schnell. Feed sammelt 24h-Beweise (Vorschlags-Branches, main-
Commits, Vault-Notizen, Journal-Warnungen, Insights), der Richter laeuft
als Ein-Schuss-Completion gegen llama-swap (fremdblick-Architektur).
Richter-Kette: gpt-oss-120b -> GLM-4.6V-Flash als gekennzeichnete
Vertretung (gpt-oss wirft neben dem Warm-Set weiterhin 'exited
prematurely', E2E 07.07. verifiziert). Bote = Cron-Agent mit striktem
Treu-Wiedergeben-Mandat (chef-gutachter-prompt.md), Ausfall wird ehrlich
gemeldet statt verschwiegen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 21:26:24 +02:00
Hitonabi 092dcc2ada fix(hermes-ui): switch from headless 'hermes serve' to 'hermes dashboard --no-open' 2026-07-07 17:27:49 +02:00
Hitonabi 6f77dbb9d9 chore(config): remove missing Qwen3.5-122B and Qwen3-VL-8B, promote gpt-oss-120b 2026-07-07 17:18:31 +02:00
Hitonabi edf1614e66 feat(perf): Optimize KV-Cache to Q4_K and fix Hermes Context bounds 2026-07-07 17:11:50 +02:00
root 97be0f1d00 feat: lower memory dedupe threshold for more aggressive cleaning 2026-07-07 16:45:30 +02:00
Hitonabi c92f238d2d refactor: architektur-optimierungen (systemd, jq, httpx, commit-hook) 2026-07-06 20:38:18 +02:00
Hitonabi 3fba487963 feat: orchestrator skill nutzt gpt-oss-120b zur initialen planung 2026-07-06 20:28:45 +02:00
Hitonabi b95530ee70 fix: absolute imports and type annotations in app.py
- replace implicit relative imports with absolute ones (from backend.*)
- add type hints for lifespan tasks list and middleware
- fix unused bool return value in task.cancel() call
2026-07-06 20:06:40 +02:00
Hitonabi 3a6e3c5432 Hermes-GUI: eingebaute hermes serve-Weboberflaeche same-origin in MC2 einbetten (ersetzt CLI-Terminal-Tab)
Statt des ttyd-CLI-Terminals zeigt der Tab jetzt die reiche eingebaute Hermes-Web-GUI
(hermes serve/dashboard: Threads, sichtbare Tool-Calls, Sessions, Config) - same-origin,
ohne offenen Port, ohne Login (Loopback :9119 = LAN-Trust wie Terminal/Konsole).

- backend/routers/hermes_ui.py: generischer Reverse-Proxy /hermes-ui/* (alle Methoden + beliebige
  WebSockets) -> 127.0.0.1:9119; injiziert window.__HERMES_BASE_PATH__=/hermes-ui in die index.html,
  damit die SPA ihre API/WS-Calls unter dem Praefix absetzt (sonst Kollision mit MC2s /api).
- deploy/hermes-builtin-ui.service: hermes serve --skip-build auf Loopback :9119.
- deploy/deploy.sh: baut das GUI-Bundle mit Vite-base=/hermes-ui/ (Temp->Swap, ueberlebt Hermes-
  Updates) + installiert/startet den Dienst.
- backend/app.py + config.py + services/agent.py: Router registriert, Upstream/Pfad + Status-Feld.
- frontend: Terminal-Tab -> "Hermes GUI" (TerminalView iframe /hermes-ui/, nav-Label, vite-Dev-Proxy).

E2E im Browser verifiziert: GUI rendert eingebettet, /hermes-ui/api/* liefern echte Daten
(289 Sessions, verbundene Plattformen), Assets + Plugins laden, Basis-Pfad korrekt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 14:48:12 +02:00