diff --git a/deploy/backup.sh b/deploy/backup.sh index b83ec3c..7d77c85 100644 --- a/deploy/backup.sh +++ b/deploy/backup.sh @@ -34,6 +34,14 @@ mkdir -p "$STAGE/mem0" "$STAGE/hermes" "$STAGE/llama-swap" [ -f "$HERMES/.env" ] && cp -a "$HERMES/.env" "$STAGE/hermes/" || true [ -d "$HERMES/plugins" ] && cp -a "$HERMES/plugins" "$STAGE/hermes/plugins" || true [ -f "$LSWAP" ] && cp -a "$LSWAP" "$STAGE/llama-swap/" || true +# Hermes-Desktop-/Gate-Infrastruktur (09.07.2026) — ohne sie verliert ein Restore die +# Desktop-Verbindung und die pre_verify-Gates STILL (config.yaml referenziert die Hooks): +[ -d "$HERMES/agent-hooks" ] && cp -a "$HERMES/agent-hooks" "$STAGE/hermes/agent-hooks" || true +[ -f "$HERMES/shell-hooks-allowlist.json" ] && cp -a "$HERMES/shell-hooks-allowlist.json" "$STAGE/hermes/" || true +[ -f "$HERMES/desktop-gateway-token" ] && cp -a "$HERMES/desktop-gateway-token" "$STAGE/hermes/" || true +[ -f "$HERMES/pc-paths.yaml" ] && cp -a "$HERMES/pc-paths.yaml" "$STAGE/hermes/" || true +_TOKDROPIN="$HOME/.config/systemd/user/hermes-builtin-ui.service.d/session-token.conf" +[ -f "$_TOKDROPIN" ] && { mkdir -p "$STAGE/hermes/systemd-dropins"; cp -a "$_TOKDROPIN" "$STAGE/hermes/systemd-dropins/"; } || true # --- Known-Good-Manifest ----------------------------------------------------- # Versions-Schnappschuss des LAUFENDEN Stacks: pip freeze je venv, Engine-Build, diff --git a/deploy/deploy.sh b/deploy/deploy.sh index 237f1cf..2ba49ed 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -123,7 +123,10 @@ systemctl --user enable mem0-service >/dev/null 2>&1 || true systemctl --user enable voice-service >/dev/null 2>&1 || true systemctl --user enable hermes-builtin-ui >/dev/null 2>&1 || true systemctl --user enable --now mc2-backup.timer >/dev/null 2>&1 || true -systemctl --user enable --now mc2-autoupdate.timer >/dev/null 2>&1 || true +# mc2-autoupdate.timer wird BEWUSST NICHT enabled (User-Entscheid 04.07.2026: Updates nur +# bestätigt). Die frühere enable-Zeile hier hat den Entscheid bei jedem Deploy still +# rückgängig gemacht (aufgefallen 09.07. nach der Annahme-Kaskade). Wer Auto-Updates will: +# einmalig manuell `systemctl --user enable --now mc2-autoupdate.timer`. systemctl --user enable --now mc2-selfsmoke.timer >/dev/null 2>&1 || true loginctl enable-linger "$USER" >/dev/null 2>&1 || true # Mem0-Sidecar VOR dem Backend (re)starten, damit /api/memory sofort bedient wird. diff --git a/deploy/restore.sh b/deploy/restore.sh index fb1ab69..29d3ab0 100644 --- a/deploy/restore.sh +++ b/deploy/restore.sh @@ -124,6 +124,12 @@ if [ -d "$STAGE/mem0" ]; then rm -rf "$MEM0_DIR"; mkdir -p "$MEM0_DIR"; cp -a "$ [ -f "$STAGE/hermes/.env" ] && cp -a "$STAGE/hermes/.env" "$HERMES/" [ -d "$STAGE/hermes/plugins" ] && { mkdir -p "$HERMES/plugins"; cp -a "$STAGE/hermes/plugins/." "$HERMES/plugins/"; } [ -f "$STAGE/llama-swap/config.yaml" ] && cp -a "$STAGE/llama-swap/config.yaml" "$LSWAP" 2>/dev/null || true +# Hermes-Desktop-/Gate-Infrastruktur (Gegenstück zu backup.sh, 09.07.2026): +[ -d "$STAGE/hermes/agent-hooks" ] && { mkdir -p "$HERMES/agent-hooks"; cp -a "$STAGE/hermes/agent-hooks/." "$HERMES/agent-hooks/"; chmod +x "$HERMES/agent-hooks/"*.sh 2>/dev/null || true; } +[ -f "$STAGE/hermes/shell-hooks-allowlist.json" ] && cp -a "$STAGE/hermes/shell-hooks-allowlist.json" "$HERMES/" +[ -f "$STAGE/hermes/desktop-gateway-token" ] && { cp -a "$STAGE/hermes/desktop-gateway-token" "$HERMES/"; chmod 600 "$HERMES/desktop-gateway-token"; } +[ -f "$STAGE/hermes/pc-paths.yaml" ] && cp -a "$STAGE/hermes/pc-paths.yaml" "$HERMES/" +[ -f "$STAGE/hermes/systemd-dropins/session-token.conf" ] && { mkdir -p "$HOME/.config/systemd/user/hermes-builtin-ui.service.d"; cp -a "$STAGE/hermes/systemd-dropins/session-token.conf" "$HOME/.config/systemd/user/hermes-builtin-ui.service.d/"; chmod 600 "$HOME/.config/systemd/user/hermes-builtin-ui.service.d/session-token.conf"; systemctl --user daemon-reload 2>/dev/null || true; } echo "→ Dienste starten…" systemctl --user start $SERVICES 2>/dev/null || true diff --git a/deploy/self-smoke.sh b/deploy/self-smoke.sh index 2891894..0a7aa91 100644 --- a/deploy/self-smoke.sh +++ b/deploy/self-smoke.sh @@ -53,6 +53,17 @@ if [ -n "$API_KEY" ]; then fi fi +# ── 2b) Desktop-Gateway: hermes-builtin-ui antwortet ──────────────────────── +# Seit dem Hermes-Desktop-Umzug (09.07.2026) hängt die Desktop-App an :9119 +# (via MC2-Proxy /hermes-ui/). Stirbt der Dienst, ist die Arbeits-Oberfläche +# am PC tot — das muss der Selbst-Test melden, nicht erst der User. +if curl -sf -m 10 "http://127.0.0.1:9119/api/status" | grep -q '"gateway_running"'; then + say "PASS · Desktop-Gateway (:9119 /api/status)" +else + say "FAIL · Desktop-Gateway: :9119/api/status antwortet nicht (hermes-builtin-ui prüfen)" + FAILED+=("Desktop-Gateway (hermes-builtin-ui :9119)") +fi + # ── 3) Voice: Lucys Sprech-Stream ──────────────────────────────────────────── # Retry: der erste Turn nach Idle zahlt evtl. den Session-Kaltstart (Prefill). # Subshell OHNE pipefail — head -c schließt die Pipe früh (curl endet mit 23/SIGPIPE),