diff --git a/docs/open.md b/docs/open.md index 9981820..613f31e 100644 --- a/docs/open.md +++ b/docs/open.md @@ -33,6 +33,27 @@ Befunde aus dem Code-Review nach dem Doku-Audit. Alle fünf sind als fertig form **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. +## Bug-Befunde (Korrektheits-Review 2026-06-09, bestätigte als ClaudeDo-Tasks angelegt) + +**Bestätigt und als Tasks in „Claude do" angelegt:** + +1. **`FinalizeParentDoneAsync` umgeht den `TaskStateService`** (`PlanningMergeOrchestrator.cs:196`) — Direkt-Write `Status = Done` ohne Guard; überschreibt einen mid-merge gecancelten Parent. +2. **`TaskRunner` ignoriert `StartRunningAsync`-Ergebnis** (`TaskRunner.cs:101/211`) — Doppellauf-Race RunNow vs. Picker möglich. +3. **Unit-Merge nach Worker-Restart nicht abbrechbar** — Orchestrator-State ist in-memory; Repo bleibt mid-merge, Parent festgefahren. Fix: stateless Abort-Pfad. +4. **`DiffModalViewModel`: stiller Falsch-Diff** bei `FromCommitRange` ohne `HeadCommit` (Fallback auf Branch-Diff gegen das Listen-Working-Dir). + +**Plausibel, noch nicht einzeln verifiziert (bei Gelegenheit prüfen):** + +- Cancel eines `WaitingForChildren`-Parents kaskadiert nicht auf laufende/queued Kinder (verwaiste Worktree-Commits). +- Ketten-Kaskade stoppt an einem `Idle`-Mittelglied (`OnChildFinishedAsync` prüft `CancelAsync`-Ergebnis nicht) → Rest bleibt `Queued+blocked`. +- Delete des *letzten* nicht-terminalen Kindes triggert kein `TryAdvanceParentAsync` → Parent kann in `WaitingForChildren` hängen (FK `SET NULL` rettet nur die Blocked-Kette). +- `ContinueMergeAsync` staged per `git add -A` vor dem Konflikt-Check (Marker im Index, Abort danach ggf. unsauber). +- `HasChangesAsync` zählt untracked Files → blockiert Merges unnötig (`--untracked-files=no`). +- `UnifiedDiffParser`: Pfade mit Leerzeichen / git-gequotete Pfade aus `diff --git` falsch geparst. +- Kleinkram: MergePreview-Race bei schnellem Target-Wechsel, CTS-Dispose-Leak in Debounce-Saves, `Environment.CurrentDirectory`-Fallback im Konflikt-Dialog, Doppel-Continue-Fenster im Orchestrator. + +**Geprüft und verworfen (keine Bugs):** ReviewFeedback-„Endlosschleife" (Fallback existiert), Cross-Thread-Crashes im DetailsIslandViewModel (Dispatcher-Marshalling im WorkerClient), Chain-Wedge nach Child-Delete (FK `ON DELETE SET NULL`), `\ No newline`-Parsing. + --- ## Bewusst verworfen (nicht erneut vorschlagen)