[PR #3249] [CLOSED] feat(clients): register Antigravity CLI during setup #5674

Closed
opened 2026-10-31 01:08:30 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3249
Author: @IvenKooLab
Created: 10/14/2026
Status: ❌ Closed

Base: main ← Head: feat/antigravity-cli-client


📝 Commits (3)

  • 1d48ac8 feat(clients): register Antigravity CLI during setup
  • f879216 fix(clients): detect the Antigravity CLI from its own installation root
  • 1677c06 Merge remote-tracking branch 'origin/main' into HEAD

📊 Changes

6 files changed (+295 additions, -38 deletions)

View changed files

📝 .agents/skills/reverse-engineer-anything/references/connection-and-recovery.md (+1 -1)
📝 docs/client-configuration.md (+9 -0)
📝 docs/installation.md (+27 -26)
📝 src/application/SupportedClients.ts (+47 -11)
➕ tests/boundary/filesystem/antigravityCliClientConfiguration.test.ts (+210 -0)
📝 tests/boundary/filesystem/clientLifecycle.test.ts (+1 -0)

📄 Description

Summary

Register the Antigravity CLI (antigravity_cli) so CLI users get REA's workflow skill where the CLI loads it, instead of an MCP registration with no skill.

Problem and expected behavior

The Antigravity CLI reads the same global ~/.gemini/config/mcp_config.json registration file as the IDE (docs), so the existing antigravity client already registers MCP for both surfaces. But per the official skills documentation and the Gemini CLI migration guide, the CLI discovers global skills from ~/.gemini/antigravity-cli/skills/, not the IDE's ~/.gemini/config/skills/. Setup therefore registered the CLI's MCP server while the workflow skill never landed in the CLI's skills root — the same surface-specific skill-root gap the Trae and Qoder reviews fixed.

The new definition:

  • shares ~/.gemini/config/mcp_config.json as its configuration file, so selecting either Antigravity surface registers the same entry and a second selection is unchanged;
  • carries its own marker (~/.gemini/antigravity-cli) so detection reflects a CLI installation, not just the IDE;
  • installs the bundled skill copy under ~/.gemini/antigravity-cli/skills while antigravity keeps ~/.gemini/config/skills;
  • uninstalls idempotently across the shared file: the second surface reports skipped ("REA registration is absent") and unrelated servers survive.

Validation

Local verification on macOS arm64, Node 24.18.0/npm 11.16.0, with a fresh locked install. The tested tree was an actual three-way merge of main ca7ee018b and PR head 1677c06be in an isolated checkout. The merge had no conflicts; the installation table row was retained without manual edits.

  • Six focused files: 106/106 passed — Antigravity configuration 7, client lifecycle 56, product catalog 10, registration status 22, cleanup ownership 6, and public CLI profiles 5.
  • Additional compiled REA CLI checks: setup, scoped doctor (aligned), repeated setup (no actions and identical config bytes), uninstall, then scoped doctor (missing). Unrelated shared-file settings and user-owned skill notes survived. The CLI skill root stayed separate from the IDE's. An IDE-only --all-detected --dry-run did not select the CLI.
  • npm run verify:package — passed, including isolated install/update, CLI/MCP startup, setup/uninstall, backup recovery, symlink handling, and cleanup. The first attempt hit this host's Swift 6.3.3/default SDK 27 mismatch; the successful retry selected the installed SDK 26.5 and compiler through command-scoped environment settings.
  • npm pack --dry-run --json — passed (1,714 entries).
  • npm run docs:check — passed, including 5 README consistency tests.
  • npm run check — failed on the existing formatting of src/adb/AdbProvider.ts, which is byte-for-byte identical to main ca7ee018b. Separate typecheck, lint, knip, metadata, and architecture checks passed; lint reported 0 errors. git diff --cached --check passed. The full gate is not claimed as passing.
Focused test command
npm run test:focused -- \
  tests/boundary/filesystem/antigravityCliClientConfiguration.test.ts \
  tests/boundary/filesystem/clientLifecycle.test.ts \
  tests/boundary/filesystem/productCatalog.test.ts \
  tests/boundary/filesystem/clientRegistrationStatus.test.ts \
  tests/boundary/filesystem/setupClientConfigCleanupOwnership.test.ts \
  tests/boundary/cli/clientProfileLifecycle.test.ts

The closed-source Antigravity client was not installed or run, so its actual discovery and skill loading remain unverified. This run exercised REA's public CLI and filesystem/package boundaries on macOS; no additional Windows/Linux host verification is claimed.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/3249 **Author:** [@IvenKooLab](https://github.com/IvenKooLab) **Created:** 10/14/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/antigravity-cli-client` --- ### 📝 Commits (3) - [`1d48ac8`](https://github.com/morluto/rea/commit/1d48ac8eb1be5f4bb672a0db67d6713e9cb48720) feat(clients): register Antigravity CLI during setup - [`f879216`](https://github.com/morluto/rea/commit/f8792161c15da6b8242024ce8f31740b02c7de12) fix(clients): detect the Antigravity CLI from its own installation root - [`1677c06`](https://github.com/morluto/rea/commit/1677c06be455507b2cd50efc3ffecb2f226dfd45) Merge remote-tracking branch 'origin/main' into HEAD ### 📊 Changes **6 files changed** (+295 additions, -38 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/reverse-engineer-anything/references/connection-and-recovery.md` (+1 -1) 📝 `docs/client-configuration.md` (+9 -0) 📝 `docs/installation.md` (+27 -26) 📝 `src/application/SupportedClients.ts` (+47 -11) ➕ `tests/boundary/filesystem/antigravityCliClientConfiguration.test.ts` (+210 -0) 📝 `tests/boundary/filesystem/clientLifecycle.test.ts` (+1 -0) </details> ### 📄 Description ## Summary Register the Antigravity CLI (`antigravity_cli`) so CLI users get REA's workflow skill where the CLI loads it, instead of an MCP registration with no skill. ## Problem and expected behavior The Antigravity CLI reads the same global `~/.gemini/config/mcp_config.json` registration file as the IDE ([docs](https://antigravity.google/docs/mcp)), so the existing `antigravity` client already registers MCP for both surfaces. But per the official [skills documentation](https://antigravity.google/docs/skills) and the [Gemini CLI migration guide](https://antigravity.google/docs/cli/gcli-migration), the CLI discovers global skills from `~/.gemini/antigravity-cli/skills/`, not the IDE's `~/.gemini/config/skills/`. Setup therefore registered the CLI's MCP server while the workflow skill never landed in the CLI's skills root — the same surface-specific skill-root gap the Trae and Qoder reviews fixed. The new definition: - shares `~/.gemini/config/mcp_config.json` as its configuration file, so selecting either Antigravity surface registers the same entry and a second selection is `unchanged`; - carries its own marker (`~/.gemini/antigravity-cli`) so detection reflects a CLI installation, not just the IDE; - installs the bundled skill copy under `~/.gemini/antigravity-cli/skills` while `antigravity` keeps `~/.gemini/config/skills`; - uninstalls idempotently across the shared file: the second surface reports `skipped` ("REA registration is absent") and unrelated servers survive. ## Validation Local verification on macOS arm64, Node 24.18.0/npm 11.16.0, with a fresh locked install. The tested tree was an actual three-way merge of main `ca7ee018b` and PR head `1677c06be` in an isolated checkout. The merge had no conflicts; the installation table row was retained without manual edits. - Six focused files: **106/106 passed** — Antigravity configuration 7, client lifecycle 56, product catalog 10, registration status 22, cleanup ownership 6, and public CLI profiles 5. - Additional compiled REA CLI checks: setup, scoped doctor (`aligned`), repeated setup (no actions and identical config bytes), uninstall, then scoped doctor (`missing`). Unrelated shared-file settings and user-owned skill notes survived. The CLI skill root stayed separate from the IDE's. An IDE-only `--all-detected --dry-run` did not select the CLI. - `npm run verify:package` — passed, including isolated install/update, CLI/MCP startup, setup/uninstall, backup recovery, symlink handling, and cleanup. The first attempt hit this host's Swift 6.3.3/default SDK 27 mismatch; the successful retry selected the installed SDK 26.5 and compiler through command-scoped environment settings. - `npm pack --dry-run --json` — passed (1,714 entries). - `npm run docs:check` — passed, including 5 README consistency tests. - `npm run check` — failed on the existing formatting of `src/adb/AdbProvider.ts`, which is byte-for-byte identical to main `ca7ee018b`. Separate typecheck, lint, knip, metadata, and architecture checks passed; lint reported 0 errors. `git diff --cached --check` passed. The full gate is not claimed as passing. <details> <summary>Focused test command</summary> ```bash npm run test:focused -- \ tests/boundary/filesystem/antigravityCliClientConfiguration.test.ts \ tests/boundary/filesystem/clientLifecycle.test.ts \ tests/boundary/filesystem/productCatalog.test.ts \ tests/boundary/filesystem/clientRegistrationStatus.test.ts \ tests/boundary/filesystem/setupClientConfigCleanupOwnership.test.ts \ tests/boundary/cli/clientProfileLifecycle.test.ts ``` </details> The closed-source Antigravity client was not installed or run, so its actual discovery and skill loading remain unverified. This run exercised REA's public CLI and filesystem/package boundaries on macOS; no additional Windows/Linux host verification is claimed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:08:30 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5674
No description provided.