From 872476b2e369de3f2e7759ebef93c29b4f7588d0 Mon Sep 17 00:00:00 2001 From: David Kaya Date: Mon, 13 Apr 2026 12:45:40 +0200 Subject: [PATCH] fix: detect Quick Prompt completion from all terminal events The popup stayed in 'streaming' phase because it only transitioned to 'complete' on message-complete or status:idle when prev was exactly 'streaming'. If other events (agent-activity, run-updated) arrived between the last delta and idle, the phase guard could miss. Broaden completion detection: - status:idle now completes from any non-idle/non-complete phase - agent-activity:completed also triggers completion - Covers all paths the sidecar uses to signal turn end Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/renderer/components/quick-prompt/QuickPromptApp.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/quick-prompt/QuickPromptApp.tsx b/src/renderer/components/quick-prompt/QuickPromptApp.tsx index 88897de..4781d16 100644 --- a/src/renderer/components/quick-prompt/QuickPromptApp.tsx +++ b/src/renderer/components/quick-prompt/QuickPromptApp.tsx @@ -80,7 +80,9 @@ export function QuickPromptApp() { } else if (event.kind === 'message-complete') { setPhase('complete'); } else if (event.kind === 'status' && event.status === 'idle') { - setPhase((prev) => (prev === 'streaming' ? 'complete' : prev)); + setPhase((prev) => (prev === 'idle' || prev === 'complete' ? prev : 'complete')); + } else if (event.kind === 'agent-activity' && event.activityType === 'completed') { + setPhase((prev) => (prev === 'idle' || prev === 'complete' ? prev : 'complete')); } else if (event.kind === 'error') { setErrorMessage(event.error ?? 'An unexpected error occurred.'); setPhase('error');