# 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.