Skip to content

Add Antigravity CLI (agy) transition awareness to the Gemini adapter#2

Open
luisalima wants to merge 3 commits into
mainfrom
agy-transition
Open

Add Antigravity CLI (agy) transition awareness to the Gemini adapter#2
luisalima wants to merge 3 commits into
mainfrom
agy-transition

Conversation

@luisalima

Copy link
Copy Markdown
Contributor

What

Google announced on 2026-05-19 that Gemini CLI stops serving consumer tiers (AI Pro, Ultra, free Code Assist) on 2026-06-18 in favor of the closed-source, Go-based Antigravity CLI (binary agy). Enterprise Gemini Code Assist licenses keep Gemini CLI access, so the gemini adapter stays.

The tricky part for sandshell: agy reuses ~/.gemini/ but reads its own config nested under ~/.gemini/antigravity-cli/, and its security settings (sandbox, approval modes) are not yet documented. That creates two failure modes this PR addresses:

  1. False coverage — a passing Gemini audit on an agy host says nothing about agy sessions.
  2. Misleading criticals~/.gemini existing no longer implies Gemini CLI, so agy-only hosts would get "sandbox not configured" findings for a tool they don't have.

Changes

  • agents/gemini/audit.sh — new gemini.agy_transition finding: info when agy coexists with Gemini CLI, high when only agy is present. On agy-only hosts with no Gemini CLI config, the legacy checks are skipped instead of emitting criticals about settings no installed tool reads.
  • agents/host/audit.sh — alias/function bypass scans now cover agy (its documented bypass flag is --dangerously-skip-permissions, already in the flag list).
  • scripts/detect.sh — reports agent_antigravity (keyed on ~/.gemini/antigravity-cli, not ~/.gemini) plus a sunset hint.
  • scripts/setup-gemini.sh — usage and post-apply output note the sunset and warn when agy is detected.
  • KNOWN_ISSUES.md — tracks the blocked agy adapter: a real setup-agy.sh / agents/agy/audit.sh needs Google to document agy's settings schema; closed source rules out the source-reading verification used for gemini-cli, so empirical probing inside agy --sandbox is the likely path.
  • README, CHANGELOG — sunset callout and Unreleased entry.

Testing

  • bash tests/run.sh — all pass, including 4 new agy cases in test_audit_gemini.sh (agy-only → high + legacy checks still run against existing config; coexistence → info; agy-only with no Gemini config → only the transition finding; no agy → silent) and agent_antigravity coverage in test_detect.sh. New cases pin PATH to system dirs + a fakebin so host-installed binaries can't leak in.
  • bash scripts/release-check.sh — passes (includes shellcheck).
  • Manual: detect.sh and the gemini audit run clean on a real host with gemini installed and no agy (transition finding correctly silent).

🤖 Generated with Claude Code

luisalima and others added 3 commits June 12, 2026 15:23
Google sunsets Gemini CLI for consumer tiers on 2026-06-18 in favor of
the closed-source Antigravity CLI (agy), which reuses ~/.gemini/ but
reads its own config under ~/.gemini/antigravity-cli/ and whose security
settings are not yet documented.

- New gemini.agy_transition audit finding: info when agy coexists with
  Gemini CLI, high when only agy is present (so a passing Gemini audit
  isn't mistaken for agy coverage)
- Skip legacy Gemini checks on agy-only hosts with no Gemini CLI config
  (~/.gemini existing no longer implies Gemini CLI)
- detect.sh reports agent_antigravity and a transition hint
- Host alias/function bypass checks cover agy
  (--dangerously-skip-permissions)
- apply gemini warns when agy is present; usage notes the sunset
- KNOWN_ISSUES.md tracks the blocked agy adapter (schema undocumented;
  closed source rules out the gemini-cli source-reading approach)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ries

CI has been red on main since 2026-05-08: cases 4/5 used PATH=/usr/bin:/bin
as a stand-in for "no container runtime installed", but GitHub's ubuntu
runners ship docker at /usr/bin/docker, so linux_runtime_missing
(correctly) never fired. Replace system-dir PATHs with a restricted bin
dir that symlinks only the tools the adapter needs, so docker/podman/lxc/
gemini/agy presence is controlled entirely by the test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Second front of the same pre-existing breakage: cases 7/8/9 used
PATH=/usr/bin:/bin (or kept it in the search path) as a stand-in for
"no container runtime", but GitHub's ubuntu runners ship docker at
/usr/bin/docker, so setup-gemini.sh picked it up and wrote
tools.sandbox=docker where the tests expected it omitted/podman.

Mirror the real PATH into a scratch dir, symlinking everything except
docker/podman/lxc/runsc, so runtime presence is controlled entirely by
the test while every other tool the script needs stays reachable. Case 7
(podman) now asserts unconditionally instead of skipping when the host
has docker.

Verified by running the full suite and release-check with a fake docker
(and podman) prepended to PATH — all green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant