# DisClaw — Kanban Board > **Regeln**: Status nur in der Issue-Datei (`tasks/DIS-XXX.md`) ändern, dann hier die Karte verschieben. > Developer-Agent nimmt eine "Ready"-Karte, setzt Status auf `in-progress`, erstellt Branch, öffnet PR. > PM-Agent (oder User) reviewt PR und setzt Status auf `done`. Letzte Aktualisierung: 2026-04-10 --- ## Backlog *Noch nicht startbar — Abhängigkeiten offen oder Phase noch nicht freigegeben.* | ID | Titel | Phase | Branch | Blockiert durch | |----|-------|-------|--------|-----------------| | — | | | | | --- ## Ready *Startbereit — kein Blocker. Agent kann Branch anlegen und loslegen.* | ID | Titel | Phase | Branch | Priorität | |----|-------|-------|--------|-----------| | — | | | | | --- ## In Progress *Branch existiert, Developer-Agent arbeitet aktiv daran.* | ID | Titel | Branch | Agent | Gestartet | |----|-------|--------|-------|-----------| | — | | | | | --- ## In Review *PR ist offen, wartet auf Review.* | ID | Titel | PR | Reviewer | |----|-------|----|----------| | — | | | | --- ## Done — Phase 0 (Security Hardening) *Gemergt in `main`.* | ID | Titel | Gemergt | PR | |----|-------|---------|----| | [DIS-001](DIS-001.md) | Workspace-Root nach `~/.disclaw/workspaces/` | 2026-04-08 | — | | [DIS-002](DIS-002.md) | `shell: false` + `cross-spawn` Windows-Fix | 2026-04-08 | — | | [DIS-003](DIS-003.md) | `sanitizedEnv()` — Secrets aus Child-Env entfernen | 2026-04-08 | — | | [DIS-004](DIS-004.md) | Runner: `--bare` entfernt (OAuth-Fix) | 2026-04-09 | #32 | | [DIS-005](DIS-005.md) | Path-Traversal-Check in `/new-agent` | 2026-04-08 | — | | [DIS-006](DIS-006.md) | `.claude/settings.json`-Template härten | 2026-04-08 | — | | [DIS-007](DIS-007.md) | Lock-File gegen Doppelstart | 2026-04-08 | — | | [DIS-008](DIS-008.md) | Forgejo Actions CI | 2026-04-08 | — | --- ## Done — Phase 1 (Solides MVP) *Gemergt in `main`.* | ID | Titel | Gemergt | PR | |----|-------|---------|----| | [DIS-101](DIS-101.md) | Pino-Logger einführen, `console.*` ersetzen | 2026-04-10 | #45 | | [DIS-102](DIS-102.md) | `sanitizeForDiscord` — Pfade redaktieren | 2026-04-10 | #46 | | [DIS-103](DIS-103.md) | `ChannelQueue` — Per-Channel-FIFO | 2026-04-10 | #48 | | [DIS-104](DIS-104.md) | Globaler Semaphore (`max_concurrent_agents`) | 2026-04-10 | #44 | | [DIS-105](DIS-105.md) | `splitForDiscord` — Codeblock-aware Splitting | 2026-04-10 | #47 | | [DIS-106](DIS-106.md) | Runner-API-Refactoring → `RunResult`-Typ | 2026-04-10 | #51 | | [DIS-107](DIS-107.md) | Zod-Schemas für Config, `agent.yaml`, CLI-Output | 2026-04-10 | #49 | | [DIS-108](DIS-108.md) | DB-Schema SSOT → `src/db/schema.sql` | 2026-04-10 | #50 | | [DIS-109](DIS-109.md) | `.env.example` + Vitest-Setup + `npm test` | 2026-04-10 | #42 | | [DIS-110](DIS-110.md) | `docs/cli-feature-probe.md` — CLI-Regression-Script | 2026-04-10 | #43 | --- ## Epics (Phase 1.5 Refinement + Phase 2–6+) *Werden am Phasen-Anfang in granulare Issues verfeinert.* | Epic | Titel | Phase | Status | |------|-------|-------|--------| | DIS-EP-150 | Phase-1.5 Refinement (QoL) | 1.5 | **planning** | | [DIS-EP-201](EPICS.md#dis-ep-201) | DB-Migration + `SessionStore`-Methoden | 2 | locked | | [DIS-EP-202](EPICS.md#dis-ep-202) | Runner-Integration `--resume` mit Fallback | 2 | locked | | [DIS-EP-203](EPICS.md#dis-ep-203) | Usage-Metriken + `agent_runs`-Tabelle | 2 | locked | | [DIS-EP-204](EPICS.md#dis-ep-204) | Integration-Tests Session-Resume + Fork-Case | 2 | locked | | [DIS-EP-301](EPICS.md#dis-ep-301) | Typing-Refresh + `sendResponse`-Helper | 3 | locked | | [DIS-EP-302](EPICS.md#dis-ep-302) | Attachment-Inbox für Discord-Bilder | 3 | locked | | [DIS-EP-303](EPICS.md#dis-ep-303) | Input-Limit + User-Feedback-Reactions | 3 | locked | | [DIS-EP-304](EPICS.md#dis-ep-304) | Tests send-response + Attachment-Inbox | 3 | locked | | [DIS-EP-401](EPICS.md#dis-ep-401) | Profile-Registry-Grundgerüst | 4 | locked | | [DIS-EP-402](EPICS.md#dis-ep-402) | Fünf Profile (developer/researcher/writer/ops/sandboxed) | 4 | locked | | [DIS-EP-403](EPICS.md#dis-ep-403) | `/new-agent profile:` Option | 4 | locked | | [DIS-EP-404](EPICS.md#dis-ep-404) | PreToolUse-Hook `guard-tool.cjs` + Audit-Log | 4 | locked | | [DIS-EP-405](EPICS.md#dis-ep-405) | Integration-Tests Hook-Guard + Profile-Permissions | 4 | locked | | [DIS-EP-501](EPICS.md#dis-ep-501) | `runAgentStream()` mit `stream-json` | 5 | locked | | [DIS-EP-502](EPICS.md#dis-ep-502) | Defensiver NDJSON-Event-Parser | 5 | locked | | [DIS-EP-503](EPICS.md#dis-ep-503) | `stream-to-discord` — Edit-Debouncing | 5 | locked | | [DIS-EP-504](EPICS.md#dis-ep-504) | Feature-Flag + Fallback + Integration-Tests | 5 | locked |