Skip to content

feat(antigravity): add Antigravity extension host and Auxiliary Pane sidecar - #91

Open
baveku wants to merge 1 commit into
callstackincubator:mainfrom
baveku:feat/antigravity-extension
Open

baveku wants to merge 1 commit into
callstackincubator:mainfrom
baveku:feat/antigravity-extension

Conversation

@baveku

@baveku baveku commented Nov 6, 2026

Copy link
Copy Markdown

Summary

Add Google Antigravity (apps/antigravity) as a plugin and UI extension host, rendering Mobile Dev in the Antigravity Auxiliary Pane (SIDECAR_UI_ENTRYPOINT_AUX_PANE) and sharing the session with the mobile-dev MCP server.

apps/antigravity/
├── .antigravity-plugin/plugin.json         # Antigravity plugin manifest
├── mcp_config.json                         # MCP server launch entry
├── hooks.json                              # SessionStart Node >= 22.19 check
├── plugin-host.json                        # Host build config (5 MiB limit, downloaded panel runtime)
├── server/
│   ├── index.ts                            # Entry split for bundle size limit
│   └── server.ts                           # Shared stdio server + browserPanel + agentDeviceTools
├── sidecars/
│   ├── device-panel/sidecar.json           # Aux Pane Web UI sidecar declaration
│   └── launch.mjs                          # Token-authenticated reverse proxy to the active browser panel
├── skills/mobile-dev/                      # Antigravity Mobile Dev skill and missing-tools reference
└── tooling/
    ├── build.mjs                           # Server bundle build
    └── publish-release.mjs                 # Publishes release/antigravity branch
sequenceDiagram
    participant IDE as Antigravity Aux Pane
    participant Sidecar as sidecars/launch.mjs
    participant Server as dist/server.mjs (MCP + Panel)
    IDE->>Sidecar: GET /?token=<ANTIGRAVITY_SIDECAR_UI_TOKEN>
    Sidecar->>Server: Proxy /, /mcp, /context (with x-sidecar-token)
    Server-->>Sidecar: Streamable HTTP MCP + Panel HTML
    Sidecar-->>IDE: Render Mobile Dev in Auxiliary Pane
Loading

Key changes:

  • apps/antigravity: Add plugin manifest, MCP config, SessionStart hook, Auxiliary Pane sidecar (device-panel), sidecar reverse proxy (launch.mjs) with TCP health check and automatic reconnect, build script, and release/antigravity branch publisher.
  • packages/core/src/browser-panel.ts: Add optional onPage callback and instructions formatter to BrowserPanelOptions so a host can record the active loopback panel URL and customize opening instructions.
  • packages/core/src/panel-runtime.ts: Support PLUGIN_DATA alongside CLAUDE_PLUGIN_DATA for the downloaded panel runtime directory.
  • packages/core/src/physical-ios-bezel.ts: Resolve baguette/Baguette via panelRuntimePath when running from bundled .mjs files.
  • packages/mcp-app/src/browser-panel.ts: Forward token query parameter as x-sidecar-token on /mcp and /context requests and reload once automatically when a sidecar session expires (404).
  • tooling/smoke-plugin.mjs: Support hosts that declare mcpConfig and hooks paths in plugin-host.json.

Evidence

  • Before: Antigravity had no native apps/antigravity host package or Auxiliary Pane sidecar integration.
  • After: Unit tests, telemetry typecheck, release branch publishing tests, and agy plugin validate --strict pass; the extension installs from release/antigravity and renders the live device panel and performance profiler in the Antigravity Auxiliary Pane.
✔ publishing puts the Antigravity extension beside its marketplace on release/antigravity
✔ only a release build matching its tag is published
✔ browserPanel notifies onPage on startup and when a panel tool runs, with custom instructions
✔ the host's plugin data folder holds the runtime when it provides one
✔ tsc --noEmit (typecheck:telemetry)
✔ agy plugin validate --strict

Merge Danger

Door: Two-way

All Antigravity-specific files live in apps/antigravity, and changes in packages/core, packages/mcp-app, and tooling/smoke-plugin.mjs are additive and backward-compatible with existing Codex, Claude, Cursor, and Mac hosts.

Blast Radius: Low

Existing hosts keep their default behavior when onPage, instructions, PLUGIN_DATA, and ?token= are unset.

@vercel

vercel Bot commented Nov 6, 2026

Copy link
Copy Markdown

@baveku is attempting to deploy a commit to the Margelo Team on Vercel.

A member of the Team first needs to authorize it.

@baveku
baveku force-pushed the feat/antigravity-extension branch from 3063192 to 430b18b Compare November 7, 2026 16:04

This branch has not been deployed

No deployments
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