self-smoke/postcheck: Browser-Tool-Check + Selbstheilung (agent-browser-Link-Falle, Vorfall 16.07.)
Hermes' browser_navigate starb still als "Failed to open <url>": das Hermes-Update 15.07. 23:53 (npm ci --workspace) bog ~/.local/bin/agent-browser per postinstall auf node_modules/ um und loeschte das Paket im selben Lauf wieder -> toter Symlink. Kein fehlender MCP/Skill. Neu, damit die Box das OHNE Zuruf erkennt und heilt: - self-smoke.sh Check 6: agent-browser --version; bei totem Link auf das npm-global-Binary (~/.local/lib/node_modules/...) zurueckbiegen und hermes-gateway/hermes-builtin-ui try-restarten (browser_tool cached "nicht installiert" pro Prozess). Selbstheilung wird als Info gemeldet (neuer HEALED-Kanal), nicht als Alarm; unfixbar -> Rot wie gehabt. - hermes-postcheck.sh: gleicher Check direkt nach jedem Hermes-Update, denn genau dort entsteht der Bruch. Heil-Logik isoliert auf der Box getestet (Fake-HOME + systemctl-Stub): toter Link -> geheilt+Restart; danach PASS ohne Restart; Binary weg -> FAIL. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -86,6 +86,25 @@ else
|
|||||||
echo "FAIL · Voice-Smoke: /api/voice/chat streamt nicht (3 Versuche)"; fail=1
|
echo "FAIL · Voice-Smoke: /api/voice/chat streamt nicht (3 Versuche)"; fail=1
|
||||||
fi
|
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
|
if [ "$fail" -eq 0 ]; then
|
||||||
echo "=== GEHIRN OK ✓ ==="
|
echo "=== GEHIRN OK ✓ ==="
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
|
|||||||
|
|
||||||
say(){ echo "[self-smoke] $*"; }
|
say(){ echo "[self-smoke] $*"; }
|
||||||
FAILED=()
|
FAILED=()
|
||||||
|
HEALED=()
|
||||||
|
|
||||||
API_KEY="$(grep -E '^API_SERVER_KEY=' "$HERMES/.env" 2>/dev/null | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
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
|
fi
|
||||||
rm -f "$BW_HDR" "$BW_OUT"
|
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 ──────────────────────────────────────────────────────
|
# ── Meldung nur bei Rot ──────────────────────────────────────────────────────
|
||||||
if [ "${#FAILED[@]}" -eq 0 ]; then
|
if [ "${#FAILED[@]}" -eq 0 ]; then
|
||||||
say "Alle Selbst-Tests grün ($(date '+%F %H:%M'))."
|
say "Alle Selbst-Tests grün ($(date '+%F %H:%M'))."
|
||||||
|
|||||||
Reference in New Issue
Block a user