Skip to content

feat(ingest): add Google Antigravity support and plugin integration - #667

Open
daveram wants to merge 5 commits into
eric-tramel:mainfrom
daveram:feat/antigravity-support
Open

feat(ingest): add Google Antigravity support and plugin integration#667
daveram wants to merge 5 commits into
eric-tramel:mainfrom
daveram:feat/antigravity-support

Conversation

@daveram

@daveram daveram commented Aug 16, 2026

Copy link
Copy Markdown

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:

  • installs the Moraine Antigravity plugin bundle into ~/.gemini/config/plugins/moraine/ during moraine setup integrations antigravity
  • removes stale installed ~/.gemini/config/plugins/moraine/mcp_config.json so setup owns the global launcher in ~/.gemini/config/mcp_config.json
  • backfills the Antigravity ingest source for explicit moraine setup integrations antigravity and moraine setup integrations --all runs instead of limiting the source to freshly generated configs
  • keeps the bundled workspace plugin project-scoped via plugins/moraine/mcp_config.json while leaving the documented global Antigravity setup path aligned with Moraine's existing user-scoped host-wide integration model
  • simplifies plugins/moraine/plugin.json to the Antigravity manifest shape, which removes the version-drift/release-automation gap
  • adds focused Antigravity source tests for explicit session_id / conversation_id precedence plus CONVERSATION_HISTORY and SYSTEM normalization branches
  • updates the Antigravity install docs and public harness/source lists to match the shipped behavior

Usage

Configure the global Antigravity integration:

moraine setup integrations antigravity

Alias:

moraine setup integrations antigravity-ide

For a workspace-scoped plugin bundle, copy or symlink plugins/moraine/ into .agents/plugins/moraine/. The bundled workspace mcp_config.json stays project-scoped via moraine run mcp -- --project-only.

Changelog

  • Completes Antigravity setup so it installs the plugin bundle, backfills ingest config on explicit setup flows, and cleans stale plugin-local launchers.
  • Documents the global and workspace Antigravity integration paths consistently with shipped behavior.

Bug Evidence

Before this update:

  • moraine setup integrations antigravity only wrote ~/.gemini/config/mcp_config.json; it did not install the bundled Antigravity plugin.
  • Existing configs with explicit [[ingest.sources]] never picked up the new antigravity source, so explicit Antigravity setup could succeed while ingesting zero Antigravity transcripts.
  • A stale installed ~/.gemini/config/plugins/moraine/mcp_config.json could 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 in config/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 -- --check
  • cargo test -p moraine-config --lib --locked
  • cargo test -p moraine --bin moraine commands::setup --locked
  • cargo test -p moraine-ingest-core --lib --locked
  • cargo test -p moraine-ingest-core --test golden_fixtures --locked

Validated the Antigravity setup path with temporary HOME smoke checks using the rebuilt binary:

  • target/debug/moraine setup config --yes
  • target/debug/moraine setup integrations antigravity --yes --output json
  • target/debug/moraine setup --config <custom.toml> integrations antigravity --yes --output json

Those smokes verified that setup now:

  • writes the global Antigravity MCP config with the absolute built Moraine binary and custom --config args when requested
  • installs the global Antigravity plugin bundle under ~/.gemini/config/plugins/moraine/
  • removes a seeded stale installed ~/.gemini/config/plugins/moraine/mcp_config.json
  • leaves the bundled workspace plugin project-scoped

Validated Antigravity plugin metadata with:

  • agy plugin validate <installed-plugin-dir>
  • agy plugin validate plugins/moraine

Ran the full seven-persona /code-review wave and iterated until the follow-up reviewers reported no remaining findings.

/moraine-sandbox-qa could not run in this environment because scripts/dev/sandbox/moraine-sandbox up --quiet failed 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.

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.
@daveram
daveram marked this pull request as ready for review August 16, 2026 03:26
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