2 Commits

Author SHA1 Message Date
roboomp 0a4d8746f9 fix(oauth): bound and cancel google provisioning poll
Gemini CLI / Antigravity OAuth login could hang indefinitely during Cloud
Code Assist provisioning: pollOperation was an unbounded while(true) loop
with bare fetch calls that never checked OAuthController.signal, passed no
signal to fetch, and had no per-request timeout or attempt cap.

Add a shared oauthFetch helper that composes the controller signal with a
30s per-request timeout, and a throwIfLoginCancelled guard. Thread the
signal through exchangeToken, getUserEmail, discoverProject, onboardUser,
pollOperation, and the Antigravity onboardProjectWithRetries/discoverProject.
Bound pollOperation to 24 attempts; a stall now surfaces OAuthError
(kind:"timeout") and cancellation surfaces LoginCancelledError.

Fixes #4085
2026-07-23 20:08:11 +00:00
igasmi 7497d50d93 fix(ai): surface Google OAuth account-verification URL on VALIDATION_REQUIRED login 2026-06-16 17:48:58 -04:00