fix(deps): bump google-antigravity to 0.1.8 to clear a Defender false positive on the bundled harness [PILOT-7463] - #158
Merged
Merged
Conversation
… harness)
Windows Defender false-positives 0.1.7's bundled localharness.exe as
Misleading:Win32/Malgent. It clears the install and is then blocked at
EXECUTION, so every agent start on the Windows eval slice dies with
OSError: [WinError 225] Operation did not complete successfully because the
file contains a virus or potentially unwanted software
and Defender quarantines the exe in the meantime, so the last retry instead
reports "Could not find default localharness binary" - the symptom that hides
the cause. coder_eval_uipath builds 13287452 / 13288171: 0/7 windows tasks.
The false positive is specific to 0.1.7's build: 0.1.8 and 0.1.16 both launch
repeatedly, clean, on the same Defender that quarantines 0.1.7. An AV exclusion
is not available on the eval's Windows image - the agent is elevated and
Add-MpPreference still fails with 0x800106ba, since Defender's config is
centrally managed there - so the pin is the only lever.
Ran the pyproject glibc gate rather than trusting the manylinux tag. 0.1.8's
Linux localharness has no DT_RELR, max required symbol GLIBC_2.26, and the same
DT_NEEDED set as 0.1.7, so it loads on Ubuntu 22.04 (glibc 2.35) exactly as the
current pin does. The same method reproduces the documented 0.1.7 baseline, so
it is the gate the comment describes. Recorded in the note, along with the fact
that 0.1.16+ ships a fully static localharness (no PT_INTERP, no DT_NEEDED,
hence its added musllinux tag), which retires the check.
0.1.8 is the smallest step off the bad build and holds every SDK contract this
repo touches: LocalAgentConfig kwargs (incl. env, its None default and
round-trip), hooks.policy.{allow_all,workspace_only},
types.{ThinkingLevel,GeminiAPIEndpoint,GeminiModelOptions,UsageMetadata,Step*}
and Conversation.{send,receive_steps,wait_for_idle,wait_for_wakeup}.
tests/test_antigravity_agent.py passes 66/66 with the extra installed, so the
three real-SDK importorskip tests actually executed against 0.1.8.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The incident narrative lives in PILOT-7463 and PR #158. Keep the comment to what a future bumper must act on: the glibc gate, its current result, and the note that 0.1.16+ retires it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Mihaiii
marked this pull request as ready for review
September 7, 2026 09:43
Mihaiii
requested review from
CarlesUIPath,
akshaylive,
bai-uipath,
tmatup and
uipreliga
as code owners
September 7, 2026 09:43
|
Claude finished @Mihaiii's task in 1m 20s —— View job PR Review in Progress
|
CarlesUIPath
approved these changes
Sep 7, 2026
CarlesUIPath
left a comment
Collaborator
There was a problem hiding this comment.
Approve, trivial bump. Some follow-ups my agent review caught for doc hygiene easily actionable:
- docs/agents/ANTIGRAVITY.md:30 still says "pinned to 0.1.7" — stale after this bump.
- The glibc/ELF floor in the pin comment is verified manually, not in CI. Worth a small opt-in smoke job (install .[antigravity] on the 22.04 target + import, or a scripted readelf -d | grep RELR assertion) so the floor is machine-enforced — and a pin↔doc parity lint rule would stop the doc drifting again.
Contributor
Author
|
"docs/agents/ANTIGRAVITY.md:30 still says "pinned to 0.1.7" — stale after this bump." - addressed in 7b2154d , thanks! I do have a nightly pipeline run here (stopped after a few minutes), except I changed the code in coder_eval_uipath to install the desired version due to coder_eval needing a new version release with this fix so that was a workaround to arrive to the same desired Antigravity version and check it works. |
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.

Issue
PILOT-7463
Summary
antigravityextra fromgoogle-antigravity==0.1.7to==0.1.8, relock.localharness.exetrips a Windows Defender false positive (Misleading:Win32/Malgent) that blocks execution, so every antigravity agent start on the Windows eval slice dies with[WinError 225] ... the file contains a virus or potentially unwanted software.coder_eval_uipathbuilds 13287452 / 13288171: 0/7 windows tasks each.Add-MpPreferencestill fails with0x800106ba(Defender config is centrally managed there), so the pin is the only lever.Why the log said something else
The SDK retries agent start 4x. Attempts 1-3 fail at
subprocess.PopenwithWinError 225; Defender quarantines the exe in the meantime, so attempt 4 raisesCould not find default localharness binary— and that is the message the run reports. It points at path/PATH discovery instead of an AV block, which is what makes this bug read as a packaging problem. Read the first agent-start traceback, not the last.glibc gate
pyproject.tomlrequires verifying the bundled ELF before bumping, since themanylinux_2_17tag is not a reliable floor. Checked withpyelftoolsagainst the published Linux wheels:DT_RELRGLIBC_2.26DT_NEEDEDGLIBC_2.26DT_NEEDEDPT_INTERP0.1.8 is identical to the current pin, so it loads on Ubuntu 22.04 (glibc 2.35). The note now records that, plus the fact that 0.1.16+ ships a static binary (hence its added musllinux tag), which retires the check.
Testing
tests/test_antigravity_agent.py: 66 passed with the extra installed, so the three real-SDKimportorskiptests actually executed against 0.1.8.LocalAgentConfigkwargs (incl.env, itsNonedefault and round-trip),hooks.policy.{allow_all,workspace_only},types.{ThinkingLevel,GeminiAPIEndpoint,GeminiModelOptions,UsageMetadata,Step*},Conversation.{send,receive_steps,wait_for_idle,wait_for_wakeup}.ruff format --checkandruff checkclean.Follow-ups
coder_eval_uipathbranchfix/antigravity-windowscarries a self-retiring stopgap that pins 0.1.8 forward on the Windows slice only — it compares the installed pin against 0.1.7 and turns itself off once this ships.localharness.exeto Microsoft as a false positive.ThinkingLevelmirror atsrc/coder_eval/models/agent_config.py:317isLiteral["minimal","low","medium","high"], but the SDK enum has a fifth valueextra_high(identical on 0.1.7/0.1.8/0.1.16).thinking_level: extra_highis rejected with a Pydanticliteral_error, so the top reasoning level is unreachable through coder_eval.