Konsequenz aus dem Zed-Aus: Der Tab führte alle Anbindungen gleichrangig,
obwohl der rohe /v1-Zugang am PC kaum noch reale Nutzer hat. Neu:
- "Hermes Desktop anbinden" als prominente eigene Karte (Anleitung + Status).
- Kilo Code / Claude Code / Gedächtnis-MCP in den zugeklappten Ausklapper
"Sonstige Tools (roher /v1-Zugang + Gedächtnis-MCP)" — alles weiter da,
nur nicht mehr im Vordergrund. Drei-Leitungen-Hero bleibt.
- Header-Text entsprechend.
Browser-verifiziert gegen die Box (Karte, Ausklapper zu/auf, Leitungen grün);
tsc + Build grün, dist mit-committet, package-lock unangetastet.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
Ü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>
- Backend: check_health() prüft jetzt auch Desktop-Gateway (GET /api/status :9119)
- Frontend: ConnectHealth-Typ erweitert, dritte Status-Zeile mit emerald-Theme
- Frontend-Build: neu gebaut mit Vite (Hash-Dateinamen aktualisiert)
- BEDIENUNG.md: Bereichs-Liste auf die echten 10 Sidebar-Tabs gebracht
(Auftragsbuch/Wissen/Chronik/Konsole fehlten komplett), Verbinden-Abschnitt
auf Hermes Desktop/Kilo/Claude Code umgestellt (Zed/Roo abgeschafft),
Verweis "Arbeiten = Desktop-App, MC2 = Maschinenraum".
- DISASTER_RECOVERY.md: hermes-terminal-Zeile durch Desktop-Gateway
(hermes-builtin-ui) + Token-Drop-in + Token-Kopie ersetzt (übernimmt die
gerettete Orchestrator-Änderung), nesquena-WebUI-Zeile durch
Hermes-Desktop-Eintrag (PC) ersetzt, Wizard-Checkliste angepasst.
- HERMES_SETUP.md: §3 (nesquena-webui-Install, obsolet) durch "Hermes
Desktop (PC) anbinden" ersetzt: Token-Drop-in auf der Box,
connection.json am PC, MC2-Proxy-URL, cli-Toolset-Hinweis.
Hintergrund: Der Orchestrator-Lauf zu diesem Auftrag delegierte erstmals
echt (worker.sh plan/build), scheiterte aber an falschem Schreibziel
(Live-Checkout statt Worktree) + Output-Limit — Rest von Hand zu Ende
geführt, gerettete Änderung übernommen.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
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>
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>
dist-Konflikt (Hash-Assets beider Builds) durch frischen Build aufgelöst —
damit sind BEIDE Auftragsbuch-Karten in beliebiger Reihenfolge Ein-Klick-fähig
(role-metadata zuerst = sauber; diaet enthält die Rollen-Texte mit).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
fmtSnap kannte nur Zeitstempel mit Trennzeichen (2026-07-08T...), backup.sh
schreibt aber kompakt (20260708-181136) — Datum erschien roh. Regex tolerant
gemacht. Dazu docs/AUFTRAGSBUCH.md (Funktionsweise + Leitplanken); dieser Branch
ist zugleich die erste echte E2E-Annahme-Probe des Auftragsbuchs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Neue Views: Auftragsbuch (Karten mit Diff/Kritiker-Kontext, Annehmen/Ablehnen mit
Fangnetz-Dialog), Chronik (Tages-Timeline aus dem Briefkasten + Zeitmaschine mit
Ein-Klick-Restore), Wissen (Vault als klickbares Wiki, [[Links]] springen).
Cockpit: Auftragsbuch-Kachel + Braucht-dich-Eintrag, Morgenlage-Karte (juengstes
Chef-Verdikt), Anstehendes (Erinnerungen anlegen/loeschen), Wissen/Chronik-Kacheln.
Gedaechtnis: Dubletten-Dialog zeigt jetzt konkret, was bleibt und was wegfaellt.
dist mitgebaut (tsc+vite gruen).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
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>
Befund 08.07.: 'hermes update' scheiterte real an einem verwaisten
.git/index.lock (git stash exit 1), aber der Job wurde GRUEN — das ';'
vor dem Dienst-Neustart (noetig, damit die gestoppte UI auch im
Fehlerfall wieder hochkommt) schluckte den Update-Fehler, und der
Postcheck bestand mit dem ALTEN Agenten. User sah 'done', Badge blieb
(125 Commits Rueckstand). Neu: RC wird festgehalten, Dienste starten
IMMER wieder, aber der Job uebernimmt den echten Update-RC und
schreibt eine Klartext-Zeile ins Log. Lock auf der Box entfernt
(Verwaisung von gestern 21:22, wie beim MC2-Repo).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>