docs: Session Handover 2026-06-02 15:56 — Regel-Enforcement und Extension-Fixes

This commit is contained in:
Raimund Bauer 2026-06-02 16:03:31 +02:00
parent fed300c170
commit 88bc53c307

View file

@ -57,7 +57,7 @@ SubConfirm (Bash-Daemon) → /tmp/.pi-subagent-alert → arbeitsweise-guard.ts
| # | Aktion | Priorität | Status | | # | 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 | ⬜ | | 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 | ⬜ | | 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 | ⬜ | | 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) 1. **Zuerst:** pi-web Session-Store auf SQLite umstellen (Priorität 1 — wiederkehrender Schmerz)
2. Dann Socket Firewall via Subagent installieren 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 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** (W06W10):
- **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 W06W10 + 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