bin/install.js and the SDK already treat Antigravity as a distinct runtime with config dir ~/.gemini/antigravity, env var ANTIGRAVITY_CONFIG_DIR, and CLI flag --antigravity. get-shit-done/workflows/update.md did not — so /gsd-update invoked from an Antigravity install classified the runtime as base Gemini, because: - RUNTIME_DIRS listed "gemini:.gemini" with no antigravity entry, so the scan matched ~/.gemini before ever looking for ~/.gemini/antigravity. - The PREFERRED_RUNTIME env-var ladder checked GEMINI_CONFIG_DIR but not ANTIGRAVITY_CONFIG_DIR. - The local-scope scan loops at lines 101 and 590 listed .gemini with no .gemini/antigravity sibling. - The ENV_RUNTIME_DIRS append block ignored ANTIGRAVITY_CONFIG_DIR. - The path-to-runtime classification bullets only mapped /.gemini/ -> gemini, with no /.gemini/antigravity/ -> antigravity branch. Every list is now updated so the more-specific antigravity entry precedes the base gemini entry, matching the installer at bin/install.js (lines 396-404, 1745-1749, 6175, 6475). tests/bug-3608-antigravity-update-runtime-classification.test.cjs is the structural regression guard. It parses the RUNTIME_DIRS bash array out of update.md and asserts the antigravity entry is present and ordered before gemini, asserts the env-var ladder checks ANTIGRAVITY_CONFIG_DIR before GEMINI_CONFIG_DIR, asserts every `for dir in ...` scan loop that mentions .gemini also lists .gemini/antigravity ordered before it, and asserts the path-classification prose bullet lists antigravity before gemini. Per CONTRIBUTING.md: the test uses readFileSync on a .md file annotated `// allow-test-rule: source-text-is-the-product` because the bash blocks inside update.md ARE the deployed program — the agent loads update.md and runs them as-written. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 lines
714 B
Markdown
6 lines
714 B
Markdown
---
|
|
type: Fixed
|
|
issue: 3608
|
|
---
|
|
**`/gsd-update` invoked from Antigravity now resolves the correct runtime instead of collapsing into base Gemini** — `get-shit-done/workflows/update.md` now models `antigravity` as a first-class runtime everywhere it lists candidate dirs / env vars / classification rules. `RUNTIME_DIRS`, the `PREFERRED_RUNTIME` env-var ladder, the local-scope scan loops, the `ENV_RUNTIME_DIRS` env push, and the path-to-runtime classification bullets all list `antigravity:.gemini/antigravity` (and `ANTIGRAVITY_CONFIG_DIR`) before the base Gemini entry so the more-specific match wins. Adds `tests/bug-3608-antigravity-update-runtime-classification.test.cjs` as a structural regression guard.
|