Repository navigation
fix: keep the Antigravity CLI's self-updater from opening console windows - #280
Merged
Merged
Conversation
HemSoft
added a commit
that referenced
this pull request
Oct 27, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndow A fixture parent with no console, like the release app, runs a child through SystemCommandRunner; the child and an ordinary descendant it starts without flags must both report no console window (chief#43, #271). Dropping CREATE_NO_WINDOW gives the child a new console window and fails the test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dows agy runs its self-updater detached once its 15-minute check is due, and the updater's agy --version child gets a new, visible console that CREATE_NO_WINDOW on CodexBar's agy cannot reach (chief#43). Every agy CodexBar starts, in the background and in the sign-in window, now sets Antigravity's documented AGY_CLI_DISABLE_AUTO_UPDATE=true. CommandOptions gains an optional working folder so agy keeps the one it has today. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps SystemCommandRunner::run_scoped at its previous complexity now that the working folder is optional (rust-metrics CRAP gate). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HemSoft
force-pushed
the
t3/hide-console-windows
branch
from
October 27, 2026 12:57
68de2e0 to
d7c47c0
Compare
HemSoft
marked this pull request as ready for review
October 27, 2026 12:58
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Oct 27, 2026
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.
Background Gemini coding refreshes run
agy. Once agy's 15-minute update check is due, it starts its self-updater detached. The updater then startsagy --version, which gets a new, visible, foreground console. No creation flag on the agy CodexBar starts can reach that grandchild. This PR turns the updater off for every agy CodexBar starts, using Antigravity's documented switch. It also locks the hidden-console contract for background CLIs with a Windows regression test.Fixes #271. Supersedes #272. Context: chief#43.
Change
gemini_coding::CliRunnerruns agy throughSystemCommandRunnerwithAGY_CLI_DISABLE_AUTO_UPDATE=true, replacing any inherited value. Onlytrueworks (troubleshooting, antigravity-cli#1046). The background provider, the post-sign-in check and the live diagnostic use it. The sign-in window's agy sets it too. agy run in a terminal still updates itself. tastecode#1942 found and fixed the same popup this way.CommandOptions.cwdbecomes optional, so agy keeps the working folder it has today. Muse still passes its folder. The option handling moved intoconfigureto keeprun_scoped's CRAP unchanged.command_runnergains two fixtures:SystemCommandRunner. The child and an ordinary flag-less grandchild must both report no console window.cwdkeep the parent's folder and still set the child's environment.docs/COMMAND_RUNNER.mddocuments the console policy.An audit of every launch site found no background launch outside
CREATE_NO_WINDOW. The only visible launches are the user-started sign-in windows. The retired WPF app also setCreateNoWindow = trueforgh.Windows-native evidence
The probe lives on the never-merged
probe/console-windows-nativebranch. It ran on windows-latest (Server 2025, with Windows Terminal as the default terminal, as on Windows 11).Each run builds and starts the real CodexBar release with a Copilot account on the GitHub CLI and a Gemini account with Antigravity coding quotas, on a 60-second refresh. agy is installed but not signed in. Before each run, agy's updater state is wiped so the update check is due.
Three observers run at once:
EnumWindowspoll every 15 ms;EnumDesktopWindowssweep of every desktop inWinSta0.Security event 4688 logs every process start with its command line.
Run 40505158287: main versus this PR, same workload (6
ghand 6agylaunches each).bd1bab8(sha256dba1d289…)agy -p /usage→agy --bg-updater→agy --version→ Windows Terminal handoff68de2e0(sha256cc65140b…, rebuilt from this branch)Main (the popup Franz reports):
This PR after its refreshes:
Window events: main's updater window. Summary: run summary. Process log: process starts.
gh is not a source. Main ran
gh13 times in run 40486095984 and run 40493362418 with 0 console windows. Main rebuilt withoutCREATE_NO_WINDOWopened 9 (screenshot), so the probe does catch them.The probe also launched
ghandagyfrom a GUI-subsystem launcher with fixed flags:ghandagyCREATE_NO_WINDOW | CREATE_SUSPENDEDplus jobcmd→ghgrandchildrenCREATE_NO_WINDOWaloneEvery conhost on the runner started as
conhost.exe 0xffffffff -ForceV1, windowless ones included. A visible console always came with anOpenConsole.exe -Embeddingstart.Related
command_runneroverflow flake on main.Limits
Validation
68de2e0: all 7 checks green, includingrust-metricsandrust (windows-latest)with the new fixture.cargo fmt --all --check,cargo clippy --workspace --all-targets --locked -- -D warningsandcargo test --workspace --lockedall pass.🤖 Generated with Claude Code