Startup Dropped to 3ms, and the First Turn Saw Zero Tools
Non-blocking MCP loading cut startup from 2,907ms to 3ms. The wait did not disappear — it moved into the first turn. Here is where it went, measured, plus a readiness gate that waits only for what a turn actually needs.
Antigravity Multi-Agent State Tiers — A Three-Layer Design with Ephemeral, Journal, and Canonical
Before your Antigravity Background Agents and Sub-agents start mixing up their memory, split agent state into three lifetimes — ephemeral, journal, canonical — and map each to the right Cloudflare store. Includes a TypeScript approval gate for write-back, and what changed when headless runs stopped silently auto-approving.
Where Is the Source of Truth for Billing State? Designing the ad-free Pattern with Antigravity
A billing-state design pattern proven in a long-running indie Android app: centralizing state with AdFreeManager, BillingManager, and ModalGate — designed and implemented using Antigravity IDE.
Are You Actually Using Every Permission You Granted? Tightening Antigravity's Unified Permissions from Real Usage Logs
Once you flip a unified permission policy to 'allow everything,' unused grants quietly pile up. This is the grant-to-usage reconciliation loop: match granted permissions against your action logs, revoke what was never exercised, and narrow what's too broad — with working TypeScript and real numbers from solo operation.
Before Your Finger Learns the Approval Dialog: Folding Antigravity Permissions Into One Policy
Scattered approval dialogs, per-MCP allowlists, repeated re-auth. Built around Antigravity 2.2.1's unified permissions and OAuth keyring storage, here is how I fold every permission into a single policy and design away approval fatigue, with working code and measured numbers.
The Day Rolled Over and Yesterday's Wallpaper Came Back — Designing Date Boundaries Instead of Trusting an Agent's Time Code
A record of redesigning a daily-rotating wallpaper feature that showed yesterday's pick after midnight for some users and switched twice in one night for travelers. I separate the device clock, time zone, and daylight saving time into three distinct failure sources, show how to define a stable day key, defend reward boundaries against a rewound clock, and test it all with an injectable clock — from a solo indie developer's point of view.
When CLI, Desktop, and SDK Share One Agent Harness: Designing for Consistent Behavior
Now that Antigravity's CLI, desktop, and SDK share one agent harness, here is how to separate what stays consistent from what differs by environment, and how to align behavior with smoke tests and a version-tracking habit.
Parallel or Keep It Serial: The Break-Even Point When Orchestrating Multiple Agents
Should you run agents in parallel or keep them serial? A simple way to estimate the break-even between coordination cost and saved wall-clock time, plus how I actually split parallel vs serial across four scheduled sites.
Choosing Among Desktop, CLI, SDK, and Managed Agents for the Same Job
Antigravity 2.0 has several surfaces: desktop, CLI, SDK, and the Managed Agents API. Which one should run a given task? Here is a framework for choosing the surface from the nature of the work.
Stopping Parallel Agents from Clobbering the Same File
When you run several agents at once in Antigravity 2.0, two of them can write to the same file and one set of changes silently disappears. Here is how to design write arbitration inside a shared workspace.
When Your Agent Got 4x Faster: Rebuilding the Parallel Pipeline
When the Antigravity CLI moves to a faster model, the bottleneck in your parallel agent pipeline shifts. Here is a practical way to rethink verification, task granularity, concurrency, and cost caps with speed as the new baseline.
Making Apple Foundation Models and Gemini Interchangeable: A Three-Tier Abstraction for In-App AI
After WWDC26 opened Apple Foundation Models to qualifying developers and announced server-side Gemini integration, I redesigned my apps around a three-tier abstraction — on-device, Private Cloud Compute, and third-party APIs — behind a single Swift protocol.