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) => { const lines = sessions.map((name) => {
try { try {
const lastLine = execSync( 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 }, { encoding: "utf-8", timeout: 1000 },
).trim().slice(0, 100); ).trim().slice(0, 500);
// W03: Beendete Sessions erkennen und explizit markieren. // W03: Beendete Sessions erkennen und explizit markieren.
if (lastLine.includes("Pi beendet") || lastLine.includes("=== Pi beendet ===") || lastLine.includes("Fenster kann geschlossen werden")) { if (lastLine.includes("Pi beendet") || lastLine.includes("=== Pi beendet ===") || lastLine.includes("Fenster kann geschlossen werden")) {
fertigSessions.push(name); fertigSessions.push(name);
return `${name}: ✅ FERTIG → tmux kill-session -t ${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 { } catch {
return `${name}`; return `${name}`;
} }