feat(providers): observe local Antigravity sessions - #462
Merged
Conversation
Antigravity runs coding agents on three surfaces — the Agent Manager app, the IDE, and the agy terminal CLI — and all three record their conversations under ~/.gemini/<profile>/. The formats are protocol buffers whose schemas ship only inside Antigravity's own binary, so the adapter carries a small wire-format reader over field numbers taken from the schema descriptors that binary embeds, and a records module naming every field it consults. The Agent Manager writes a summaries index (title, run status, workspace, branch, permission holds, the agent's latest notification), and its conversations draw the index's own reading. The IDE and CLI write no index, so their rows derive from each conversation's SQLite store: status from the newest step, the held tool while a permission dialog stands, the generated title the newest checkpoint step records — the same name every surface's picker shows — the developer's opening ask and rename as the next names in line, the workspace from the store's trajectory metadata, and the branch from the folder's own git HEAD. Errors carry the app's own recorded words, recaps are the agent's latest notification once a turn settles, and archived conversations draw no row. A row's address is the surface that holds it: the Agent Manager under its antigravity: scheme (with the app's own /c/<id> conversation route, ready for the day its deep-link handler learns it), the IDE's workspace window under the antigravity-ide://file form every VS Code-derived editor routes, and no address for a CLI conversation, like every terminal agent's. Neither app documents a conversation-level deep link today, and Antigravity documents no way to message a running conversation, so its sessions stay entirely read-only; conversations from older builds are not plaintext and keep the honest refusal, as does transcript rendering for tool outputs, which live in blobs this build does not render. The double-arch mark is reproduced verbatim from the vector antigravity.google inlines as its own site logo, aurora field and all, the way the Gemini mark is; the guide, README table, and transcript-read list learn the provider in the same change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ac5750d. Configure here.
The indexed rows read their store's newest step only inside the freshness window, so a settled failure older than fifteen minutes melted to idle — but a failure does not heal by going stale. Every row now reads its store through the same mtime-keyed cache the derived rows use, so the reading costs a stat per pass instead of an open, and an old failure stays the rescue it is. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

Summary
Luke now observes Google Antigravity's coding agents across all three of its surfaces — the Agent Manager app, the IDE, and the
agyterminal CLI — from the state each already writes under~/.gemini/<profile>/, read-only, with no credential and no hook.Antigravity's formats are protocol buffers whose schemas ship only inside its own binary, so the adapter carries a small wire-format reader over field numbers taken from the schema descriptors that binary embeds, with a
records.tsnaming every field it consults.run_command: git push --force), errors in the app's own recorded words, and archived conversations draw no row.antigravity:scheme (carrying the app's own/c/<id>conversation route, verified harmless today and ready for the day its deep-link handler learns it), the IDE's workspace window under theantigravity-ide://fileform every VS Code-derived editor routes, and no address for a CLI conversation, like every terminal agent. Neither app documents a conversation-level deep link; both behaviors were verified against the running apps..pbconversations are not plaintext; both keep the honest refusal.agentapineeds tokens the app hands only to its own subprocesses), so sessions advertise nothing and stay entirely read-only.The guide, README table, and transcript-read list learn the provider in the same change. 30 adapter/transcript tests, all fixtures synthesized.
Testing
./scripts/check.shpasses;./scripts/verify.shpassed on the UI change (mark + CSS), evidence inspected, no physical-notch check performed🤖 Generated with Claude Code
Automated visual evidence
Download the deterministic macOS evidence · workflow run
8051b4735192dae3bf381284dd853b146e7df657smoke