docs(open): record correctness-review findings (4 confirmed as tasks)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
21
docs/open.md
21
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)
|
||||
|
||||
Reference in New Issue
Block a user