# DisClaw — Epics (Phase 2–6+) > Diese Epics werden am **Anfang jeder Phase** in granulare Issues verfeinert (analog zu Phase 0/1 im Backlog). > Bis dahin ist der Status `locked` — kein Branch, keine Entwicklung. > Freigabe durch explizite Entscheidung des Users nach Phasen-Abschluss. --- ## Phase 2 — Context-Effizienz (`--resume`) Voraussetzung: Phase 0 + Phase 1 vollständig gemergt. `docs/cli-feature-probe.md` ausgeführt und `--resume`-Verhalten bestätigt. ### DIS-EP-201 **DB-Migration + `SessionStore`-Methoden** Neue Spalte `session_id` in `workspaces`-Tabelle. `SessionStore`-Klasse mit `get/set/clear`-Methoden. Branch-Pattern wenn verfeinert: `phase-2/session-store` ### DIS-EP-202 **Runner-Integration `--resume` mit DB-Fallback** `runner.ts` hängt `--resume ` an wenn `session_id` vorhanden. Fallback: strukturierte DB-Rehydrierung mit role-getaggten Turns. ID wird nach jedem Run aus JSON top-level gelesen und in DB aktualisiert. Branch-Pattern: `phase-2/runner-resume` ### DIS-EP-203 **Usage-Metriken Logging + `agent_runs`-Tabelle** Cache-Hit-Statistiken aus CLI-Output extrahieren (falls verfügbar). `agent_runs`-Tabelle für Token-Tracking. Branch-Pattern: `phase-2/usage-metrics` ### DIS-EP-204 **Integration-Tests Session-Resume + Fork-Case** Tests die `--resume`-Flow end-to-end verifizieren: erfolgreicher Resume, Session nicht gefunden (Fallback), Fork-Case (neue ID nach Resume). Branch-Pattern: `phase-2/session-tests` --- ## Phase 3 — UX-Feinschliff Voraussetzung: Phase 2 abgeschlossen. ### DIS-EP-301 **Typing-Refresh 8s + `sendResponse`-Helper + Attachment-Fallback** Bot zeigt „tippt…" an solange Claude arbeitet, refresht alle 8s. `sendResponse(channel, text)`-Helper kapselt Split + Sanitize + Send. Branch-Pattern: `phase-3/typing-send-helper` ### DIS-EP-302 **Attachment-Inbox für eingehende Discord-Bilder** Bilder aus Discord-Attachments werden in einen tmp-Ordner des Workspace-Agents gespeichert und via `@path/to/file.png`-Syntax in den Prompt injiziert. Branch-Pattern: `phase-3/attachment-inbox` ### DIS-EP-303 **Input-Limit + User-Feedback-Reactions** Nachrichten > konfigurierbares Limit werden abgewiesen. Reaction-Feedback: 👀 (verarbeitung), ✅ (erfolg), ❌ (fehler), ⚠️ (timeout). Branch-Pattern: `phase-3/input-limit-reactions` ### DIS-EP-304 **Unit-Tests `sendResponse` + Attachment-Inbox** Vollständige Unit-Test-Abdeckung für Phase-3-Komponenten. Branch-Pattern: `phase-3/ux-tests` --- ## Phase 4 — Skills und Permissions (Profile) Voraussetzung: Phase 3 abgeschlossen. ### DIS-EP-401 **Profile-Registry-Grundgerüst** `src/agent/profiles/registry.ts` mit `ProfileRegistry`-Interface und Lade-Mechanismus aus `src/agent/profiles/*.ts`. Branch-Pattern: `phase-4/profile-registry` ### DIS-EP-402 **Fünf Profile: developer, researcher, writer, ops, sandboxed** Konkrete Profile mit je angepasstem `.claude/settings.json`-Template und CLAUDE.md-Abschnitt. Branch-Pattern: `phase-4/profiles-builtin` ### DIS-EP-403 **`/new-agent profile:` Option** `/new-agent name:x role:y profile:developer` nutzt das Profile-Template statt des Default. Branch-Pattern: `phase-4/new-agent-profile-option` ### DIS-EP-404 **PreToolUse-Hook `guard-tool.cjs` + Audit-Log** Node.js-Script das als Hook vor Tool-Calls ausgeführt wird. Prüft gegen Deny-Liste, schreibt Audit-Log. Branch-Pattern: `phase-4/pretooluse-hook` ### DIS-EP-405 **Integration-Tests Hook-Guard + Profile-Permissions** Tests für Hook-Script und Profile-Settings-Rendering. Branch-Pattern: `phase-4/profile-tests` --- ## Phase 5 — Streaming Voraussetzung: Phase 4 abgeschlossen. ### DIS-EP-501 **`runAgentStream()` mit `--output-format stream-json`** Parallele Runner-Implementierung die NDJSON-Stream vom CLI konsumiert. Flags: `--verbose --include-partial-messages`. Branch-Pattern: `phase-5/runner-stream` ### DIS-EP-502 **Defensiver NDJSON-Event-Parser** `src/agent/stream-parser.ts` mit versioniertem Event-Dispatch, defensivem Parsing, Fallback bei unbekannten Event-Typen. Branch-Pattern: `phase-5/stream-parser` ### DIS-EP-503 **`stream-to-discord` — Edit-Debouncing 1200ms, Rollover bei 1900 Zeichen** Discord-Nachricht wird inkrementell editiert während Claude schreibt. Min. 1200ms zwischen Edits. Neue Nachricht bei Überlauf. Branch-Pattern: `phase-5/stream-to-discord` ### DIS-EP-504 **Feature-Flag + Fallback + Integration-Tests** `disclaw.yaml` → `streaming: false` (Default). Graceful Fallback auf Bulk-Send bei Streaming-Fehlern. Integration-Tests. Branch-Pattern: `phase-5/streaming-flag-tests` --- ## Phase 6+ — Zukunft (Platzhalter) Noch nicht geschätzt, nicht priorisiert. Ideen aus `docs/development-plan.md` §6+. | Thema | Kurzbeschreibung | |-------|-----------------| | Agent-zu-Agent-Kommunikation | Agenten können einander Aufgaben delegieren via Discord-Mentions | | `/list-agents`, `/delete-agent` | Management-Channel-Befehle für Workspace-Verwaltung | | Web-Dashboard | Browser-UI für Agenten-Übersicht, Konversationen, Nutzung | | Docker-Isolation | Jeder Agent-Workspace in eigenem Container | | Automatische Workspace-Migration | Migration bestehender `./workspaces/`-Ordner zu neuem Root | | Multi-Guild-Support | Ein DisClaw-Bot für mehrere Discord-Server | | MCP-Server pro Workspace | Workspace-spezifische MCP-Konfiguration aktivierbar |