docs(verification): §1 findings — raw-JSON outcome bug, rename/turns nits, session-tab expected

This commit is contained in:
mika kuns
2026-07-24 08:26:33 +02:00
parent 3211bfc0f9
commit 26c03a5a5f
2 changed files with 7 additions and 4 deletions
+3
View File
@@ -37,6 +37,9 @@ Kein Code-Aufwand, nur Durchspielen mit explizit notiertem Pass-Kriterium. Der G
## Offene Code-Punkte ## Offene Code-Punkte
- **[OFFEN, 2026-07-24] `--permission-mode auto` + Modell `haiku` → Writes werden denied (haiku-Footgun, KEINE CLI-Regression):** Kontrolliert verifiziert (CLI 2.1.207, gleicher Worker/Tag): unter dem Default-Mode `auto` bekommt **sonnet** Writes auto-approved (`permission_denials:[]`, Datei entsteht), **haiku** wird `denied` (`permission_denials:[Write]`, keine Datei) — haiku steigt beim auto-Permission-Flow aus, statt zu schreiben. Folge: eine Task, die (per MCP `model:"haiku"` oder Task-Override) auf haiku läuft, macht unter `auto` **still nichts** und landet ohne Änderung in `WaitingForReview`. Normalbetrieb (Default = sonnet) ist nicht betroffen; die Gap-Tasks 2026-07-23 liefen sonnet und haben geschrieben+committet. Ursprünglich fälschlich als CLI-`auto`-Regression gemeldet — das war ein Testartefakt (haiku-Tasks zum „Sparen"). Optionen falls es nervt: haiku aus der Auswahl nehmen, ODER Runner auf `acceptEdits`/`bypassPermissions` (modell-unabhängig) statt `auto`. - **[OFFEN, 2026-07-24] `--permission-mode auto` + Modell `haiku` → Writes werden denied (haiku-Footgun, KEINE CLI-Regression):** Kontrolliert verifiziert (CLI 2.1.207, gleicher Worker/Tag): unter dem Default-Mode `auto` bekommt **sonnet** Writes auto-approved (`permission_denials:[]`, Datei entsteht), **haiku** wird `denied` (`permission_denials:[Write]`, keine Datei) — haiku steigt beim auto-Permission-Flow aus, statt zu schreiben. Folge: eine Task, die (per MCP `model:"haiku"` oder Task-Override) auf haiku läuft, macht unter `auto` **still nichts** und landet ohne Änderung in `WaitingForReview`. Normalbetrieb (Default = sonnet) ist nicht betroffen; die Gap-Tasks 2026-07-23 liefen sonnet und haben geschrieben+committet. Ursprünglich fälschlich als CLI-`auto`-Regression gemeldet — das war ein Testartefakt (haiku-Tasks zum „Sparen"). Optionen falls es nervt: haiku aus der Auswahl nehmen, ODER Runner auf `acceptEdits`/`bypassPermissions` (modell-unabhängig) statt `auto`.
- **[BUG, 2026-07-24] OUTCOME-Karte rendert rohes Structured-Output-JSON:** `TaskMonitorViewModel.ApplyOutcome` (ClaudeDo.Ui) setzt bei Tasks ohne Roadblock-Marker `SessionOutcome = result` wörtlich (Zeile ~261). Der Worker legt in `task.Result` das rohe `{"summary":…,"files_changed":[…]}` ab (die lesbare Fassung steht in `task_runs.resultMarkdown`), also zeigt die Detail-Insel OUTCOME als JSON-Blob statt als Text. Fix-Optionen: (a) UI parst ein JSON-Result und zeigt `summary`, oder (b) der Worker schreibt `summary`/`resultMarkdown` statt des JSON in `task.Result`. Verifiziert am Task `verif §1 diff matrix` (2026-07-24). Deckt sich mit Memory `worker_testing_findings`.
- **[NIT, 2026-07-24] Diff-Viewer: reiner Rename wird schwach dargestellt:** Rename wird korrekt erkannt (`UnifiedDiffParser``DiffFileStatus.Renamed`, Badge `StatusCode="R"`), aber der File-Tree zeigt nur den neuen Namen + „+0 0" ohne „alt → neu"-Pfad; ein reiner Rename liest sich dadurch wie „keine Änderung". Kein Korrektheitsfehler, nur UX. Optional: alten Pfad + „renamed"-Label anzeigen.
- **[MINOR, 2026-07-24] Header-TurnsText zeigt `0/max` für abgeschlossene Runs:** `TurnsText => {Turns}/{EffectiveMaxTurns}``Turns` wird beim Laden eines terminalen Tasks nicht aus `task_runs.turnCount` restauriert (nur live gefüllt), also erscheint `0/<max>`. Kosmetisch.
- **Status-Bar Live-Update:** Prüfen, ob `RunNow`-Enable/Disable pro Task-Row bei Connection-Change sauber re-evaluiert. Connection-Status lebt in `IslandsShellViewModel` / `WorkerConnectionModalViewModel` (es gibt keinen `StatusBarViewModel` mehr). Erst messen, dann ggf. fixen. Klein. - **Status-Bar Live-Update:** Prüfen, ob `RunNow`-Enable/Disable pro Task-Row bei Connection-Change sauber re-evaluiert. Connection-Status lebt in `IslandsShellViewModel` / `WorkerConnectionModalViewModel` (es gibt keinen `StatusBarViewModel` mehr). Erst messen, dann ggf. fixen. Klein.
## Nachklapp Refactoring-/Bug-Runde (2026-06-09/10) ## Nachklapp Refactoring-/Bug-Runde (2026-06-09/10)
+4 -4
View File
@@ -12,10 +12,10 @@ Konsolidierte manuelle Verifikationen aus `docs/open.md` + Memory-Ständen — g
## 1. Detail-Insel & Diff-Viewer (reines Durchklicken) ## 1. Detail-Insel & Diff-Viewer (reines Durchklicken)
- [ ] Detail-Insel komplett: Output/Git/Session-Tabs, Merge-Sektion, Agent-Settings-Overrides (InheritedBadge korrekt), Prep-Panel — nach dem VM-Split (`DetailsIslandViewModel` → Sektions-VMs) alles gebunden, keine leeren Panels. - [~] Detail-Insel komplett: Output/Git/Session-Tabs, Merge-Sektion, Agent-Settings-Overrides (InheritedBadge korrekt), Prep-Panel — nach dem VM-Split (`DetailsIslandViewModel` → Sektions-VMs) alles gebunden, keine leeren Panels.**TEILWEISE (2026-07-24, User-Sichtprüfung an `verif §1 diff matrix`):** Output/Git-Tabs, Merge-Sektion, Agent-Badges vorhanden & gebunden, keine leeren Panels. Git-Tab: `+1 37`, „merges cleanly" korrekt. **BUG:** OUTCOME-Karte zeigt rohes JSON (s. open.md). Session-Tab fehlt — **erwartet** (nur bei Parent mit Kindern, `HasChildOutcomes`; wird in §4/§3 mit echtem Parent geprüft). Minor: TurnsText `0/max` bei terminalem Reload (open.md). Prep-Panel → §10.
- [ ] Diff-Viewer: Dateiliste, Added/Deleted/Renamed/Binary-Erkennung, Commit-Range-Diff nach einem Merge. - [~] Diff-Viewer: Dateiliste, Added/Deleted/Renamed/Binary-Erkennung, Commit-Range-Diff nach einem Merge.**Added/Deleted/Binary PASS**; **Renamed** erkannt + „R"-Badge, aber schwach dargestellt (kein alt→neu-Pfad, „+0 0" — nit, s. open.md); „Review Combined Diff" korrekt ausgegraut (kein Planning-Parent). **Commit-Range-Diff nach Merge: noch offen** (nächster Schritt mit echtem Merge).
- [ ] DiffModal-Fehler-State: Commit-Range ohne aufgezeichnete Commits → „Diff nicht mehr verfügbar" statt Crash/leer. - [ ] DiffModal-Fehler-State: Commit-Range ohne aufgezeichnete Commits → „Diff nicht mehr verfügbar" statt Crash/leer. — offen (nach Merge).
- [ ] „children need attention"-Band auf dem Session-Tab eines Parents mit failed/blocked Kind. - [ ] „children need attention"-Band auf dem Session-Tab eines Parents mit failed/blocked Kind. — verschoben nach §3 (braucht echten Parent mit Kindern).
## 2. Worktree-Pipeline (3 falsifizierbare Fälle) ## 2. Worktree-Pipeline (3 falsifizierbare Fälle)