From 88bc53c307076b6d2eaa08f9ca37d311e874c14c Mon Sep 17 00:00:00 2001 From: Raimund Bauer Date: Tue, 2 Jun 2026 16:03:31 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20Session=20Handover=202026-06-02=2015:56?= =?UTF-8?q?=20=E2=80=94=20Regel-Enforcement=20und=20Extension-Fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SESSION_HANDOVER.md | 78 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/SESSION_HANDOVER.md b/SESSION_HANDOVER.md index 6036df3..607b577 100644 --- a/SESSION_HANDOVER.md +++ b/SESSION_HANDOVER.md @@ -57,7 +57,7 @@ SubConfirm (Bash-Daemon) → /tmp/.pi-subagent-alert → arbeitsweise-guard.ts | # | Aktion | Priorität | Status | |---|---|---|---| -| 1 | **Socket Firewall installieren** — `npx socket` als Pre-Install-Hook für pnpm/npm, via Subagent | 1 | ⬜ | +| 1 | **Socket Firewall installieren** — `npx socket` als Pre-Install-Hook für pnpm/npm, via Subagent (`socket-firewall-install/` Ordner liegt bereits im Repo, noch uncommitted) | 1 | ⬜ | | 2 | Verbleibende 5 PNPM-Sicherheitstipps aus Video umsetzen (Block Git-Dependencies, etc.) | 2 | ⬜ | | 3 | **pi-web Session-Store auf SQLite umstellen** — `connect-sqlite3`, DB `/root/.pi-web/sessions.db` (keine Eile, Workaround: sign-out → sign-in) | 3 | ⬜ | | 4 | Forgejo-Repos **MyPi** und **AgentPi** prüfen — nützliche Inhalte ins PiSystem-Repo übernehmen | 4 | ⬜ | @@ -129,3 +129,79 @@ Die nächste Session soll: 1. **Zuerst:** pi-web Session-Store auf SQLite umstellen (Priorität 1 — wiederkehrender Schmerz) 2. Dann Socket Firewall via Subagent installieren 3. Nach jedem pi-web-Neustart bis zum Fix: `https://pi.ccpn.cc/logto/sign-out` → neu einloggen + +--- + +## Session: 2026-06-02 15:33 — Session-Abbruch wegen Kontext-Durcheinander + +### Was passiert ist + +Claude hat in dieser Session angefangen, pnpm-bezogene Arbeiten (Socket Firewall) fortzuführen, obwohl der Benutzer das Gespräch neu begonnen hatte. Der Benutzer hat das Durcheinander bemerkt und die Session sauber beendet. + +**Keine Code-Änderungen wurden in dieser Session gemacht.** + +### Uncommitted Ordner im Repo (git status) + +``` +?? socket-firewall-install/ # Arbeitsergebnis aus Session 15:27 — noch nicht committed +?? terminal-flackern-analyse/ # Analyse-Ordner — noch nicht committed +``` + +Diese Ordner müssen in der nächsten Session entweder committed oder entschieden werden. + +### Kontext für nächste Session + +**Diese Datei zuerst lesen**, dann: + +1. **`socket-firewall-install/` prüfen** — was ist drin? Wenn fertig → committen. Wenn unvollständig → Socket Firewall via Subagent fertigstellen (Priorität 1 aus Nächste-Schritte-Tabelle oben). +2. **`terminal-flackern-analyse/` prüfen** — relevanter Inhalt? Wenn ja committen, sonst löschen. +3. Weiter nach der Prioritätsliste oben (pi-web Session-Store, PNPM-Sicherheitstipps, etc.) + +**Wichtige Erinnerung:** Nächste Session MIT DEM RICHTIGEN PROJEKT starten — immer zuerst diese Datei lesen: `/media/xray/NEU/Code/PiSystem20260602/SESSION_HANDOVER.md` + +--- + +## Session: 2026-06-02 15:56 — Regel-Enforcement und Extension-Fixes + +### Erreichtes + +- **Repo bereinigt:** `socket-firewall-install/`, `terminal-flackern-analyse/`, `pi-web-session-debug/` aus dem Repo-Verzeichnis nach `/media/xray/NEU/Code/20260602/` verschoben — diese Ordner gehören nicht ins Pi-System-Repo + +- **Extension-Bug gefixt** (`session-header.ts` + `session-index.ts`): Pi's `setWidget`-API erwartet als zweiten Parameter eine Factory-Funktion `(_ui, theme) => widget`, nicht direkt das Widget-Objekt. Beide Extensions übergaben direkt `makeWidget(...)` → "content is not a function". Fix: alle `setWidget`-Aufrufe auf `(_ui, theme) => makeWidget(...)` umgestellt. Deployed + committed. + +- **AGENTS.md: 5 neue Regeln dokumentiert** (W06–W10): + - **W06** Kein internes Deliberieren ("Let me check...", "Actually...", "Weil ich...") in User-Output + - **W07** Subagenten-Strategie nie eigenständig aufgeben — Benutzer informieren, auf Anweisung warten + - **W08** Erlaubte Edit-Pfade: nur `~/.pi/agent/` und CWD direkt editierbar, `~/.bashrc` etc. immer via Subagent + - **W09** `sleep` in jeder Form verboten — `watch_subagents` nutzen + - **W10** Subagent nie doppelt starten — einmal starten, dann warten + +- **Neue Extension `rule-enforcer.ts`** deployed nach `~/.pi/agent/extensions/`: + - `before_agent_start`: injiziert W06–W10 + WATCH-Regel in **jeden** System-Prompt-Turn (nicht nur beim Session-Start) + - `message_end`: scannt Pi's Ausgabe auf Deliberations-Muster, setzt Korrektur-Flag für nächsten Turn + - `setInterval` 30s: Background-Check auf tmux-Bestätigungs-Dialoge, unabhängig von Pi's Tool-Calls → schreibt in `/tmp/.pi-subagent-alert` + - `before_agent_start` liest Alert-File und zeigt 🚨-Hinweis prominent im System-Prompt + +### Entscheidungen + +| # | Entscheidung | Begründung | Datum | +|---|---|---|---| +| 6 | rule-enforcer.ts als eigene Extension statt arbeitsweise-guard.ts-Erweiterung | Trennung der Verantwortlichkeiten: arbeitsweise-guard blockiert Tools, rule-enforcer enforced Output-Verhalten | 2026-06-02 | +| 7 | setInterval 30s in Extension statt nur SubConfirm | SubConfirm kann nicht laufen — Extension läuft immer im Pi-Prozess | 2026-06-02 | +| 8 | before_agent_start systemPrompt-Injection statt nur AGENTS.md | AGENTS.md wird einmal beim Start geladen, before_agent_start feuert bei jedem Turn — Regeln bleiben im Context-Window frisch | 2026-06-02 | + +### Noch nicht getestet + +- `rule-enforcer.ts` wurde noch **nicht live getestet** — Pi muss neu gestartet werden damit die Extension geladen wird +- Ob der W06-Scan die richtigen Phrases erkennt ohne False Positives muss im Betrieb validiert werden +- Ob `before_agent_start` systemPrompt wirklich appended (nicht replaced) muss beim ersten Start beobachtet werden + +### Kontext für nächste Session + +**Sofort nach Session-Start:** +1. Pi neu starten (damit `rule-enforcer.ts` geladen wird): `OrchestratorPi` aufrufen +2. Beobachten ob W06-Violations weniger werden — wenn rule-enforcer falsch-positive erzeugt: Muster in `DELIBERATIONS_MUSTER` Array anpassen ([extensions/rule-enforcer.ts](extensions/rule-enforcer.ts) Zeile ~50) + +**Danach:** +3. pi-web Session-Store auf SQLite umstellen (wiederkehrender Schmerz — nach jedem `docker restart pi-web` müssen User sich neu einloggen) +4. Forgejo-Repos MyPi und AgentPi prüfen — nützliche Inhalte ins PiSystem-Repo übernehmen