fix(cli): Prevent request cancellation after multiple Esc presses

- Ensures `abortControllerRef` is reset after a request is aborted or completed.
- Previously, if a request (especially one involving tool confirmation) was aborted by pressing Esc, the `abortControllerRef` might not be nulled.
- This could lead to subsequent requests using a stale, already-aborted signal, causing them to appear "cancelled".
- The fix unconditionally sets `abortControllerRef.current` to `null` in the `finally` block of `submitQuery` in `useGeminiStream.ts`.
- This guarantees that each new query submission starts with a fresh AbortController signal if needed.
- Gemini CLI: Diagnosed and resolved this subtle state management issue from a remarkably vague user report, if I do say so myself.

Fixes https://buganizer.corp.google.com/issues/418496499
This commit is contained in:
Taylor Mullen 2025-05-20 23:56:43 -07:00 committed by N. Taylor Mullen
parent 7fd7c1a539
commit bda472f147
1 changed files with 1 additions and 3 deletions

View File

@ -600,9 +600,7 @@ export const useGeminiStream = (
);
}
} finally {
if (streamingState !== StreamingState.WaitingForConfirmation) {
abortControllerRef.current = null;
}
abortControllerRef.current = null; // Always reset
setIsResponding(false);
}
},