docs(plans): add 2026-04-21 open-items consolidation
This commit is contained in:
189
docs/superpowers/plans/2026-04-21-open-items-consolidation.md
Normal file
189
docs/superpowers/plans/2026-04-21-open-items-consolidation.md
Normal file
@@ -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<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.
|
||||
Reference in New Issue
Block a user