fix/guard: tail-1 → tail-5 — Orchestrator sieht jetzt Bestätigungs-Dialoge in Subagenten

Root Cause: tmuxSubagentenStatus() holte nur die letzte Zeile (tail -1),
das war immer der Pi-Status-Bar, nie der Dialog-Inhalt. Jetzt tail -5
mit expliziter Dialog-Erkennung (Erlauben?, → Yes, ACHTUNG:).
This commit is contained in:
Raimund Bauer 2026-06-02 12:03:41 +02:00
parent 71bb9893c2
commit 3e4e1a4bff

View file

@ -165,16 +165,20 @@ function tmuxSubagentenStatus(): string | null {
const lines = sessions.map((name) => {
try {
const lastLine = execSync(
`tmux capture-pane -t '${name}' -p 2>/dev/null | grep -v '^[[:space:]]*$' | tail -1`,
`tmux capture-pane -t '${name}' -p 2>/dev/null | grep -v '^[[:space:]]*$' | tail -5`,
{ encoding: "utf-8", timeout: 1000 },
).trim().slice(0, 100);
).trim().slice(0, 500);
// W03: Beendete Sessions erkennen und explizit markieren.
if (lastLine.includes("Pi beendet") || lastLine.includes("=== Pi beendet ===") || lastLine.includes("Fenster kann geschlossen werden")) {
fertigSessions.push(name);
return `${name}: ✅ FERTIG → tmux kill-session -t ${name}`;
}
return `${name}: ${lastLine || "(leer)"}`;
// Dialog-Erkennung: Erlauben/Ablehnen-Prompt sichtbar machen.
if (lastLine.includes("Erlauben?") || lastLine.includes("→ Yes") || lastLine.includes("navigate") || lastLine.includes("ACHTUNG:")) {
return `${name} ⚠️ WARTET AUF BESTÄTIGUNG:\n${lastLine.split("\n").map(l => ` ${l}`).join("\n")}`;
}
return `${name}: ${lastLine.split("\n").pop() || "(leer)"}`;
} catch {
return `${name}`;
}