Repository navigation
fix(server): Antigravity sign-in no longer blames the network when the runtime never starts - #29057
juliusmarminge wants to merge 3 commits into
Conversation
…k for a hung runtime These tests reproduce #29039: when the Antigravity process never answers ACP initialize, sign-in still says it has not reached Google and later that it could not reach Google, blaming the network. The auth test harness now runs its own initialize inside start(), as the real AcpSessionRuntime does, so beforeInitialize can hang the process before authenticate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e agent never starts Sign-in said Antigravity had not reached Google, and later could not reach it, whenever the flow was still starting. On an Intel Mac the runtime hangs before it answers ACP initialize, so T3 blamed the network and IPv6 for a local process hang. runSignIn now awaits initialize before start and records it on the flow. Until the agent answers, the 30 second hint and the timeout say the runtime may be stuck on this machine; afterwards the network messages are unchanged. The real runtime caches initialize, and the test harness now does too. Fixes #29039 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Antigravity sign-in now distinguishes a runtime startup hang from a later network stall. Existing authentication behavior and timeouts remain unchanged, with no additional initialization handshake. You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Track runtime initialization apps/server/src/provider/AntigravityAuth.ts, apps/server/src/provider/AntigravityAuth.test.ts |
The sign-in flow records successful runtime initialization. The test harness caches initialization and awaits it before authentication. |
Select startup and connectivity messages apps/server/src/provider/AntigravityAuth.ts, apps/server/src/provider/AntigravityAuth.test.ts |
The 30-second status and final timeout message depend on whether initialization completed. Tests check the unresponsive-runtime message and the process event order. |
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix · Severity of issue fixed: Medium
Suggested reviewers: t3dotgg
Merge Risk: 
Minimal · up to 06cc1
-
The timeout distinguishes an unresponsive runtime from a connectivity failure. No material merge-blocking risk remains.
Pre-merge checks: 
4
-
Full details: Description check
-
Explanation
The description includes the problem, reproduction details, implementation change, scope and issue reference, focused verification results, observed behavior, and known testing limitations. It follows the required sections and is sufficiently complete.
Full details: Linked Issues check
-
Explanation
Issue
#29039requires a non-network diagnostic when the Antigravity child process does not answer during startup.runSignInnow awaitsruntime.initialize()beforeruntime.start(). The 30-second and five-minute messages use the unresponsive-runtime text until initialization completes. The existing Google-network messages remain for initialized runtimes.AntigravityAuth.test.tsadds coverage for the stalled-initialize case and verifies both timeout messages. The test harness caches initialization andstart()reuses it.
Full details: Out of Scope Changes check
-
Explanation
The changed production code updates Antigravity sign-in timeout classification. The test changes support this behavior and preserve the single-initialize flow. These changes directly support issue
#29039. No unrelated production behavior is shown in the reviewed changes.
-
Finishing Touches
-
Generate docstrings
-
- Commit to this branch
- Create a new PR
Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Problem
When the Antigravity runtime hangs at startup (the Intel Mac
agy_acp_server.parstuck in libffi, as in the report), Settings → Providers → Antigravity → Sign in tells the user to check the network. After 30 seconds it says "Antigravity has not reached Google after 30 seconds. Check this machine's network connection. Broken IPv6 is a common cause." At 5 minutes it fails with "Antigravity could not reach Google…". The process never answered ACPinitialize, so it never got as far as Google.Reproduced on main (91f66f8) with a fresh dev server. I set the Antigravity binary path to a stand-in that starts and never writes to stdout, then clicked Sign in. The Account row showed the IPv6 hint at 33 s and the "could not reach Google" failure at 300.9 s.
Change
runSignIninapps/server/src/provider/AntigravityAuth.tsnow awaitsruntime.initialize()beforeruntime.start()and records on the flow that the agent answered.AcpSessionRuntimecachesinitialize, sostart()reuses that result and no extra request is sent.initialize: the 30 s hint reads "Antigravity has not responded after 30 seconds. Its runtime may be stuck starting on this machine." The 5-minute failure reads "Antigravity did not respond. Its runtime may not run on this machine."initialize: the existing network hint and failure are unchanged.The test harness's
initializeis now cached, like the real runtime's.Scope and approval
Fixes #29039
Triaged via the automated issue flow.
Verification
vp test run apps/server/src/provider/AntigravityAuth.test.ts: 18/18 pass. The new test "does not blame the network when the agent never answers initialize" fails on main withexpected 'Antigravity has not reached Google af…' not to match /reach(ed)? Google|network|ipv6/i. The existing "tells the user when the agent cannot reach Google" passes unchanged; in that test the agent answersinitializeand then stalls.vp test run apps/server/src/provider/Drivers/AntigravityDriver.test.ts: 4/4 pass, still oneinitializeper process.vp run check:changed: passes.exec sleep, never writes stdout) and answering (replies toinitialize, never answersauthenticate). Account row text read from the page:Not checked:
Created with Claude Opus 5.5 in Claude Code (issue lead, red-test and implement steps); reviewed by GPT-6.1 Sol (Codex) and Claude Opus 5.5.
🤖 Generated with Claude Code