Three Safety Nets to Test with a Fake agy Before Running the Antigravity CLI in a Container
Before you call the Antigravity CLI (agy) from Docker or a Cloud Run job, reproduce three failure modes with a fake agy: an installer that returns gzip, a hang on tool approval, and an exit code of 0 with nothing produced. Everything here rests on official docs and on code I ran myself.
I Asked for the Whole Quote PDF Tool at Once, Then Split It Into Four Requests
How I moved my client quote paperwork from copy-and-edit to a small PDF tool built with Antigravity, why the first single-shot request had to be thrown away, and the four smaller requests that replaced it, with working code.
Antigravity CLI 1.1.28 turns a print-timeout overrun into a successful exit — rechecking unattended runs
Since 1.1.28, an expired --print-timeout returns partial output and exits successfully instead of failing. Fetching an external URL now asks for approval first. Here is how I rebuilt an unattended pipeline that judged everything by the exit code.
When an Antigravity Scheduled Task Never Runs: Check sidecar.json, Then enabled, Then the Logs
A checking order for Antigravity 2.0 Scheduled Tasks that quietly do nothing: where sidecar.json lives, how the directory name becomes the ID, the enabled flag in config.json, and the logs under sidecar_data.
The Cleanup Step Removed the Working Directory, Not Its Contents — Making Unattended Destruction Fail Closed
An unattended cleanup step deleted the working directory itself instead of what was inside it. Here is why the mkdir -p that followed was not a safety net, and how a defensive-looking default value ended up selecting the destructive branch, with the actual verification output.
Driving Antigravity CLI with stream-json Input: Where to Split the Conversation
The print mode now accepts --input-format stream-json, letting an external driver hold one session open and feed it jobs one at a time. I measured how much a single conversation carries across 24 jobs, found that a byte budget splits work in the wrong place, and worked out how to choose the split boundary instead.
The pipe in my wrapper was swallowing Antigravity CLI's exit code
CLI 1.1.14 surfaces language server failures as a non-zero exit. That improvement never reaches you if your automation wrapper drops the exit code first. I ran sixteen calling patterns on bash 5.1 and recorded which ones make the failure disappear, plus the fixes that bring it back.
2.6.0 Changed How Hooks Wait. A Triage Order for Turns That Never Finish
When an agent turn never finishes, the cause is often a hook you wrote rather than the model. Here is what changed in IDE 2.6.0, an audit script that finds hooks capable of stalling a turn, and how to give a hook its own cutoff.
Guarding the Turn Boundary in Non-Interactive Runs: A Command Table and a Fail-Closed Gate
A scheduled job meant only to record usage was calling the model on every run. Here is how I split commands into ones that start a turn and ones that do not, built a gate that refuses anything unclassified, and measured it against real scripts.
Who Approved the Right Side of &&? Splitting Shell Commands Before Matching Allow Rules
The approval dialog showed part of what actually ran. Here is a harness that splits compound shell commands without breaking quotes or command substitution, matches allow rules per segment, and the numbers from running it over 45 real commands.
One Space in a Path, and Nine Commands Reported Success While Counting the Wrong Place
A single space in a workspace name sends agent-written commands somewhere else, quietly. Measurements across eleven unquoted-path forms, and the entry-point script that closes the boundary in one cd.
Running 50+ AdMob Mediation Groups Alone: Four Tasks I Handed to an Agent, Four Decisions I Kept
Two wallpaper apps on iOS and Android put me past 50 AdMob mediation groups. Here are the four tasks I handed to an agent, the four decisions I kept, and the sample-size hole I later found in the evaluation code I had published.