From 722d85c2a5c151c02d29035b9699f6910a8c7ed0 Mon Sep 17 00:00:00 2001 From: Nick Tabeling Date: Fri, 10 Apr 2026 10:42:16 +0200 Subject: [PATCH] =?UTF-8?q?chore:=20update=20task=20board=20=E2=80=94=20Ph?= =?UTF-8?q?ase=200=20and=20Phase=201=20marked=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All DIS-001 through DIS-110 set to status:done with merge dates. BOARD.md reorganized with Done sections per phase. Phase 1.5 Refinement epic added as planning placeholder. Co-Authored-By: Claude Sonnet 4.6 --- tasks/BOARD.md | 55 ++++++++++++++++++++++++++++-------------------- tasks/DIS-001.md | 6 +++--- tasks/DIS-002.md | 6 +++--- tasks/DIS-003.md | 6 +++--- tasks/DIS-004.md | 6 +++--- tasks/DIS-005.md | 6 +++--- tasks/DIS-006.md | 6 +++--- tasks/DIS-007.md | 6 +++--- tasks/DIS-008.md | 6 +++--- tasks/DIS-101.md | 6 +++--- tasks/DIS-102.md | 6 +++--- tasks/DIS-103.md | 6 +++--- tasks/DIS-104.md | 6 +++--- tasks/DIS-105.md | 6 +++--- tasks/DIS-106.md | 6 +++--- tasks/DIS-107.md | 6 +++--- tasks/DIS-108.md | 6 +++--- tasks/DIS-109.md | 6 +++--- tasks/DIS-110.md | 6 +++--- 19 files changed, 86 insertions(+), 77 deletions(-) diff --git a/tasks/BOARD.md b/tasks/BOARD.md index 953fb43..efcec4f 100644 --- a/tasks/BOARD.md +++ b/tasks/BOARD.md @@ -4,7 +4,7 @@ > 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-08 +Letzte Aktualisierung: 2026-04-10 --- @@ -13,33 +13,16 @@ Letzte Aktualisierung: 2026-04-08 | ID | Titel | Phase | Branch | Blockiert durch | |----|-------|-------|--------|-----------------| -| [DIS-004](DIS-004.md) | Runner: `--bare` + `--append-system-prompt-file` | 0 | `phase-0/bare-and-append-identity` | DIS-002 | -| [DIS-007](DIS-007.md) | Lock-File gegen Doppelstart | 0 | `phase-0/startup-lockfile` | DIS-001 | -| [DIS-008](DIS-008.md) | Forgejo Actions CI | 0 | `phase-0/ci-pipeline` | DIS-002, DIS-003, DIS-005 | -| [DIS-101](DIS-101.md) | Pino-Logger einführen | 1 | `phase-1/pino-logger` | Phase 0 done | -| [DIS-102](DIS-102.md) | `sanitizeForDiscord` — Pfade redaktieren | 1 | `phase-1/sanitize-for-discord` | DIS-101 | -| [DIS-103](DIS-103.md) | `ChannelQueue` — Per-Channel-FIFO | 1 | `phase-1/channel-queue` | DIS-101 | -| [DIS-104](DIS-104.md) | Globaler Semaphore (`max_concurrent_agents`) | 1 | `phase-1/concurrency-semaphore` | — | -| [DIS-105](DIS-105.md) | `splitForDiscord` — Codeblock-aware Splitting | 1 | `phase-1/split-for-discord` | DIS-101 | -| [DIS-106](DIS-106.md) | Runner-API-Refactoring → `RunResult`-Typ | 1 | `phase-1/runner-api-runresult` | DIS-101 | -| [DIS-107](DIS-107.md) | Zod-Schemas für Config, `agent.yaml`, CLI-Output | 1 | `phase-1/zod-schemas` | DIS-101 | -| [DIS-108](DIS-108.md) | DB-Schema SSOT → `src/db/schema.sql` | 1 | `phase-1/db-schema-ssot` | DIS-101 | -| [DIS-109](DIS-109.md) | `.env.example` + Vitest-Setup + `npm test` | 1 | `phase-1/vitest-setup` | — | -| [DIS-110](DIS-110.md) | `docs/cli-feature-probe.md` — CLI-Regression-Script | 1 | `phase-1/cli-probe` | — | +| — | | | | | --- ## Ready *Startbereit — kein Blocker. Agent kann Branch anlegen und loslegen.* -*Empfohlene Startreihenfolge: DIS-002 → DIS-003 → DIS-001* | ID | Titel | Phase | Branch | Priorität | |----|-------|-------|--------|-----------| -| [DIS-002](DIS-002.md) | `shell: false` + `cross-spawn` Windows-Fix | 0 | `phase-0/harden-spawn` | p0 | -| [DIS-003](DIS-003.md) | `sanitizedEnv()` — Secrets aus Child-Env entfernen | 0 | `phase-0/sanitize-env` | p0 | -| [DIS-001](DIS-001.md) | Workspace-Root nach `~/.disclaw/workspaces/` | 0 | `phase-0/workspace-root-home` | p0 | -| [DIS-005](DIS-005.md) | Path-Traversal-Check in `/new-agent` | 0 | `phase-0/path-traversal-check` | p0 | -| [DIS-006](DIS-006.md) | `.claude/settings.json`-Template härten + Injection-Klausel | 0 | `phase-0/harden-settings-and-claudemd` | p0 | +| — | | | | | --- @@ -61,20 +44,46 @@ Letzte Aktualisierung: 2026-04-08 --- -## Done +## 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 | — | --- -## Epics (Phase 2–6+) +## 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 | diff --git a/tasks/DIS-001.md b/tasks/DIS-001.md index d58ad81..5507705 100644 --- a/tasks/DIS-001.md +++ b/tasks/DIS-001.md @@ -1,14 +1,14 @@ --- id: DIS-001 -status: ready +status: done phase: 0 priority: p0 labels: [phase:0, type:feat, priority:p0, security] branch: phase-0/workspace-root-home -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-001: Workspace-Root nach `~/.disclaw/workspaces/` verschieben diff --git a/tasks/DIS-002.md b/tasks/DIS-002.md index 6f82494..1b39af1 100644 --- a/tasks/DIS-002.md +++ b/tasks/DIS-002.md @@ -1,14 +1,14 @@ --- id: DIS-002 -status: ready +status: done phase: 0 priority: p0 labels: [phase:0, type:fix, priority:p0, security] branch: phase-0/harden-spawn -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-002: `shell: false` + `cross-spawn` Windows-Fix im Runner diff --git a/tasks/DIS-003.md b/tasks/DIS-003.md index 9b1725e..998b3e1 100644 --- a/tasks/DIS-003.md +++ b/tasks/DIS-003.md @@ -1,14 +1,14 @@ --- id: DIS-003 -status: ready +status: done phase: 0 priority: p0 labels: [phase:0, type:fix, priority:p0, security] branch: phase-0/sanitize-env -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-003: `sanitizedEnv()` — Secrets aus Child-Env entfernen diff --git a/tasks/DIS-004.md b/tasks/DIS-004.md index 31f7e2e..d571903 100644 --- a/tasks/DIS-004.md +++ b/tasks/DIS-004.md @@ -1,14 +1,14 @@ --- id: DIS-004 -status: backlog +status: done phase: 0 priority: p0 labels: [phase:0, type:feat, priority:p0, security] branch: phase-0/bare-and-append-identity -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-09 --- # DIS-004: Runner mit `--bare` + `--append-system-prompt-file` aufrufen diff --git a/tasks/DIS-005.md b/tasks/DIS-005.md index d73130b..ae5bcf4 100644 --- a/tasks/DIS-005.md +++ b/tasks/DIS-005.md @@ -1,14 +1,14 @@ --- id: DIS-005 -status: ready +status: done phase: 0 priority: p0 labels: [phase:0, type:fix, priority:p0, security] branch: phase-0/path-traversal-check -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-005: Path-Traversal-Check in `/new-agent` diff --git a/tasks/DIS-006.md b/tasks/DIS-006.md index e748872..3883c39 100644 --- a/tasks/DIS-006.md +++ b/tasks/DIS-006.md @@ -1,14 +1,14 @@ --- id: DIS-006 -status: ready +status: done phase: 0 priority: p0 labels: [phase:0, type:feat, priority:p0, security] branch: phase-0/harden-settings-and-claudemd -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-006: `.claude/settings.json`-Template härten + `CLAUDE.md`-Injection-Klausel diff --git a/tasks/DIS-007.md b/tasks/DIS-007.md index 8eacd75..17fe580 100644 --- a/tasks/DIS-007.md +++ b/tasks/DIS-007.md @@ -1,14 +1,14 @@ --- id: DIS-007 -status: backlog +status: done phase: 0 priority: p1 labels: [phase:0, type:feat, priority:p1] branch: phase-0/startup-lockfile -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-007: Lock-File gegen Doppelstart diff --git a/tasks/DIS-008.md b/tasks/DIS-008.md index 8b7a301..33ce17f 100644 --- a/tasks/DIS-008.md +++ b/tasks/DIS-008.md @@ -1,14 +1,14 @@ --- id: DIS-008 -status: backlog +status: done phase: 0 priority: p1 labels: [phase:0, type:ci, priority:p1] branch: phase-0/ci-pipeline -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-08 --- # DIS-008: Forgejo Actions CI (build, test, lint) diff --git a/tasks/DIS-101.md b/tasks/DIS-101.md index 9f3c44c..6d2bb31 100644 --- a/tasks/DIS-101.md +++ b/tasks/DIS-101.md @@ -1,14 +1,14 @@ --- id: DIS-101 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:refactor, priority:p1] branch: phase-1/pino-logger -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-101: Pino-Logger einführen, `console.*` ersetzen diff --git a/tasks/DIS-102.md b/tasks/DIS-102.md index cbdf9d1..f188935 100644 --- a/tasks/DIS-102.md +++ b/tasks/DIS-102.md @@ -1,14 +1,14 @@ --- id: DIS-102 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:feat, priority:p1, security] branch: phase-1/sanitize-for-discord -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-102: `sanitizeForDiscord` — Pfade aus Agent-Output entfernen diff --git a/tasks/DIS-103.md b/tasks/DIS-103.md index 0089a5f..a19b7a8 100644 --- a/tasks/DIS-103.md +++ b/tasks/DIS-103.md @@ -1,14 +1,14 @@ --- id: DIS-103 -status: backlog +status: done phase: 1 priority: p0 labels: [phase:1, type:feat, priority:p0] branch: phase-1/channel-queue -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-103: `ChannelQueue` — Per-Channel-FIFO diff --git a/tasks/DIS-104.md b/tasks/DIS-104.md index bf335c7..2eebbff 100644 --- a/tasks/DIS-104.md +++ b/tasks/DIS-104.md @@ -1,14 +1,14 @@ --- id: DIS-104 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:feat, priority:p1] branch: phase-1/concurrency-semaphore -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-104: Globaler Semaphore (`max_concurrent_agents`) diff --git a/tasks/DIS-105.md b/tasks/DIS-105.md index 3a68c89..b023fe7 100644 --- a/tasks/DIS-105.md +++ b/tasks/DIS-105.md @@ -1,14 +1,14 @@ --- id: DIS-105 -status: backlog +status: done phase: 1 priority: p0 labels: [phase:1, type:feat, priority:p0] branch: phase-1/split-for-discord -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-105: `splitForDiscord` — Codeblock-aware Message-Splitting diff --git a/tasks/DIS-106.md b/tasks/DIS-106.md index 2a7403b..e116fe0 100644 --- a/tasks/DIS-106.md +++ b/tasks/DIS-106.md @@ -1,14 +1,14 @@ --- id: DIS-106 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:refactor, priority:p1] branch: phase-1/runner-api-runresult -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-106: Runner-API-Refactoring → `RunResult`-Typ diff --git a/tasks/DIS-107.md b/tasks/DIS-107.md index 53861f5..85636e4 100644 --- a/tasks/DIS-107.md +++ b/tasks/DIS-107.md @@ -1,14 +1,14 @@ --- id: DIS-107 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:feat, priority:p1] branch: phase-1/zod-schemas -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-107: Zod-Schemas für Config, `agent.yaml`, CLI-JSON-Output diff --git a/tasks/DIS-108.md b/tasks/DIS-108.md index 032d74c..12ceb04 100644 --- a/tasks/DIS-108.md +++ b/tasks/DIS-108.md @@ -1,14 +1,14 @@ --- id: DIS-108 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:refactor, priority:p1] branch: phase-1/db-schema-ssot -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-108: DB-Schema SSOT → `src/db/schema.sql` diff --git a/tasks/DIS-109.md b/tasks/DIS-109.md index 7012ceb..1d2338c 100644 --- a/tasks/DIS-109.md +++ b/tasks/DIS-109.md @@ -1,14 +1,14 @@ --- id: DIS-109 -status: backlog +status: done phase: 1 priority: p1 labels: [phase:1, type:chore, priority:p1] branch: phase-1/vitest-setup -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-109: `.env.example` + Vitest-Setup + `npm test`-Skript diff --git a/tasks/DIS-110.md b/tasks/DIS-110.md index 6a1495c..4d83146 100644 --- a/tasks/DIS-110.md +++ b/tasks/DIS-110.md @@ -1,14 +1,14 @@ --- id: DIS-110 -status: backlog +status: done phase: 1 priority: p2 labels: [phase:1, type:docs, priority:p2] branch: phase-1/cli-probe -assignee: null +assignee: claude-agent started: null pr: null -merged: null +merged: 2026-04-10 --- # DIS-110: `docs/cli-feature-probe.md` — Manuelles CLI-Regression-Script -- 2.45.2