- AGENTS.md: Regel W10 "Installationen immer delegieren" (npm/npx/pip nie direkt) - AGENTS.md: Kommunikationsstil, Selbst-Lesen verboten, Orchestrator-Scope - AGENTS.md: Session-Start-Checkliste Punkte 5-8 (CrowdBrain, watch_subagents, SubConfirm) - SESSION_HANDOVER.md: Session 2026-06-02 15:27 dokumentiert
6.7 KiB
PiSystem — Session Handover
Diese Datei dient als Kontext-Übergabe zwischen Sessions. Neue Session: Lies diese Datei zuerst.
Projekt: Pi-Orchestrator-Infrastruktur — deterministisch, maschinenübergreifend
Verzeichnis: /media/xray/NEU/Code/PiSystem20260602/
Ziel: Alle Pi-Orchestrator-Infrastrukturkomponenten in einem Git-Repo zentralisieren,
sodass auf jedem Rechner via git clone + ./install.sh exakt derselbe Stand entsteht.
Kein Drift mehr zwischen Maschinen, keine unterschiedlichen Fehlersymptome.
Kontext: Warum dieses Repo
Bisher war die Infrastruktur verteilt auf:
~/bin/Sub*— SubAgenten, SubStatus, SubWatcher~/.pi/agent/extensions/— confirm-deletion, arbeitsweise-guard, etc.~/.pi/agent/memory/— arbeitsweise, subagent-autocheck~/.pi/agent/AGENTS.md— Orchestrator-Instruktionen
Jeder Rechner hatte einen anderen Stand. Das PiSystem-Repo ist die Single Source of Truth.
Architektur des Stasis-Detektors (SubConfirm)
Problem: Der Orchestrator bemerkte nicht, wenn ein Subagent auf Bestätigung wartete.
Ursache: SubWatcher nutzte Keyword-Matching — confirm-deletion.ts-Dialoge wurden nicht erkannt.
Lösung: SubConfirm — prüft alle 30s ob Session-Output stasis ist (unverändert), schreibt
dann den vollständigen Pane-Inhalt in /tmp/.pi-subagent-alert. Die Extension
arbeitsweise-guard.ts zeigt das dem Orchestrator beim nächsten Tool-Call.
Kein Keyword-Matching — der Orchestrator beurteilt selbst.
Datenfluss:
SubConfirm (Bash-Daemon) → /tmp/.pi-subagent-alert → arbeitsweise-guard.ts → Orchestrator
✅ Entscheidungen
| # | Entscheidung | Begründung | Datum |
|---|---|---|---|
| 1 | Stasis-Erkennung statt Keyword-Matching | Genereller, funktioniert für alle Dialog-Typen — nicht nur bekannte | 2026-06-02 |
| 2 | Alert-File-Mechanismus (/tmp/.pi-subagent-alert) |
bestehende Infrastruktur in arbeitsweise-guard.ts, keine neue Komponente nötig | 2026-06-02 |
| 3 | intercom ist kein Shell-Binary |
intercom ist ein Pi-internes Tool (Extension), kein bash-Kommando — SubConfirm nutzt daher Alert-File | 2026-06-02 |
| 4 | SubConfirm via --skip die Orchestrator-Session ausschließen |
Orchestrator-Session soll nicht als Stasis erkannt werden | 2026-06-02 |
| 5 | install.sh idempotent mit Backups | Mehrfaches Ausführen sicher, bestehende Dateien werden mit Timestamp gesichert | 2026-06-02 |
🔜 Nächste Schritte
| # | Aktion | Priorität | Status |
|---|---|---|---|
| 1 | Socket Firewall installieren — npx socket als Pre-Install-Hook für pnpm/npm, via Subagent |
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 | ⬜ |
| 5 | SubConfirm in SubAgenten einbauen: beim ersten SubAgent-Start automatisch starten wenn noch nicht läuft | 5 | ⬜ |
Session: 2026-06-02 11:55
Erreichtes
- Root Cause analysiert: SubWatcher hat
confirm-deletion.ts-Dialoge nicht erkannt weil Keyword-Patterns fehlten — aber Keyword-Matching ist generell der falsche Ansatz - SubConfirm geschrieben (
bin/SubConfirm): Stasis-Detektor, 30s-Intervall, schreibt Pane-Inhalt in Alert-File, kein Keyword-Matching - AGENTS.md erweitert: Neuer Abschnitt "SubConfirm — Reaktionslogik" mit konkreten
tmux send-keys-Befehlen für Yes/No - subagent-autocheck.md aktualisiert: Verweist jetzt auf SubConfirm statt manuelle Befehle
- install.sh erstellt: Deterministisch, idempotent, mit Dry-Run-Modus, prüft Voraussetzungen
- Git-Repo initialisiert: Erster Commit
fb3daab
Offene Fragen
- Forgejo-Repos MyPi und AgentPi enthalten möglicherweise weitere nützliche Infrastruktur die übernommen werden sollte — wurde noch nicht geprüft
- SubConfirm wurde noch nicht auf dem aktuellen Rechner deployed (nur ins Repo geschrieben)
- Autostart von SubConfirm in SubAgenten noch nicht eingebaut
Kontext für nächste Session
Die nächste Session soll:
- Forgejo-Repos MyPi und AgentPi lesen (via CrowdBrain/Forgejo-API)
- Relevante Inhalte ins PiSystem-Repo übernehmen
- Dann Forgejo-Repo
pi-systemanlegen und pushen
Session: 2026-06-02 15:27
Erreichtes
-
pi.ccpn.cc Modell auf
minimax-m3:cloudumgestellt (warkimi-k2.6— down): settings.json + index.html gesetzt, pi-web neugestartet. Modell steht bereit, wird aber aktuell nicht aktiv genutzt. -
Session-Loss-Bug verstanden:
express-sessionin pi-web nutzt In-Memory-Store → nach jedemdocker restart pi-websind alle Sessions weg → WebSocket bekommt 401 → Enter/Senden funktioniert nicht. Workaround:https://pi.ccpn.cc/logto/sign-out→ neu einloggen. -
AGENTS.md erweitert (autorisierte Änderungen durch Orchestrator heute):
- Session-Start-Checkliste Punkte 5–8: CrowdBrain-Skill immer laden, watch_subagents, SubConfirm
- Kommunikationsstil: max. 3–4 Zeilen, keine Tabellen/Zusammenfassungen
- Selbst-Lesen verboten: Orchestrator liest keine Logs/Quellcode selbst
- Orchestrator-Scope: nur tun was explizit beauftragt wurde
- Installationen immer delegieren (W10): npm/npx/pip/apt nie direkt ausführen — immer Subagent
-
confirm-deletion.ts gefixt:
SubAgenten-Aufrufe wurden als Package-Installation erkannt, weil die Aufgabenbeschreibungnpx socketenthielt →SubAgentenzuSAFE_PACKAGE_COMMANDShinzugefügt -
PNPM-Sicherheitssetup: pnpm 11.5.1 installiert, 7-Tage Release-Age-Gating aktiv (
registry.age=7)
Offene Fragen
- Ob
minimax-m3:cloudauf pi.ccpn.cc stabil läuft muss noch bestätigt werden (Frontend nach Login testen) - 5 weitere PNPM-Sicherheitstipps aus Video noch nicht umgesetzt (Block Git-Dependencies, Socket Firewall, Pre-Install-Audit, etc.)
- Socket Firewall Installation abgebrochen — noch ausständig
Wichtige Pfade (Server: agentserver 116.203.222.129:2222, User: xray)
- Pi-Web Quellcode:
/home/xray/pi-web/(server.js, public/index.html) - Pi-Web Container:
pi-web(docker) - Pi-Agent Container:
pi-agent(docker, teilt Volume/home/xray/.pi) - Settings (shared Volume):
/home/xray/.pi/agent/settings.json - SSH:
ssh -o ControlPath=~/.ssh/sockets/xray@116.203.222.129-2222 agentserver "<cmd>"
Kontext für nächste Session
- Zuerst: pi-web Session-Store auf SQLite umstellen (Priorität 1 — wiederkehrender Schmerz)
- Dann Socket Firewall via Subagent installieren
- Nach jedem pi-web-Neustart bis zum Fix:
https://pi.ccpn.cc/logto/sign-out→ neu einloggen