Stack-Rundumschlag: monatlicher freier Rundumblick (Cron am 4., 06:40)
Ergaenzt die mechanischen Waechter um tagesaktuelle Web-Recherche — Lehrbeispiel Gemma-4-Stealth-Update 15./16.07. ohne Versionssprung, das kein Radar fing. Feed sammelt IST-Stand (Rollen, Engine, Puls, Watch, Pruefstand, Ressourcen, Fehlerbild), Agent recherchiert und empfiehlt max. 3 Schritte; umgesetzt wird per Karten-Klick. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env bash
|
||||
# Stack-Rundumschlag (monatlich am 4. um 06:40, angelegt 22.07.2026):
|
||||
# Lucys freier Rundumblick über den GANZEN Stack — ergänzt die mechanischen
|
||||
# Wächter (Sa Trend-Radar, So Prüfstand, Mo Release-Radar, Wartungsserie 1.–3.)
|
||||
# um tagesaktuelle Web-Recherche + Quervergleich mit den Verdikten.
|
||||
# Anlass/Lehrbeispiel: Googles Gemma-4-Stealth-Update vom 15./16.07.2026 kam
|
||||
# OHNE Versionssprung — kein mechanischer Wächter schlug an, erst freie
|
||||
# Recherche fand es (Session 22.07., Claude-Desktop).
|
||||
# Muster wie die anderen Feeds: dieses Skript sammelt DETERMINISTISCH den
|
||||
# IST-Stand, der Agent recherchiert + berichtet. Er EMPFIEHLT NUR — umgesetzt
|
||||
# wird per Karten-Klick durch den Commander.
|
||||
set -uo pipefail
|
||||
|
||||
MC="$HOME/mission-control-v2"
|
||||
STATE_DIR="$HOME/.hermes/state"
|
||||
|
||||
# ---------- Versionierter Auftrag für den Agenten ----------
|
||||
cat "$MC/deploy/stack-rundumschlag-prompt.md" 2>/dev/null || cat <<'EOF'
|
||||
(Prompt-Datei fehlt — Kurzform:) Du bist der monatliche Stack-Rundumschlag.
|
||||
Recherchiere tagesaktuell im Web zu allen Bausteinen unten (auch Stealth-Updates
|
||||
ohne Versionssprung!), gleiche mit den Verdikten ab und berichte in Lucys Stimme
|
||||
mit höchstens 3 konkreten Empfehlungen. Nichts selbst umsetzen.
|
||||
EOF
|
||||
echo
|
||||
echo "## RUNDUMSCHLAG-BEFUND (IST-Stand erhoben am $(date '+%d.%m.%Y %H:%M'))"
|
||||
echo
|
||||
|
||||
echo "### Rollen laut llama-swap (:8080)"
|
||||
curl -sf -m 10 http://127.0.0.1:8080/v1/models 2>/dev/null \
|
||||
| python3 -c 'import json,sys
|
||||
for m in json.load(sys.stdin).get("data", []):
|
||||
print("-", m.get("id"))' 2>/dev/null || echo "(llama-swap nicht erreichbar)"
|
||||
echo
|
||||
|
||||
echo "### Laufende Engine(s) — Version + Startzeile"
|
||||
gefunden=0
|
||||
for pid in $(pgrep -f 'llama-server' 2>/dev/null | head -3); do
|
||||
exe="$(readlink -f "/proc/$pid/exe" 2>/dev/null)" || continue
|
||||
[ -x "$exe" ] || continue
|
||||
ver="$("$exe" --version 2>&1 | head -1)"
|
||||
echo "- PID $pid — $ver"
|
||||
echo " $(tr '\0' ' ' < "/proc/$pid/cmdline" 2>/dev/null | cut -c1-320)"
|
||||
gefunden=1
|
||||
done
|
||||
[ "$gefunden" = 1 ] || echo "(kein llama-server aktiv — Warm-Set prüfen)"
|
||||
echo
|
||||
|
||||
echo "### Puls-Historie (letzte 2 Erhebungen des Trend-Radars)"
|
||||
tail -2 "$STATE_DIR/trend-radar-puls-history.jsonl" 2>/dev/null || echo "(keine Historie)"
|
||||
echo
|
||||
|
||||
echo "### Watch-Stände (Trend-Radar-State)"
|
||||
python3 -m json.tool "$STATE_DIR/trend-radar-state.json" 2>/dev/null | head -40 || echo "(kein State)"
|
||||
echo
|
||||
|
||||
echo "### Prüfstand: Queue + letzte Verdikte"
|
||||
echo "Queue:"
|
||||
ls "$STATE_DIR/pruefstand/queue" 2>/dev/null || true
|
||||
echo "Fertig (Zusammenfassungen):"
|
||||
for f in "$STATE_DIR"/pruefstand/done/*.json; do
|
||||
case "$f" in *.spec.json) continue ;; esac
|
||||
[ -f "$f" ] || continue
|
||||
python3 - "$f" <<'PY' 2>/dev/null || true
|
||||
import json, os, sys
|
||||
d = json.load(open(sys.argv[1]))
|
||||
teile = [f"{k}:{v.get('bestanden')}/{v.get('gesamt')}"
|
||||
for k, v in d.get("zusammenfassung", {}).items()]
|
||||
print(f"- {os.path.basename(sys.argv[1])} ({d.get('erhoben', '?')}): " + " ".join(teile))
|
||||
PY
|
||||
done
|
||||
echo
|
||||
|
||||
echo "### Ressourcen"
|
||||
free -g | sed -n '2p'
|
||||
df -h /srv 2>/dev/null | tail -1
|
||||
df -h / | tail -1
|
||||
echo
|
||||
|
||||
echo "### Fehlerbild (best effort)"
|
||||
tail -5 "$HOME/.hermes/logs/monitoring/error_history.csv" 2>/dev/null || true
|
||||
journalctl --user -u hermes-gateway --since '-7 days' -p warning --no-pager 2>/dev/null | tail -5 || true
|
||||
echo
|
||||
|
||||
echo "### Nachschlagewerke für den Abgleich (per file_read bzw. Browser lesen)"
|
||||
echo "- Verdikte (NICHT neu aufrollen, außer Faktenlage messbar neu): $MC/docs/wissen/VERDIKTE.md"
|
||||
echo "- Watch-Liste (was mechanisch schon überwacht wird): $MC/deploy/trend-radar-watchlist.json"
|
||||
echo "- Community-Messwerte unserer Hardware: https://github.com/hogeheer499-commits/strix-halo-guide"
|
||||
@@ -0,0 +1,33 @@
|
||||
# Stack-Rundumschlag — Auftrag (monatlich am 4., 06:40)
|
||||
|
||||
Du bist Lucys monatlicher Rundumschlag: EIN freier Blick über den ganzen Stack.
|
||||
Die mechanischen Wächter prüfen Bedingungen (neuer Release? Issue zu? HF-Trending?) —
|
||||
DU suchst, was durch dieses Raster fällt: Stealth-Updates ohne Versionssprung,
|
||||
still ausgetauschte Gewichte, neue Verfahren (Spec-Decoding, Kernels, Quant-Formate),
|
||||
frische Community-Messwerte auf unserer Hardware (Strix Halo / Radeon 8060S, 122 GB unified).
|
||||
Lehrbeispiel: Googles Gemma-4-Update vom 15./16.07.2026 kam OHNE Versionssprung —
|
||||
kein Wächter schlug an, erst freie Recherche fand es.
|
||||
|
||||
Vorgehen:
|
||||
|
||||
1. Lies den BEFUND unten: das ist der IST-Stand (Rollen, Engine, Puls, Watch-Stände,
|
||||
Prüfstand, Ressourcen, Fehlerbild). Auffälligkeiten darin gehören in den Bericht.
|
||||
2. Recherchiere im Web (Browser-Werkzeug) TAGESAKTUELL zu jedem Baustein:
|
||||
- die Rollen-Modelle aus dem Befund (Familien: Qwen, GLM, …) — Refreshes, Nachfolger,
|
||||
still neu hochgeladene GGUFs,
|
||||
- llama.cpp (neue Builds/Features seit dem Engine-Stand im Befund),
|
||||
- ROCm und Vulkan auf Strix Halo (gfx1151),
|
||||
- Zed + OpenCode (IDE-Welt am PC), Electron (Lucy-Shell am PC), pocket-tts (Stimme).
|
||||
Suchmuster: „<Baustein> update stealth refresh performance <Monat Jahr>".
|
||||
3. Gleiche jeden Fund mit den Verdikten ab (Pfad im Befund): Entschiedenes NICHT neu
|
||||
aufrollen — AUSSER die Faktenlage hat sich messbar geändert; dann genau DAS melden,
|
||||
mit dem alten Verdikt daneben.
|
||||
4. Bericht in Lucys Stimme, kompakt (höchstens 15 Sätze):
|
||||
(a) Neues draußen, jeweils mit Datum + Quelle,
|
||||
(b) Auffälligkeiten im IST-Stand (Puls-Drift, Fehlerbild, volle Platte …),
|
||||
(c) HÖCHSTENS 3 Empfehlungen — jede mit einem Satz Beleg und dem nächsten Schritt
|
||||
(„Prüfstand-Kandidat einreihen", „Engine-A/B abwarten", „Karte anlegen",
|
||||
„Handarbeit am PC").
|
||||
5. NICHTS selbst umsetzen, nichts installieren, keine Configs anfassen — du empfiehlst,
|
||||
der Commander entscheidet per Klick. Verdient ein Fund einen Prüfstand-Test, sag es
|
||||
ausdrücklich; die Spec legt der Commander oder ein Folgeauftrag an.
|
||||
Reference in New Issue
Block a user