You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1.108.88's `install antigravity` wrote to the wrong locations
(~/.gemini/settings.json + ~/.gemini/antigravity/skills/, taken from a competitor
README) and never actually configured Antigravity.
- Removed the install target, client auto-detection, alias, and skill wiring;
deleted cli/antigravity.py and tests/test_antigravity_install.py. cli/init.py,
cli/skills.py, server.py restored byte-for-byte to their 1.108.87 shape.
- README now documents the real path: Antigravity (2.0/IDE/CLI) loads MCP
servers from the shared HOME-level ~/.gemini/config/mcp_config.json; shared
skills in ~/.gemini/skills/. Copy-paste block added to "Works with".
#307 was already closed 2026-05-23 (manual config documented/working). A
first-class installer stays deferred pending demand. No INDEX_VERSION bump.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# jcodemunch-mcp — Project Brief
2
2
3
3
## Current State
4
-
- **Version:** 1.108.88 — Antigravity (Google) install target (#307). Antigravity follows the Gemini CLI contract: MCP servers in `~/.gemini/settings.json` under a top-level `mcpServers` object (same shape as every other json_patch client), skills under `~/.gemini/antigravity/skills/`. So MCP registration rides the existing path: `_detect_clients()` adds an `MCPClient("Antigravity", ~/.gemini/settings.json, "json_patch")` when `~/.gemini` exists, and `"antigravity"` is in `_AGENT_ALIASES` → `install antigravity` / `install --all` / `init` / `uninstall` / `install-status` all work. New `cli/antigravity.py` owns the Antigravity paths + skill install (`install_antigravity_skill`/`uninstall_antigravity_skill`/`antigravity_skill_status`). `cli/skills.py` refactored: new directory-keyed core (`_install_skill_at`/`_uninstall_skill_at`/`_skill_status_at`) shared by Claude + Antigravity bundles — Claude skill behavior/return-strings byte-identical (existing tests pass). `run_init` installs the Antigravity skill when `antigravity_present()`; `install_status` reports it under `skills.antigravity`. **Scope = PRD phase 1 (MCP + skills only); the AfterTool context-enrichment hook is a later phase, and #307 stays OPEN pending a real-Antigravity end-to-end confirmation (unit tests can't prove the live channel — verification asymmetry).** New `tests/test_antigravity_install.py` (13). NO INDEX_VERSION bump. Files: `cli/antigravity.py` (new), `cli/skills.py`, `cli/init.py`, `server.py` (install help). PRD: `docs/prd-antigravity-hooks.md`. Clean-room competitive response (see memory `reference_competitor_gitnexus`).
4
+
- **Version:** 1.108.89 — Revert the 1.108.88 `install antigravity` target; document the correct manual config instead. 1.108.88 wrote to the WRONG paths (`~/.gemini/settings.json` + `~/.gemini/antigravity/skills/`, lifted from a competitor README) so it never configured Antigravity. **Authoritative paths (Google docs + our own `reference_antigravity_integration` memory):** Antigravity (2.0/IDE/CLI) loads MCP servers from the shared HOME-level **`~/.gemini/config/mcp_config.json`** (`mcpServers` key); shared skills in `~/.gemini/skills/` (CLI-only `~/.gemini/antigravity-cli/skills/`). This release deletes `cli/antigravity.py`, restores `cli/skills.py`+`cli/init.py`+`server.py` to 1.108.87 shape, removes `tests/test_antigravity_install.py`, and adds a copy-paste `mcp_config.json` block to README "Works with". **#307 was already CLOSED 2026-05-23** (manual config documented/working); a first-class installer stays DEFERRED (demand threshold ~5 reports, `feedback_demand_driven_installer_support`). Lesson: reconcile our own hands-on memory before trusting a competitor's README; verify config paths against the live contract. NO INDEX_VERSION bump.
5
5
-**Versions 1.108.85–1.108.87** (all 2026-06-30): **.85** install-mechanism-aware `watch` hint (`watch_extra_install_command()` → pipx inject / uv tool install / uvx --with) + migration-warning de-spam (`_MIGRATION_SCHEMA_WARNED` warn-once per repo) — #357 follow-up @zakblacki. **.86**`watch-all` prints a steady-state line (Ctrl+C / `watch-install`) + per-repo "Now watching … (idle until you edit a file)" so the post-index silence isn't read as a hang. **.87** License v1.1: non-commercial use/copy/modify stay free but redistribution narrowed (no registry republish, no rename/rebrand, no false-authorship, no name/marks) — response to the AnimAIOS `animamunch` PyPI fork; see memory `project_animamunch_fork`.
6
6
- **Version:** 1.108.84 — Install-mechanism-aware `upgrade` (#357, reported by @zakblacki on a pipx install). `jcodemunch-mcp upgrade` ran `sys.executable -m pip install -U` blindly; pipx/uv venvs ship NO `pip` module → `No module named pip`, pip exited non-zero, and the command **bailed before refreshing hooks**. Compounding it: the startup version-drift warning (`server.py`) told the user to run `jcodemunch-mcp upgrade` to clear the stale-hook nag — the exact pip-less-failing command — so it never cleared. Fix (rewrote `cli/upgrade.py`): new `detect_install_mechanism()` (path/env heuristic, no subprocess) → `(mechanism, upgrade_command)` for pip/pipx/uv/uvx/venv. `_pip_available()` gates the in-process `pip install -U`: present → runs as before (a genuine pip *failure* now refreshes hooks anyway + preserves the non-zero rc, was: skip-and-bail); **absent → does NOT shell out to a foreign package manager** (honors jjg's stated "detect then tell, don't guess-and-run" stance from the issue thread), prints the exact command (`pipx upgrade` / `uv tool upgrade`), and refreshes hooks in-process via `init --hooks` (pip-free, stamps `last_init_version.txt` so the nag clears). The nag warning now leads with `init --hooks`. NO INDEX_VERSION bump. New `tests/test_v1_108_84.py` (11). Files: `cli/upgrade.py` (rewrite), `server.py` (warning text). Side issues answered in #357 reply (not bugs): `.pack/nodejs` migration warning = stale starter-pack index; `find_dead_code` `framework_warning` inflated dead-code % on a Node project because its entry-point heuristic looks for `main.py`/`app.py` (pass `entry_point_patterns` or reindex); real-time freshness = `watch-all`. See [[project_jmunch_console]].
7
7
- **Version:** 1.108.83 — Tame `watch-all` CPU under WSL (#356, reported by @Blainexi). `watch-all` pegged 15-30% CPU non-stop on WSL. NOT a busy loop: **`watchfiles` auto-enables polling whenever it detects WSL** (inotify unreliable across the boundary, confirmed in watchfiles docs), and its default 300ms poll re-stats the whole watched tree several times/sec — multiplied across every indexed repo. `DefaultFilter` drops `node_modules`/`.git` *events* but the polling walk still stats them (structural cost). Fix: the `awatch` call now passes `poll_delay_ms=_watch_poll_delay_ms()` (resolves `JCODEMUNCH_WATCH_POLL_DELAY_MS` → `WATCHFILES_POLL_DELAY_MS` → `DEFAULT_WATCH_POLL_DELAY_MS=1000`; non-positive/garbage → default); ignored when native FS events are used (no-op off WSL). Plus a one-time WSL startup hint (`_is_wsl()`) naming the two levers: raise the poll delay, or set `WATCHFILES_FORCE_POLLING=false` for Linux-filesystem repos to use native inotify (~0 idle CPU); `/mnt/*` repos need polling. NO INDEX_VERSION bump. New `tests/test_v1_108_83.py` (11); `test_watch_all.py`/`test_watcher_lock.py` green. Files: `watcher.py`, `watch_all.py`. See [[project_jmunch_console]].
Copy file name to clipboardExpand all lines: README.md
+28-2Lines changed: 28 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -369,7 +369,7 @@ pip install jcodemunch-mcp
369
369
jcodemunch-mcp init
370
370
```
371
371
372
-
`init` auto-detects your MCP clients (Claude Code, Claude Desktop, Cursor, Windsurf, Continue, Antigravity), writes their config entries, installs the CLAUDE.md prompt policy so your agent actually uses jCodeMunch, optionally installs enforcement hooks (PreToolUse read guard + PostToolUse auto-reindex + PreCompact session snapshot), optionally indexes your project, and audits your agent config files for token waste. Run `jcodemunch-mcp init --help` for all flags.
372
+
`init` auto-detects your MCP clients (Claude Code, Claude Desktop, Cursor, Windsurf, Continue), writes their config entries, installs the CLAUDE.md prompt policy so your agent actually uses jCodeMunch, optionally installs enforcement hooks (PreToolUse read guard + PostToolUse auto-reindex + PreCompact session snapshot), optionally indexes your project, and audits your agent config files for token waste. Run `jcodemunch-mcp init --help` for all flags.
373
373
374
374
> **Prefer a one-line CLAUDE.md?** From v1.71.0 the server exposes a
375
375
> `jcodemunch_guide` tool that returns the same policy snippet `claude-md
@@ -862,7 +862,7 @@ Tested configurations:
862
862
|----------|--------|
863
863
| **Claude Code / Claude Desktop** | `jcodemunch-mcp init` (auto-detects and patches config) |
| **Antigravity (Google)** | `jcodemunch-mcp install antigravity` — registers the MCP server in `~/.gemini/settings.json` and installs the skill bundle under `~/.gemini/antigravity/skills/` |
865
+
| **Antigravity (Google)** | Add a `jcodemunch` entry to `~/.gemini/config/mcp_config.json` (shared by Antigravity 2.0 / IDE / CLI). See below. |
866
866
| **OpenAI Codex CLI** | Add `[mcp_servers.jcodemunch]` block to `~/.codex/config.toml` (see below) |
867
867
| **Cline / Roo Code** | Add via the MCP marketplace UI or paste `command: uvx`, `args: ["jcodemunch-mcp"]` |
868
868
| **Zed** | Add to `settings.json` under `context_servers` |
@@ -920,6 +920,32 @@ args = ["jcodemunch-mcp"]
920
920
```
921
921
</details>
922
922
923
+
<details>
924
+
<summary>Antigravity (Google) config</summary>
925
+
926
+
Antigravity (2.0, IDE, and CLI) loads MCP servers from a single shared file at
927
+
`~/.gemini/config/mcp_config.json`(HOME-level only — project-local
928
+
`.antigravitycli/mcp_config.json` is read but not loaded). Add:
929
+
930
+
```json
931
+
// ~/.gemini/config/mcp_config.json
932
+
{
933
+
"mcpServers": {
934
+
"jcodemunch": {
935
+
"command": "uvx",
936
+
"args": ["jcodemunch-mcp"]
937
+
}
938
+
}
939
+
}
940
+
```
941
+
942
+
Restart Antigravity so it re-reads the config; tools appear under
943
+
`mcp(jcodemunch/*)`. To grant the jcodemunch agent skill to all Antigravity
944
+
tools, drop the bundle from `jcodemunch-mcp install claude-code --skills`
945
+
(at `~/.claude/skills/jcodemunch/SKILL.md`) into the shared skills dir
946
+
`~/.gemini/skills/jcodemunch/`(or the CLI-only `~/.gemini/antigravity-cli/skills/`).
0 commit comments