feat(pilot): EscalateInterceptDialog — fourth 'partial' choice

Closes the gap Phase 8 final review flagged. When a fix is in
applied_partial state and the engineer escalates, the intercept no
longer forces them to approximate with didn't-work/worked/never-applied.

AssistantChatPage's handleInterceptChoice (Task 13) already dispatches
to patchOutcome for any FixOutcome value, so no handler change is
needed — the type already supports applied_partial.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-24 03:04:05 -04:00
parent f930787200
commit 82db1c78e4

View File

@@ -8,7 +8,7 @@
* Visual reference: docs/FlowAssist_Migration/mockups/07-verify-states.html
* (panel C).
*/
import { X, AlertCircle, Check } from 'lucide-react'
import { X, AlertCircle, Check, Info } from 'lucide-react'
import type { FixOutcome } from '@/api/sessionSuggestedFixes'
export type InterceptChoice = FixOutcome | 'never_applied'
@@ -53,6 +53,13 @@ export function EscalateInterceptDialog({
<span className="flex-1">The fix didn&apos;t work</span>
<span className="text-[10.5px] text-muted-foreground font-mono px-1.5 py-[2px] rounded bg-white/[0.05]"></span>
</button>
<button
onClick={() => onChoose('applied_partial')}
className="flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-white/10 bg-elevated text-[12.5px] text-primary hover:bg-sidebar transition-colors text-left"
>
<Info size={13} strokeWidth={2} />
<span className="flex-1">I applied some of it partial</span>
</button>
<button
onClick={() => onChoose('applied_success')}
className="flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-white/10 bg-elevated text-[12.5px] text-primary hover:bg-sidebar transition-colors text-left"