feat(ingest): add Google Antigravity support and plugin integration - #667
Open
daveram wants to merge 5 commits into
Open
feat(ingest): add Google Antigravity support and plugin integration#667daveram wants to merge 5 commits into
daveram wants to merge 5 commits into
Conversation
Add comprehensive support for Google Antigravity (CLI / 2.0 app) and Antigravity IDE: - Implement Antigravity ingest source adapter normalizing JSONL transcripts into Moraine schema. - Register antigravity in KNOWN_INGEST_HARNESSES and default sources. - Add SetupMcpTarget::Antigravity with automated ~/.gemini/config/mcp_config.json setup. - Add session label mapping in moraine-conversations. - Add Antigravity plugin manifest and MCP config under plugins/moraine/. - Add deterministic test fixtures and golden normalization tests. - Update documentation in ingest-sources.md and install.md.
…, and stamp model/tokens
…MCP configuration
daveram
marked this pull request as ready for review
August 16, 2026 03:26
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.
Description
What. Completes the Antigravity integration by wiring plugin installation into setup, backfilling the Antigravity ingest source during explicit setup flows, and tightening the workspace/global launcher split.
Why. The original PR could register Moraine with Antigravity but still leave upgraded configs without an Antigravity ingest source, leave the bundled plugin undiscoverable after setup, or keep stale plugin-local MCP launchers that bypass the intended setup contract.
This update:
~/.gemini/config/plugins/moraine/duringmoraine setup integrations antigravity~/.gemini/config/plugins/moraine/mcp_config.jsonso setup owns the global launcher in~/.gemini/config/mcp_config.jsonmoraine setup integrations antigravityandmoraine setup integrations --allruns instead of limiting the source to freshly generated configsplugins/moraine/mcp_config.jsonwhile leaving the documented global Antigravity setup path aligned with Moraine's existing user-scoped host-wide integration modelplugins/moraine/plugin.jsonto the Antigravity manifest shape, which removes the version-drift/release-automation gapsession_id/conversation_idprecedence plusCONVERSATION_HISTORYandSYSTEMnormalization branchesUsage
Configure the global Antigravity integration:
Alias:
For a workspace-scoped plugin bundle, copy or symlink
plugins/moraine/into.agents/plugins/moraine/. The bundled workspacemcp_config.jsonstays project-scoped viamoraine run mcp -- --project-only.Changelog
Bug Evidence
Before this update:
moraine setup integrations antigravityonly wrote~/.gemini/config/mcp_config.json; it did not install the bundled Antigravity plugin.[[ingest.sources]]never picked up the newantigravitysource, so explicit Antigravity setup could succeed while ingesting zero Antigravity transcripts.~/.gemini/config/plugins/moraine/mcp_config.jsoncould survive reruns and keep a second launcher definition alive.The fix changes the setup plan in
apps/moraine/src/commands/setup/harnesses.rs/setup.rs, updates the shipped config template inconfig/moraine.toml, and adds regression coverage for stale plugin cleanup plus Antigravity ingest backfill.Validation
Validated the changed Rust/config surfaces with:
cargo fmt --all -- --checkcargo test -p moraine-config --lib --lockedcargo test -p moraine --bin moraine commands::setup --lockedcargo test -p moraine-ingest-core --lib --lockedcargo test -p moraine-ingest-core --test golden_fixtures --lockedValidated the Antigravity setup path with temporary HOME smoke checks using the rebuilt binary:
target/debug/moraine setup config --yestarget/debug/moraine setup integrations antigravity --yes --output jsontarget/debug/moraine setup --config <custom.toml> integrations antigravity --yes --output jsonThose smokes verified that setup now:
--configargs when requested~/.gemini/config/plugins/moraine/~/.gemini/config/plugins/moraine/mcp_config.jsonValidated Antigravity plugin metadata with:
agy plugin validate <installed-plugin-dir>agy plugin validate plugins/moraineRan the full seven-persona
/code-reviewwave and iterated until the follow-up reviewers reported no remaining findings./moraine-sandbox-qacould not run in this environment becausescripts/dev/sandbox/moraine-sandbox up --quietfailed with Docker socket permission denied (unix:///var/run/docker.sock). I used the focused temp-HOME smoke checks above as the isolated non-host fallback and am calling out the sandbox blocker explicitly.