From e9c25995429fbf17d64ffc24f5cbd0ea76ace646 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 4 Sep 2026 14:53:55 +0200 Subject: [PATCH] fix(radar): nur Aenderungen ans Modell, und kein Fehlalarm nach dem Neustart Erster Lauf des Upstream-Blicks: das Modell machte aus "unveraendert"-Zeilen naechste Schritte und aus "Timer seit Neustart noch nicht gelaufen" ein hohes Risiko. Beides filtert jetzt das Skript: nur ACHTUNG-Zeilen (plus Hinweis) gehen in den Prompt, und ein Timer mit naechstem Termin auf einer Box, die juenger als einen Tag ist, gilt als wartend, nicht als kaputt. Co-Authored-By: Claude Fable 5.1 --- deploy/jobs/stack-ist.sh | 8 +++++++- deploy/jobs/stack-radar.sh | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/deploy/jobs/stack-ist.sh b/deploy/jobs/stack-ist.sh index 4452c18..81b4070 100644 --- a/deploy/jobs/stack-ist.sh +++ b/deploy/jobs/stack-ist.sh @@ -59,7 +59,13 @@ for t in $(systemctl --user list-timers --no-legend --no-pager 2>/dev/null | awk case "$dienst" in launchpadlib-*) continue ;; esac # Ubuntu-Eigenes, nicht unseres code=$(systemctl --user show -p ExecMainStatus --value "$dienst" 2>/dev/null) wann=$(systemctl --user show -p ExecMainExitTimestamp --value "$dienst" 2>/dev/null | cut -d' ' -f2,3) - if [ -z "$wann" ]; then warn "$dienst ist eingerichtet, aber NIE gelaufen" + # Nach einem Neustart ist der "letzte Lauf" leer, obwohl nichts kaputt ist — + # am 04.09. machte der Radar daraus "hohes Risiko, sofort in Betrieb nehmen". + # Junge Box (< 1 Tag) + Timer hat einen naechsten Termin = wartet, kein Befund. + naechster=$(systemctl --user show -p NextElapseUSecRealtime --value "${dienst%.service}.timer" 2>/dev/null | cut -d' ' -f2,3) + if [ -z "$wann" ] && [ "$(cut -d. -f1 /proc/uptime)" -lt 86400 ] && [ -n "$naechster" ]; then + ok "$dienst wartet auf den ersten Lauf seit dem Neustart (naechster: $naechster)" + elif [ -z "$wann" ]; then warn "$dienst ist eingerichtet, aber NIE gelaufen" elif [ "${code:-0}" = "0" ]; then ok "$dienst zuletzt $wann" else bad "$dienst zuletzt GESCHEITERT (exit $code) am $wann"; fi done diff --git a/deploy/jobs/stack-radar.sh b/deploy/jobs/stack-radar.sh index 46c8000..e7795bd 100644 --- a/deploy/jobs/stack-radar.sh +++ b/deploy/jobs/stack-radar.sh @@ -51,9 +51,16 @@ if [ -f "$UPSTREAM_SKRIPT" ]; then UPSTREAM="$(timeout 240 python3 "$UPSTREAM_SKRIPT" 2>&1)" \ || UPSTREAM="UPSTREAM (Watchlist) ACHTUNG Upstream-Pruefung abgebrochen (exit $?) — $UPSTREAM_SKRIPT nachsehen" + # Nur Aenderungen ans Modell. Beim ersten Lauf (04.09.) bekam es auch die + # "unveraendert"-Zeilen und erfand zu jeder einen "naechsten Schritt" — der + # Prompt-Hinweis half nicht. Fakten filtert das Skript, nicht die Prosa. + ANZ_QUELLEN="$(printf '%s\n' "$UPSTREAM" | grep -cE '^\s+(OK|ACHTUNG)' || true)" + UPSTREAM_NEU="$(printf '%s\n' "$UPSTREAM" | grep -A1 -E '^\s+ACHTUNG' | grep -vE '^--$' || true)" + [ -z "$UPSTREAM_NEU" ] && UPSTREAM_NEU=" OK nichts Neues draussen ($ANZ_QUELLEN Quellen geprueft, alle unveraendert)" IST="$IST -$UPSTREAM" +UPSTREAM (was hat sich draussen getan?) +$UPSTREAM_NEU" fi ROT="$(printf '%s\n' "$IST" | grep -E '^\s+(ROT|ACHTUNG)' || true)"