Repository navigation
fix(antigravity): no console window on Windows; say when the runtime check runs out of time - #603
Merged
Merged
Conversation
…check runs out of time On Windows, agents that own their process tree were spawned detached. A detached process has no console, so each console program it starts gets a new visible one; Antigravity's launcher starts its inner process that way, so every install check and Antigravity session opened a Windows Terminal window. Windows already stops the tree with taskkill /T, so the agent now stays attached there and shares Effect's hidden console (marked seam in AcpSessionRuntime). A runtime check that outlived its 90-second limit fell through to the install's catch-all "Check free disk space and directory access". It now says the agent didn't respond in time. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review follow-up. Only the check after a fresh download shows its error; the other two checks either fall back to a fresh download or report the publication failure, so they return to upstream's exact text. The remaining seam is in paired markers, and its message no longer blames a busy machine: the agent unpacks about 320 MiB on every start, which is slow on quiet machines too. The timeout is now proven through the real check, including stopping the process tree before the disposable profile is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
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. |
The official Windows agent unpacks about 7,300 files (320 MiB) into a fresh folder on every start: about 35 s on a development machine, and longer than T3's 90-second limits on slower disks, even with free memory. The install check, health check, model refresh and sign-out now allow 5 minutes, each in a marked line. Sign-in already allowed 5 minutes. A start that really hangs now takes longer to report; the install check can still be cancelled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review follow-up. The health check never starts the agent (it only resolves installation metadata), so the unpacking time doesn't apply to it, and a longer limit would only hold its refresh slot longer. The docs now name the installation check instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e detaching CI follow-up. The seam keyed the detached flag on `processGroupPlatform`, which tests set to "win32" on Linux to simulate Windows teardown. On the Linux runner the agent then lost its own process group, and AcpAdapterV2's simulated hard teardown could no longer reap its Bash and sleep children. Whether a detached spawn opens a console window depends on the OS that spawns it, so the flag now follows `HostProcess.Platform`; real Windows still spawns attached, and Linux simulations keep the group. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 of 4 tasks
CI follow-up to 833f0ea. The install harness simulates a platform only while building the installation; the validation runs in the caller's context, where the host platform is the real one. On the Linux runner the simulated Windows ARM cases therefore spawn detached, as intended, but the mock spawner still expected the simulated platform's value and rejected the spawn. It now expects the real host's, matching the seam. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 of 4 tasks
yaacovcorcos
pushed a commit
to nattikahana/scient-desktop
that referenced
this pull request
Oct 20, 2026
Bring ScientFactory#353 up to current main, including the T3 alignments ScientFactory#593 and ScientFactory#607 (React Compiler migration, browser test project), ScientFactory#596, ScientFactory#601, ScientFactory#603-ScientFactory#606, ScientFactory#608-ScientFactory#610 and ScientFactory#567. Composition: - Workspace writes: ScientFactory#353's mutation service keeps main's known-workspace boundary and Git-folder write denial. Every write path (write, create, binary write, delete, rename, retained replace/remove, inspect) is authorized first, and the mutation lock re-checks protected paths on each non-history resolution. Test layers provide KnownWorkspaces. - Web: conflicted files follow main's React Compiler patterns (no manual memo, refs synced in layout effects, render-phase resets, effect events, try/finally in module helpers) with ScientFactory#353's behaviour on top, including ScientLatexSurface, the PDF reader, the file preview panel, save coordinator, workspace refresh, Pandoc tool and source PDF preview. - Tests moved to main's browser project are ported (createRoot, async act); ScientFactory#353's deletions of the Markdown rename button and its seam test are kept. - pnpm-lock.yaml regenerated with pnpm install. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
ownDetachedProcessGroup) were spawned detached on every platform. A detached Windows process has no console, so every console program it starts gets a new visible one. Antigravity's launcher starts its inner process that way, so each install check (and each Antigravity session) opened a Windows Terminal window titled with a path. InAcpSessionRuntime.ts(marked seam) the agent is now detached only off Windows. Windows already stops the tree withtaskkill /T, so it shares Effect's hidden console and the inner process does too.AntigravityInstallation.ts, one call site).AntigravityDriver.ts) and sign-out (AntigravityAuth.ts) allowed T3's 90 seconds; each now allows 5 minutes, in a marked line. Sign-in already allowed 5 minutes. The health check stays at 90 seconds, because it never starts the agent.Why
Seen in the dev app on Windows: a Terminal window opened during Antigravity's install check, and the install then failed with the disk-space message on a machine with 265 GB free.
agy_acp_server.exedetached; Windows Terminal opened for its inner process at the same second. The detach came from Scient'see950feee5; upstream T3 does not detach on Windows. Effect's Windows kill path usestaskkill /Twhether or not the child is detached, and a non-detached child getswindowsHide.initializebefore the 90-second timeout. The agent is a self-unpacking bundle: every start unpacks about 7,300 files (320 MiB) into a fresh folder, measured at about 35 s on this machine with no reuse between starts. So a slow check isn't only a loaded machine, and the message doesn't blame one. The owner also reports very slow installs on another Windows machine with free memory, so the steps that wait for a start now allow 5 minutes. The cost is that a start that truly hangs takes longer to report; the install check can still be cancelled.The other two checks using the same timeout keep upstream's exact text: one falls back to downloading a replacement, and the other reports a publication failure; neither shows the timeout to the user.
Documentation Impact
Documentation impact: Updated — docs/user/providers-antigravity.md (Troubleshooting: 5 minutes, installation checks), UPSTREAM.md
Checklist
Tests:
AntigravityInstallation.test.ts51 pass / 1 skipped;AntigravityAuth.test.ts29;AntigravityProvider.test.ts23;AntigravityDriver.test.ts2 pass / 24 skipped on Windows (CI runs them). New cases make the real check hang until its limit, and assert the message,taskkill /PID … /T /F, and that the process tree is stopped before the disposable profile is removed (Windows ARM fixture, three cleanup-error variants). They fail without the seam. The spawn assertion now expectsdetachedonly off Windows. Server andprovider-acptypecheck clean.Review: Codex, two rounds. Round 1 found no Windows teardown, console-signal or other-caller regression (Grok and Droid share the launcher) and asked for paired markers, a narrower seam and a teardown-proving test; round 2 approved with no findings. Round 3 (the 5-minute limits) approved with one nit, that the health check doesn't start the agent, which is applied.
Not verified: a live install through the packaged app on Windows with the fix (the window cause and the no-window behaviour of a non-detached spawn were each reproduced natively, but separately).
🤖 Generated with Claude Code