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