From d2fcc59f7adfb9ad77a5c2eab3056b7c3bb88a16 Mon Sep 17 00:00:00 2001 From: Bernd Steckmeister Date: Fri, 3 Jul 2026 06:32:08 +0200 Subject: [PATCH] feat: Matrix-Statusberichte nach jeder Autopilot-Session MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nach jeder Session mit neuen Commits postet der Autopilot Commits + nächsten Schritt in den Raum '🔺 Pyramid Autopilot' (Token vom Gatus-Bot, nur auf dem Pi). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01CPrAGBxBT6GfPXzeWQ4AXb --- autopilot.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/autopilot.sh b/autopilot.sh index 31f9947..2709b86 100755 --- a/autopilot.sh +++ b/autopilot.sh @@ -9,6 +9,21 @@ cd "$(dirname "$0")" export PATH="$HOME/.local/bin:$HOME/flutter/bin:$PATH" +# --- Matrix-Statusberichte (Raum "🔺 Pyramid Autopilot", Token vom Gatus-Bot) --- +MATRIX_URL="http://127.0.0.1:6167" +MATRIX_ROOM="!sYfOwD4Dw4jBDTlNmL:steggi-matrix.work" +MATRIX_TOKEN="$(grep -s '^MATRIX_TOKEN=' "$HOME/gatus/.env" | cut -d= -f2-)" + +notify_matrix() { + [ -z "$MATRIX_TOKEN" ] && return 0 + local body + body=$(python3 -c 'import json,sys; print(json.dumps({"msgtype":"m.text","body":sys.stdin.read().strip()}))' <<< "$1") + curl -s -m 10 -X PUT \ + "$MATRIX_URL/_matrix/client/v3/rooms/$MATRIX_ROOM/send/m.room.message/autopilot$(date +%s%N)" \ + -H "Authorization: Bearer $MATRIX_TOKEN" -H "Content-Type: application/json" \ + -d "$body" > /dev/null || true +} + PROMPT="Lies CLAUDE.md und arbeite ROADMAP.md Punkt für Punkt weiter ab. \ Halte dich strikt an den Arbeitszyklus (PROGRESS.md pflegen, kleine Commits + Push). \ Arbeite so viele Punkte ab wie möglich." @@ -20,7 +35,19 @@ while true; do continue fi echo "===== $(date '+%F %T') Neue Claude-Session =====" | tee -a autopilot.log + BEFORE=$(git rev-parse HEAD 2>/dev/null) claude -p "$PROMPT" --dangerously-skip-permissions 2>&1 | tee -a autopilot.log + AFTER=$(git rev-parse HEAD 2>/dev/null) + if [ -n "$BEFORE" ] && [ "$BEFORE" != "$AFTER" ]; then + COMMITS=$(git log --oneline --no-decorate "$BEFORE..$AFTER" | head -15) + NEXT=$(grep -m1 -A3 "Offen/Nächster Schritt" PROGRESS.md) + notify_matrix "🔺 Pyramid-Autopilot $(date '+%H:%M') – Session fertig. + +Neue Commits: +$COMMITS + +$NEXT" + fi echo "===== $(date '+%F %T') Session beendet - Neustart in 20 Minuten (Strg+C zum Stoppen) =====" | tee -a autopilot.log sleep 1200 done