Five findings filed as ClaudeDo tasks (IWorkerClient parity, merge-API naming, DetailsIslandViewModel split, test-fake hygiene, FailAsync guard) plus the deferred WorkerHub split and the AgentMcpTools file move. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.1 KiB
ClaudeDo — Offene Punkte
Stand: 2026-06-09. Nur noch offene Punkte. Was erledigt ist, steht in den Commits und im Code — nicht hier.
Manuelle Verifikation (offen)
Kein Code-Aufwand, nur Durchspielen mit explizit notiertem Pass-Kriterium. Der Großteil der Pipeline ist laut User bereits in der Praxis getestet; hier das, was noch ein falsifizierbares Observable braucht.
- Worktree-Pipeline:
- Worktree-Happy-Path →
worktrees.state='active',head_commitgesetzt,diff_statnon-empty, Branchclaudedo/<id>auf Disk. - No-Changes-Run →
status='Done',head_commit IS NULL,diff_stat IS NULL. - Kein Git-Repo (
working_dir=C:\Temp) →status='Failed', keineworktrees-Row, Git-Fehler im Log.
- Worktree-Happy-Path →
- Feature-Walkthroughs: Planning-Session-Flow (Draft→Finalize→Chain), Prime/Daily-Prep-Trigger, Weekly-Report-Generierung, Self-Update (Banner → Update → „up to date").
- UI-Sichtprüfung (neu, 2026-06-09): Diff-Viewer (Dateiliste, Added/Deleted/Renamed/Binary-Erkennung, Commit-Range-Diff nach Merge) und das „children need attention"-Band auf dem Session-Tab des Parents.
- Worker-Autostart am Gerät: Logoff/Logon-Autostart, Update-Pfad, Uninstall entfernt die Startup-
.lnk.
Offene Code-Punkte
- Status-Bar Live-Update: Prüfen, ob
RunNow-Enable/Disable pro Task-Row bei Connection-Change sauber re-evaluiert. Connection-Status lebt inIslandsShellViewModel/WorkerConnectionModalViewModel(es gibt keinenStatusBarViewModelmehr). Erst messen, dann ggf. fixen. Klein. AgentMcpToolsliegt inLifecycleMcpTools.cs— beim Suchen irreführend; in eigene Datei verschieben. Ein-Minuten-Fix, lohnt keinen Agent-Lauf — beim nächsten Worker-Touch mitnehmen.
Refactoring-Backlog (Review 2026-06-09, als ClaudeDo-Tasks in „Claude do" angelegt)
Befunde aus dem Code-Review nach dem Doku-Audit. Alle fünf sind als fertig formulierte Tasks (Idle) in der Liste „Claude do" angelegt; 1→2→3 müssen sequenziell laufen (gleiche Dateien: IWorkerClient, Fakes), 4 und 5 sind unabhängig.
- IWorkerClient-Parität: 15 Methoden, 2 Events und
LastApproveTargetexistieren nur auf der konkretenWorkerClient-Klasse; 7 Klassen hängen deshalb an der konkreten Klasse und sind nicht fake-bar. - Merge-API-Naming:
ContinueMerge/AbortMerge(Konflikt-Resolver) vs.ContinuePlanningMerge/AbortPlanningMerge(Unit-Merge) → Hub/Client-Ebene umbenennen inContinueConflictMerge/AbortConflictMerge.TaskMergeServiceNICHT anfassen (wird auch vomPlanningMergeOrchestratorgenutzt). DetailsIslandViewModel(1431 Zeilen) aufteilen: drei Sektions-VMs extrahieren (AgentSettings, Merge, Prep); visuelle Verifikation danach offen.- Test-Hygiene:
FakeClaudeProcessdoppelt definiert, Hub-Fakes verstreut statt inInfrastructure/,SeedListWithAgentTag(Async)heißt noch nach dem entfernten Tag-System. FailAsync-Guard: erlaubtQueued→Failed, hat aber nur einen Caller (TaskRunner-Fehlerpfad eines laufenden Tasks) — erst beweisen, ob erreichbar, dann Guard einschränken oder Race dokumentieren.
Bewusst zurückgestellt: WorkerHub-Split nach Concern (~60 Methoden in einer Hub-Klasse). Die Interface-Parität (Punkt 1) löst das akute Testbarkeits-Problem; ein Hub-Split ist eine größere Architekturentscheidung → erst besprechen.
Bewusst verworfen (nicht erneut vorschlagen)
- CI-Build/Test-Pipeline — push-to-main + release-on-push deckt das ab; Tests laufen am Ende jeder Session.
- Real-
claude-Smoke-Test als xUnit-Test — kein Claude indotnet test; bleibt manueller Check (siehe oben). Tests nutzenFakeClaudeProcess. architecture.md/ ADRs — die per-Projekt-CLAUDE.md-Dateien sind die lebende Doku; ADRs lohnen solo nicht.- Task-Mailbox-Integration — geparkt; das generische
mcp__mailbox__*-Plugin reicht (Begründung inmailbox-proposal.md). - Tag-Negation, Tag-Multi-Select, Notes-
lists.kind-Switch, Install-Service-Skript — durch die aktuelle Architektur überholt (Tag-System entfernt, Notes/Autostart anders gelöst).