diff --git a/deploy/hermes-postcheck.sh b/deploy/hermes-postcheck.sh index c658f17..7ce9cf5 100644 --- a/deploy/hermes-postcheck.sh +++ b/deploy/hermes-postcheck.sh @@ -86,6 +86,25 @@ else echo "FAIL · Voice-Smoke: /api/voice/chat streamt nicht (3 Versuche)"; fail=1 fi +# --- Browser-Tool: agent-browser überlebt das Update? (Vorfall 15./16.07.2026: das --- +# --- npm ci des Updates bog ~/.local/bin/agent-browser per postinstall auf --- +# --- node_modules/ um und löschte das Paket im selben Lauf → toter Link, jedes --- +# --- „Website öffnen" starb still als „Failed to open".) Heilung direkt hier, denn --- +# --- genau NACH einem Update entsteht der Bruch; try-restart räumt den --- +# --- „nicht installiert"-Cache, den browser_tool pro Prozess hält. --- +export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" +AB_LINK="$HOME/.local/bin/agent-browser" +AB_GOOD="$HOME/.local/lib/node_modules/agent-browser/bin/agent-browser-linux-x64" +if "$AB_LINK" --version >/dev/null 2>&1; then + echo "PASS · Browser-Tool (agent-browser erreichbar)" +elif [ -x "$AB_GOOD" ] && "$AB_GOOD" --version >/dev/null 2>&1 \ + && ln -sfn "$AB_GOOD" "$AB_LINK" && "$AB_LINK" --version >/dev/null 2>&1; then + systemctl --user try-restart hermes-gateway hermes-builtin-ui >/dev/null 2>&1 || true + echo "GEHEILT · Browser-Tool: toter agent-browser-Link nach Update neu gesetzt (Dienste neu gestartet)" +else + echo "FAIL · Browser-Tool: agent-browser nicht lauffähig (npm install -g agent-browser && agent-browser install --with-deps)"; fail=1 +fi + if [ "$fail" -eq 0 ]; then echo "=== GEHIRN OK ✓ ===" else diff --git a/deploy/self-smoke.sh b/deploy/self-smoke.sh index e6edfea..b1fc52e 100644 --- a/deploy/self-smoke.sh +++ b/deploy/self-smoke.sh @@ -17,6 +17,7 @@ export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" say(){ echo "[self-smoke] $*"; } FAILED=() +HEALED=() API_KEY="$(grep -E '^API_SERVER_KEY=' "$HERMES/.env" 2>/dev/null | cut -d= -f2- | tr -d '"' | tr -d "'")" @@ -129,6 +130,42 @@ else fi rm -f "$BW_HDR" "$BW_OUT" +# ── 6) Browser-Tool: agent-browser läuft (Vorfall 16.07.2026) ──────────────── +# Hermes' browser_navigate ruft das agent-browser-CLI über die Kette +# ~/.hermes/node/bin → ~/.local/bin/agent-browser. Das Hermes-Update 15.07. +# 23:53 bog den Symlink per npm-postinstall auf node_modules/ um und löschte +# das Paket im selben Lauf wieder (npm ci --workspace) → toter Link, jedes +# „Website öffnen" scheiterte still als „Failed to open". Hier täglich prüfen +# und den bekannten Bruch SELBST heilen: Link aufs npm-global-Binary +# zurückbiegen + Gateway/Desktop-UI neu starten (browser_tool cached ein +# „nicht installiert" pro Prozess — ohne Restart bliebe es kaputt). +AB_LINK="$HOME/.local/bin/agent-browser" +AB_GOOD="$HOME/.local/lib/node_modules/agent-browser/bin/agent-browser-linux-x64" +if "$AB_LINK" --version >/dev/null 2>&1; then + say "PASS · Browser-Tool ($("$AB_LINK" --version 2>/dev/null))" +elif [ -x "$AB_GOOD" ] && "$AB_GOOD" --version >/dev/null 2>&1; then + ln -sfn "$AB_GOOD" "$AB_LINK" + if "$AB_LINK" --version >/dev/null 2>&1; then + systemctl --user try-restart hermes-gateway hermes-builtin-ui >/dev/null 2>&1 || true + say "GEHEILT · Browser-Tool: toter agent-browser-Link neu gesetzt, Gateway/Desktop-UI neu gestartet" + HEALED+=("Browser-Tool (agent-browser-Link war tot — selbst repariert, Gateway/Desktop-UI neu gestartet)") + else + say "FAIL · Browser-Tool: Link neu gesetzt, aber agent-browser startet nicht" + FAILED+=("Browser-Tool (agent-browser startet trotz Link-Reparatur nicht)") + fi +else + say "FAIL · Browser-Tool: agent-browser fehlt (auch kein heiles Binary unter ~/.local/lib)" + FAILED+=("Browser-Tool (agent-browser fehlt — npm install -g agent-browser && agent-browser install --with-deps)") +fi + +# ── Selbstheilungen nur melden, nicht alarmieren ───────────────────────────── +if [ "${#HEALED[@]}" -gt 0 ]; then + HEAL_MSG="Commander, mein Selbst-Test hat etwas gefunden und direkt selbst repariert: +$(printf '• %s\n' "${HEALED[@]}") +Nur zur Info — es ist schon wieder grün." + bash "$SRC_DIR/notify.sh" -s "[Selbst-Test]" "$HEAL_MSG" || true +fi + # ── Meldung nur bei Rot ────────────────────────────────────────────────────── if [ "${#FAILED[@]}" -eq 0 ]; then say "Alle Selbst-Tests grün ($(date '+%F %H:%M'))."