Skip to content

feat: run antigravity through its acp server - #349

Open
laurentcodes wants to merge 5 commits into
zeronsh:mainfrom
laurentcodes:antigravity-harness
Open

laurentcodes wants to merge 5 commits into
zeronsh:mainfrom
laurentcodes:antigravity-harness

Conversation

@laurentcodes

@laurentcodes laurentcodes commented Sep 13, 2026

Copy link
Copy Markdown

summary

  • replaces the legacy agy stream-json driver with Antigravity's ACP server, downloaded and managed by Zeron
  • keeps Antigravity disabled by default; enabling starts Google sign-in and disabling signs out
  • consolidates model variants into one entry per model with Low, Medium, and High reasoning levels, removing the duplicate Gemini 3.1 Pro entry
  • exposes Antigravity skills as slash commands while hiding /logout
  • hides the context indicator when no window is reported and lets the context tooltip show its full text

changes

  • ACP driver: launches Antigravity through its ACP server and handles server download, lifecycle, session interaction, and model discovery in Zeron
  • account flow: enables Google sign-in only when Antigravity is switched on; disabling the harness signs out its account
  • model picker: groups reasoning variants under their base model and maps the selected Low, Medium, or High setting to the corresponding server model
  • composer commands: surfaces server-provided skills as slash commands and filters out /logout
  • context UI: omits the indicator when the harness does not report a context window and removes the tooltip width constraint that truncated usage text
  • probe: adds crates/harness/examples/antigravity_acp_probe.rs for inspecting the live ACP server's models and messages; it only sends a live prompt when invoked with --prompt

verification

  • ran the targeted tests for each changed area
  • ran cargo check --workspace --all-targets
  • did not re-run the full test suite immediately before this commit
  • shell_env::...falls_back_when_interactive_attempt_hangs fails consistently outside this change
  • the iOS app was not built
  • root-level JavaScript lint, build, and docs commands do not apply because this repository has no root JS project

@laurentcodes laurentcodes changed the title Add Antigravity (agy) as a native agent harness feat: add antigravity agy harness with grouped reasoning models Sep 13, 2026
@laurentcodes laurentcodes changed the title feat: add antigravity agy harness with grouped reasoning models feat: run antigravity through its acp server Sep 14, 2026
drive google's agy cli over its own stream-json print mode: one process
per session with prompts written to stdin, step updates normalized into
text, tool and context-usage events, and the terminal result frame as
the turn end. steers queue for the next turn, interrupts signal the
process, and resumes reopen the conversation with --conversation.

agy lists every effort as its own model id, so variants are grouped into
one model with a low/medium/high ladder and the picked level is folded
back into the variant id at run time.

headless agy cannot prompt for permission, so sessions run in
accept-edits mode unless auto-approve is on, and denied actions surface
as an error explaining how to allow them.

wires the harness through the proto id, engine registry, account slugs,
desktop pickers and settings, and the ios catalog and brand mark.
zeron has no approval ui and headless agy auto-denies anything it would
prompt for, so runs always pass --dangerously-skip-permissions, matching
the claude and codex harnesses. denied actions can now only come from
agy's own deny rules, and the error says so instead of pointing at a
missing auto-approve toggle.

agy reports token counts but no context window, so context usage now
carries the published window for the gemini, claude and gpt-oss model
families, leaving it unreported when agy picks its own default model.
once prompt caching kicks in agy moves the cached prefix out of
input_tokens into cache_read_tokens, so the context indicator dropped
and climbed between steps. context usage now reports their sum, which
grows steadily across a run.

the context window tooltip was fixed at 260px regardless of its text, so
it now sizes to its content up to that width and groups token counts by
thousands.
zeron showed no slash commands for antigravity. commands now come from
agy's own `-p=/skills` json listing, which answers without a model turn,
covering built-in and global skills. names are deduped in listing order
and descriptions trimmed to their first sentence for the picker, and a
non-empty listing is cached like the model catalog.

agy's cli commands such as /usage and /model are refused under
--input-format stream-json, so they are not offered. the listing runs
from home because the command list is not scoped to a session, so
workspace skills are not listed but still expand when typed.
replace the agy stream-json driver with google's antigravity acp server
(agy_acp_server 1.1.1) on the shared acp harness. the pinned release
archive for the platform downloads and unpacks once into the managed
adapters dir, reusing the npm installer's atomic marker and lock.

antigravity is now off by default. turning it on in settings runs the
server's google sign-in from home, outside any project, so preview
discovery never consumes the one-shot oauth redirect; the app opens the
single sign-in tab from the polled url and the toggle flips only once
sign-in succeeds. turning it off signs out through acp logout, and a run
without a login points to settings instead of opening a browser.

effort variants group by their display name, since a signed-in catalog
pairs gemini-3.1-pro-low with gemini-pro-agent for high, and each level
sends the id the server advertises. skills from the global gemini skill
folders are listed as slash commands next to the server's own, with
logout hidden. the context indicator is hidden until a window is
reported, and its tooltip no longer clips wrapped text.
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