#!/bin/bash # SubStatus — Subagent-Status-Übersicht (W04) # # Zeigt alle laufenden tmux-Sessions mit Status + letztem Output. # Markiert beendete Sessions mit Kill-Befehl. # Kombiniert tmux ls + intercom list in einer Übersicht. # # Nutzung: SubStatus echo "=== Subagent-Status $(date '+%H:%M:%S') ===" echo "" SESSIONS=$(tmux ls -F '#{session_name}|#{session_attached}' 2>/dev/null || echo "") if [ -z "$SESSIONS" ]; then echo " (keine aktiven tmux-Sessions)" echo "" else echo "── tmux-Sessions ──────────────────────────────────────────" FERTIG_SESSIONS=() while IFS='|' read -r name attached; do LAST=$(tmux capture-pane -t "$name" -p 2>/dev/null | grep -v '^[[:space:]]*$' | tail -1 | cut -c1-80) ATTACH_SYMBOL=" " [ "$attached" = "1" ] && ATTACH_SYMBOL="[W]" if echo "$LAST" | grep -qE "Pi beendet|Fenster kann geschlossen werden"; then echo " [FERTIG] $name" echo " last: $LAST" FERTIG_SESSIONS+=("$name") else echo " $ATTACH_SYMBOL $name" echo " last: ${LAST:-(leer)}" fi echo "" done <<< "$SESSIONS" if [ ${#FERTIG_SESSIONS[@]} -gt 0 ]; then echo "── Fertige Sessions schliessen ─────────────────────────────" for s in "${FERTIG_SESSIONS[@]}"; do echo " tmux kill-session -t $s" done echo "" fi fi echo "── intercom ────────────────────────────────────────────────" intercom list 2>/dev/null || echo " (intercom nicht verfügbar)" echo ""