131 lines
5.2 KiB
Markdown
131 lines
5.2 KiB
Markdown
# 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 <id>` 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:<name>` 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 |
|