github tirth8205/code-review-graph v2.2.3.1
v2.2.3.1 — --repo flag + wiki slug collisions

latest releases: v2.3.5, v2.3.4, v2.3.3...
one month ago

Hotfix on top of 2.2.3

Two bugs surfaced by a full first-time-user smoke test run against six real OSS repos (express, fastapi, flask, gin, httpx, next.js). Both are pre-existing and independent of any ongoing work on v2.2.4.

uvx --reinstall code-review-graph
# or
pip install -U code-review-graph

Fixed

  • serve --repo <X> was ignored by 21 of 24 MCP tools (#223). main.py captured the flag into _default_repo_root, but only get_docs_section_tool actually read it — every other tool wrapper passed repo_root=None straight through to the impl, which then resolved against the server's cwd. Real-world blast radius is small because install writes a .mcp.json that launches the server with cwd=<repo>, so first-time Claude Code users don't hit this. But anyone scripting serve manually or running a multi-repo orchestrator would silently get the wrong graph. Fixed with a single _resolve_repo_root() helper with explicit precedence (client arg > --repo flag > cwd) threaded through all 24 wrappers.

  • Wiki slug collisions silently overwrote pages (#223). _slugify() folds non-alphanumerics to dashes and truncates to 80 chars, so similar community names collided ("Data Processing" / "data processing" / "Data Processing"data-processing.md). The previous generate_wiki() loop wrote each community to its <slug>.md regardless of collisions — overwriting earlier content while the counter reported overwrites as "updated". On the express smoke test this was ~70% silent data loss (32 real files on disk vs 107 claimed pages). Fixed by tracking used slugs per-run and appending -2, -3, … suffixes until the slug is unique; every community now gets its own page and the counter matches the physical file count. get_wiki_page() lookup still resolves by name via the existing partial-match fallback.

What is NOT in this release

Everything on #222, which is still pending Windows verification:

  • fastmcp 1.0 → 2.14.6 (CVEs — #139, fakeredis rename — #195)
  • Windows ProactorEventLoop deadlock fix (#46, #136)
  • Go receiver methods (#190), Dart parser fixes (#87), nested node_modules ignores (#91), except Exception cleanup (#194), viz auto-collapse (#132), eval yaml.safe_load guard (#212), VS Code better-sqlite3 12.x for VS Code 1.115 (#218)

Once Windows reporters confirm the fix on PR #222's branch, we'll cut v2.2.4 with all of the above.

Upgrade notes

  • No schema changes; no action required beyond upgrading.
  • No .claude/settings.json rewrite needed (that was a v2.2.3 thing).

Closes

#223

Don't miss a new code-review-graph release

NewReleases is sending notifications on new releases.