pi-system/extensions
Raimund Bauer aa1539c744 fix/extensions: rule-enforcer erzwingt Invariante — Orchestrator nie idle während Subagent läuft
Root Cause (log-belegt, 36,6-min-Lücke 15:25–16:01): watch_subagents ist
ein Polling-Tool; die Überwachung lebt nur solange das LLM es neu aufruft.
Eine User-Zwischenfrage riss die Schleife ab, der Orchestrator ging idle.
Der passive Alert-File-Pfad (nur in before_agent_start gelesen) feuert bei
idle nie → Orchestrator schlief 36 min bis der Mensch tippte.

Fix: 30s-Check erkennt laufende Subagenten per Prozessbaum (lebt ein pi-Kind
unter dem tmux-Pane?), nicht per Keyword. Idle + laufender Subagent → aktive
Weckung via pi.sendUserMessage() (löst garantiert einen Turn aus) + ui.notify.
Idle-Erkennung zeitbasiert (45s, > 30s Pollintervall), ctx-unabhängig.

Verifiziert: Syntax, Modul-Load, Handler-Registrierung, Prompt-Injection,
W06, Prozessbaum-Erkennung an echten Sessions. NICHT verifiziert: Live-Weckpfad
(erfordert Orchestrator-Test). Plan: doku/fix-plan-orchestrator-wecker-v2026-06-02-18-19.md
2026-06-02 18:33:02 +02:00
..
arbeitsweise-guard.ts feat/guard: watch_subagents Custom-Tool — proaktiver 30s-Watcher ohne externen Prozess 2026-06-02 12:17:13 +02:00
confirm-deletion.ts feat/init: PiSystem Infrastruktur-Repo mit SubConfirm 2026-06-02 11:53:37 +02:00
default-model.ts feat/init: PiSystem Infrastruktur-Repo mit SubConfirm 2026-06-02 11:53:37 +02:00
rule-enforcer.ts fix/extensions: rule-enforcer erzwingt Invariante — Orchestrator nie idle während Subagent läuft 2026-06-02 18:33:02 +02:00
session-header.ts fix/extensions: setWidget erwartet Factory-Funktion, nicht Widget-Objekt 2026-06-02 15:47:39 +02:00
session-index.ts fix/extensions: setWidget erwartet Factory-Funktion, nicht Widget-Objekt 2026-06-02 15:47:39 +02:00
vision-proxy.ts feat/init: PiSystem Infrastruktur-Repo mit SubConfirm 2026-06-02 11:53:37 +02:00