fix(ui): surface precondition hints for silently-disabled review buttons (UX-Audit #2)

Cancel now shows an amber hint + tooltip while a merge drain is in
progress (ShowMergeDrainHint mirrors IsMergeDraining). Continue,
Reset & Retry, Open Diff, Worktree, and Review Combined Diff gain
ToolTip.Tip + ToolTip.ShowOnDisabled explaining why they're locked.
No CanExecute or behavior changed, only added communication.
This commit is contained in:
mika kuns
2026-08-21 09:31:56 +02:00
parent 4fc64732ec
commit dbb73bae38
5 changed files with 60 additions and 5 deletions
+6 -1
View File
@@ -253,7 +253,9 @@
}
},
"agent": {
"openWorktreeTip": "Worktree im Datei-Explorer öffnen"
"openWorktreeTip": "Worktree im Datei-Explorer öffnen — benötigt einen aktiven Worktree",
"openDiffTip": "Diff öffnen — benötigt einen Worktree oder einen gemergten Commit-Bereich",
"reviewCombinedDiffTip": "Nur für Planning-Tasks mit Subtasks oder Child-Outcomes verfügbar"
},
"notes": {
"today": "Heute",
@@ -268,6 +270,9 @@
"chipFailed": "FEHLGESCHLAGEN",
"reviewContinueTip": "Dieses Feedback senden und die Aufgabe erneut ausführen",
"reviewResetTip": "Alle Änderungen verwerfen und die Aufgabe auf Leerlauf zurücksetzen",
"mergeDrainHint": "Merge zieht Subtasks ein — Abbrechen entsperrt sich danach",
"continueNoSessionTip": "Setzt den letzten Lauf fort — benötigt eine vorherige Session",
"resetAndRetryInteractiveTip": "Interaktive Sitzung ist offen — erst schließen",
"reviewFeedbackPlaceholder": "Feedback für nächsten Lauf"
},
"missionControl": {
+7 -2
View File
@@ -253,7 +253,9 @@
}
},
"agent": {
"openWorktreeTip": "Open worktree in file explorer"
"openWorktreeTip": "Open worktree in file explorer — requires an active worktree",
"openDiffTip": "Open the diff — requires a worktree or a merged commit range",
"reviewCombinedDiffTip": "Only available for planning tasks with subtasks or child outcomes"
},
"notes": {
"today": "Today",
@@ -268,7 +270,10 @@
"chipFailed": "FAILED",
"reviewContinueTip": "Send this feedback and re-run the task",
"reviewResetTip": "Discard all changes and reset the task to Idle",
"reviewFeedbackPlaceholder": "Feedback for next run"
"reviewFeedbackPlaceholder": "Feedback for next run",
"mergeDrainHint": "Merge is draining subtasks — Cancel unlocks once it finishes",
"continueNoSessionTip": "Resumes the last run — needs a previous session to continue",
"resetAndRetryInteractiveTip": "Interactive session is open — close it first"
},
"missionControl": {
"windowTitle": "Mission Control",