From cb43bcdd10d984ab3ab005a08784a6a84ef128f4 Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Wed, 22 Apr 2026 11:03:40 +0200 Subject: [PATCH] docs(plans): add 2026-04-21 open-items consolidation --- .../2026-04-21-open-items-consolidation.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 docs/superpowers/plans/2026-04-21-open-items-consolidation.md diff --git a/docs/superpowers/plans/2026-04-21-open-items-consolidation.md b/docs/superpowers/plans/2026-04-21-open-items-consolidation.md new file mode 100644 index 0000000..913605e --- /dev/null +++ b/docs/superpowers/plans/2026-04-21-open-items-consolidation.md @@ -0,0 +1,189 @@ +# Open Items Consolidation — 2026-04-21 + +Consolidates everything still open from `docs/open.md`, `docs/improvement-plan.md`, and the 2026-04-16 subtask-tree spec. Today's plans/specs (stream-formatter, settings-modal, continue-and-reset) are explicitly out of scope — those are tracked separately. + +Grouped by priority and sorted by UX impact vs. effort. Each item lists **Soll**, **Dateien**, **Aufwand**, **Risiko**. + +--- + +## P1 — UX blockers and robustness + +### 1. Auto-Reconnect (ex IP-1) +**Soll:** `HubConnectionBuilder.WithAutomaticReconnect(...)` + event handlers for `Reconnecting`/`Reconnected`/`Closed`. Exponential backoff. +**Dateien:** `src/ClaudeDo.Ui/Services/WorkerClient.cs` +**Aufwand:** klein (~30 Zeilen) +**Risiko:** klein + +### 2. Reconnect-State in StatusBar (ex IP-7) +**Soll:** States `connected | connecting | reconnecting | offline`, farb-codiert. Depends on #1. +**Dateien:** `src/ClaudeDo.Ui/ViewModels/StatusBarViewModel.cs`, StatusBar view +**Aufwand:** klein +**Risiko:** klein + +### 3. Folder-Picker für Working Directory (ex open.md 2.1) +**Soll:** Button neben Pfad-TextBox → `IStorageProvider.OpenFolderPickerAsync`. +**Dateien:** `src/ClaudeDo.Ui/Views/ListEditorView.axaml(.cs)`, `ViewModels/ListEditorViewModel.cs` +**Aufwand:** klein (~30 Zeilen) +**Risiko:** klein + +### 4. Markdown-Rendering für Result/Description (ex open.md 2.3) +**Soll:** `Markdown.Avalonia` Paket einbinden, `MarkdownScrollViewer` statt readonly `TextBox` in Details-Island. +**Dateien:** `src/ClaudeDo.Ui/ClaudeDo.Ui.csproj`, `Views/Islands/DetailsIslandView.axaml` +**Aufwand:** mittel (Theme-Integration kann zicken) +**Risiko:** klein–mittel + +### 5. Live-Log Auto-Scroll (ex open.md 2.4) +**Soll:** Sticky-Bottom-Pattern: `ScrollToEnd()` auf neue Zeilen, außer User hat manuell hochgescrollt. +**Dateien:** `src/ClaudeDo.Ui/Views/Islands/SessionTerminalView.axaml(.cs)` +**Aufwand:** klein +**Risiko:** klein + +### 6. CLI-Preflight beim Worker-Start (ex open.md 3.1) +**Soll:** Startup-Check `claude --version` + Login-Status. Wenn fehlt → laut failen mit Hinweis, nicht still in Queue idlen. +**Dateien:** `src/ClaudeDo.Worker/Runner/ClaudeProcess.cs`, Worker startup (Program.cs / HostedService) +**Aufwand:** klein +**Risiko:** klein + +--- + +## P2 — Daten & Features + +### 7. Notes-Mode (ex IP-2) +**Soll:** Neue Spalte `lists.kind` (`agent` | `notes`). Worker filtert auf `kind = 'agent'`. UI versteckt Run/Schedule/Worktree-Felder für `notes`. +**Dateien:** +- Migration + `TaskList` Entity + `IEntityTypeConfiguration` +- `src/ClaudeDo.Worker/Queue/QueueService.cs` (Filter) +- `ViewModels/ListEditorViewModel.cs`, `Views/Islands/*` (conditional visibility) +**Aufwand:** mittel +**Risiko:** mittel (Default für bestehende Listen = `agent`) + +### 8. Subtask-Tree im TaskList-Island (ex 2026-04-16 spec) +**Soll:** Indented Subtasks unter Parent-Task, Expand/Collapse, Chevron-Spalte, Count-Indikator. Batch-Query `GetCountsByTaskIdsAsync`. +**Dateien:** `ViewModels/TaskItemViewModel.cs` (+ `Subtasks`, `IsExpanded`, `HasSubtasks`), `Views/Islands/TaskListView.axaml`, `Data/Repositories/SubtaskRepository.cs` +**Aufwand:** mittel +**Risiko:** klein–mittel (spec ist fertig) + +### 9. Tag-Repository `GetAllKnownTagsAsync` (ex IP-8) +**Soll:** Distinct-Query über alle Tags. Voraussetzung für #10. +**Dateien:** neuer `Data/Repositories/TagRepository.cs` (oder in bestehendem Repo) +**Aufwand:** klein +**Risiko:** klein + +### 10. Tag Multi-Select Control (ex IP-4) +**Soll:** AutoCompleteBox / Chips statt Freitext. Datenquelle aus #9. +**Dateien:** `Views/Islands/DetailsIslandView.axaml` (Tag-Sektion), ggf. neues `TagPickerControl` +**Aufwand:** klein–mittel +**Risiko:** klein + +### 11. Worktree-Cleanup bei Anlegefehler (ex open.md 3.2) +**Soll:** Wenn `git worktree add` teilweise anlegt dann failed → best-effort `git worktree remove --force` + DB-Row nicht persistieren. +**Dateien:** `src/ClaudeDo.Data/Services/GitService.cs`, `src/ClaudeDo.Worker/Runner/TaskRunner.cs` +**Aufwand:** klein +**Risiko:** klein + +### 12. Tag-Negation / Exclusion (ex open.md 3.4) +**Soll:** Queue respektiert `task_tag_exclusions` laut Plan. Aktuell nur `agent`-Include. +**Dateien:** `src/ClaudeDo.Worker/Queue/QueueService.cs` +**Aufwand:** klein +**Risiko:** klein + +--- + +## P3 — Tests, CI, Docs + +### 13. Gitea-Actions CI Pipeline (ex open.md 5.1) +**Soll:** `.gitea/workflows/ci.yml`: restore → build → test auf push/PR. Nur `release.yml` existiert bisher. +**Dateien:** neu — `.gitea/workflows/ci.yml` +**Aufwand:** klein +**Risiko:** klein + +### 14. SignalR Roundtrip-Test (ex open.md 5.2) +**Soll:** `WebApplicationFactory` + `HubConnectionBuilder` testen `Ping`, `GetActive`, `RunNow`-Throw-Verhalten. +**Dateien:** neu — `tests/ClaudeDo.Worker.Tests/Hub/WorkerHubTests.cs` +**Aufwand:** mittel +**Risiko:** klein + +### 15. Claude-CLI Smoke-Test (ex open.md 5.3) +**Soll:** `[Fact(Skip=...)]` Real-CLI-Test, aktiviert nur wenn `CLAUDE_AUTHENTICATED=1`. +**Dateien:** neu — `tests/ClaudeDo.Worker.Tests/Runner/ClaudeProcessSmokeTest.cs` +**Aufwand:** klein +**Risiko:** klein + +### 16. README ausbauen (ex open.md 6.1) +**Soll:** Ist 107 Zeilen. Ergänzen: Screenshots, Quickstart (Worker + UI starten), Konfiguration, Troubleshooting. +**Dateien:** `README.md` +**Aufwand:** klein +**Risiko:** keiner + +### 17. `docs/architecture.md` herausziehen (ex open.md 6.2) +**Soll:** Architektur-Sektion aus `plan.md` in eigenes Dokument. +**Dateien:** neu — `docs/architecture.md` +**Aufwand:** klein +**Risiko:** keiner + +### 18. ADRs für Kern-Entscheidungen (ex open.md 6.3) +**Soll:** Kurze ADRs (1 Seite) für: SignalR vs. SQLite-Polling; Worktree pro Task; SignalR über Loopback ohne Auth; EF Core statt Dapper. +**Dateien:** neu — `docs/adr/0001-*.md` … `0004-*.md` +**Aufwand:** klein +**Risiko:** keiner + +### 19. Strukturiertes Logging (ex open.md 3.3) +**Soll:** `Console.WriteLine` / manuelle Log-Zeilen durch `ILogger` ersetzen. Log-Levels, Scope für TaskId. +**Dateien:** `src/ClaudeDo.Worker/**` (query-able via `grep Console.Write`) +**Aufwand:** mittel +**Risiko:** klein + +--- + +## P4 — Service-Deployment (später) + +### 20. Windows-Service Hosting in Code (ex open.md 4.1) +**Soll:** `.UseWindowsService()` + `Microsoft.Extensions.Hosting.WindowsServices` Paket. +**Aufwand:** klein + +### 21. Absolute Pfad-Auflösung (ex open.md 4.2) +**Soll:** Config-Pfade immer absolut auflösen (Service läuft in `C:\Windows\System32`). +**Aufwand:** klein + +### 22. Install-Skripte / Doku (ex open.md 4.3) +**Soll:** `sc create` / PowerShell-Skript, Doku in README. +**Aufwand:** klein + +--- + +## Empfohlene Reihenfolge + +**Block 1 — Sofortige UX-Wins (1 Session):** +1. → 2. (Auto-Reconnect + StatusBar) — zusammenhängend, klein +3. Folder-Picker +5. Log Auto-Scroll + +**Block 2 — Content-Qualität (1 Session):** +4. Markdown-Rendering +6. CLI-Preflight + +**Block 3 — Daten-Features (2 Sessions):** +7. Notes-Mode (mit Migration) +8. Subtask-Tree +9. → 10. Tag-Repo + Multi-Select + +**Block 4 — Worker-Robustheit:** +11. Worktree-Cleanup +12. Tag-Exclusion +19. Strukturiertes Logging + +**Block 5 — Tests + CI + Docs:** +13. CI Pipeline +14. → 15. Hub-Tests + Smoke-Test +16. → 17. → 18. README + architecture.md + ADRs + +**Block 6 — Service-Deployment (wenn gewünscht):** +20. → 21. → 22. + +--- + +## Nicht im Plan + +- Alles aus heute (2026-04-21): Stream-Formatter-Rewrite, Settings-Modal, Continue-and-Reset — sind eigene Plans. +- UI-Rewrite-Islands, UI-Polish-Design-Parity, UX-Redesign, Worker-CLI-Modernization, EF-Core-Migration, Installer-Download-Mode, Logic-Bug-Fixes — bereits gemerged (siehe git log). +- IP-3 (Doppelklick) und IP-5 (Kontextmenü) — vermutlich im Zuge des UI-Rewrites erledigt; falls nicht, trivial nachzuziehen.