From e0dc6040f031fc21b8c7887a8914f877a18a2fc0 Mon Sep 17 00:00:00 2001 From: Raimund Bauer Date: Tue, 2 Jun 2026 15:31:42 +0200 Subject: [PATCH] docs/fix: AGENTS.md Regeln W10 + confirm-deletion SubAgenten-Whitelist - 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 --- SESSION_HANDOVER.md | 52 +++++++++++++++++++++++++++++++++++++++------ agent/AGENTS.md | 3 ++- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/SESSION_HANDOVER.md b/SESSION_HANDOVER.md index ba6577e..6036df3 100644 --- a/SESSION_HANDOVER.md +++ b/SESSION_HANDOVER.md @@ -57,12 +57,11 @@ SubConfirm (Bash-Daemon) → /tmp/.pi-subagent-alert → arbeitsweise-guard.ts | # | Aktion | Priorität | Status | |---|---|---|---| -| 1 | Repo auf Forgejo pushen (neues Repo `pi-system` anlegen) | 1 (sofort) | ⬜ | -| 2 | Forgejo-Repos **MyPi** und **AgentPi** prüfen — nützliche Inhalte übernehmen | 1 (sofort) | ⬜ | -| 3 | SubConfirm auf aktuellem Rechner deployen: `cp bin/SubConfirm ~/bin/ && chmod +x ~/bin/SubConfirm` | 2 | ⬜ | -| 4 | AGENTS.md auf aktuellem Rechner deployen: `./install.sh` (nur AGENTS.md + memory) | 2 | ⬜ | -| 5 | SubConfirm in SubAgenten einbauen: beim ersten SubAgent-Start automatisch starten wenn noch nicht läuft | 3 | ⬜ | -| 6 | Auf zweitem/drittem Rechner: `git clone && ./install.sh` testen | 3 | ⬜ | +| 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 | ⬜ | --- @@ -89,3 +88,44 @@ Die nächste Session soll: 1. Forgejo-Repos MyPi und AgentPi lesen (via CrowdBrain/Forgejo-API) 2. Relevante Inhalte ins PiSystem-Repo übernehmen 3. Dann Forgejo-Repo `pi-system` anlegen und pushen + +--- + +## Session: 2026-06-02 15:27 + +### Erreichtes + +- **pi.ccpn.cc Modell auf `minimax-m3:cloud` umgestellt** (war `kimi-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-session` in pi-web nutzt In-Memory-Store → nach jedem `docker restart pi-web` sind 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 Aufgabenbeschreibung `npx socket` enthielt → `SubAgenten` zu `SAFE_PACKAGE_COMMANDS` hinzugefügt + +- **PNPM-Sicherheitssetup:** pnpm 11.5.1 installiert, 7-Tage Release-Age-Gating aktiv (`registry.age=7`) + +### Offene Fragen + +- Ob `minimax-m3:cloud` auf 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 ""` + +### Kontext für nächste Session + +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 diff --git a/agent/AGENTS.md b/agent/AGENTS.md index cdfb721..b1f0769 100644 --- a/agent/AGENTS.md +++ b/agent/AGENTS.md @@ -48,7 +48,8 @@ Zu Beginn einer komplexen Aufgabe (bevor eigene Lösungen gebaut werden): 2. **Globale Befehle prüfen:** `ls /usr/local/bin/` zeigt verfügbare Shell-Kommandos 3. **Skillerweiterungen prüfen:** `~/.pi/agent/skills/intercom-cheatsheet/` für pi-intercom-Kurzreferenz 4. **CrowdBrain CLI-Referenz prüfen:** Enthält alle registrierten globalen Befehle -5. **Speech-Glossar (bei Bedarf):** `~/.pi/agent/memory/speech-glossar.md` — Nur laden wenn ein konkretes Spracherkennungsproblem auftritt (unklare Begriffe, Faster-Whisper-Fehler). Ansonsten ignorieren. +5. **CrowdBrain Skill laden (PFLICHT):** `~/.pi/agent/skills/crowdbrain/SKILL.md` — IMMER laden, nicht nur bei Bedarf. CrowdBrain ist die primäre Wissensquelle für Server, Dienste, Secrets, Prozesse, TODOs, Skills und interne Abläufe. Vor jeder Internet-Suche zu internen Themen zuerst CrowdBrain konsultieren. +6. **Speech-Glossar (bei Bedarf):** `~/.pi/agent/memory/speech-glossar.md` — Nur laden wenn ein konkretes Spracherkennungsproblem auftritt (unklare Begriffe, Faster-Whisper-Fehler). Ansonsten ignorieren. 6. **Arbeitsweise laden:** `~/.pi/agent/memory/arbeitsweise.md` — Orchestrator + SubAgenten-Workflow. Der Orchestrator delegiert alle Arbeiten, SubAgenten speichern Ergebnisse in aufgabenspezifischen Unterverzeichnissen.