Releases: colbymchenry/codegraph
Releases · colbymchenry/codegraph
v0.7.10
0.7.10 - 2026-05-19
Fixed
- MCP: tools no longer silently fail to appear in clients on slow filesystems (Docker Desktop VirtioFS on macOS, WSL2). The
initializehandshake was blocking on opening the SQLite database and bootstrapping the tree-sitter WASM runtime, which on slow I/O could exceed Claude Code's ~30s handshake timeout — leaving the codegraph process alive but unresponsive and no tools visible. The handshake now returns immediately and defers project open to the background; tool calls wait on the in-flight init rather than racing it with a second open. Closes #172. Thanks to @sashanclrp for the original report and detailed reproduction, and @sgrimm for the decisive wire capture that isolated the actual root cause. - CLI: terminal output no longer mojibakes on Windows PowerShell / cmd.exe during
codegraph indexandcodegraph sync. The shimmer progress renderer writes from a worker thread viafs.writeSync(1, …)to keep the animation smooth while the main thread is busy in SQLite, which bypasses Node's TTY-aware UTF-8→codepage conversion — so glyphs like│ ◆ —were emitted as raw UTF-8 bytes and reinterpreted as the console's OEM codepage (CP437, CP936, …), producing strings like鋍?[0m 鉒?[0m Scanning files 鈥?N found. CodeGraph now picks an ASCII glyph set on Windows by default (| * -instead of│ ◆ —); setCODEGRAPH_UNICODE=1to opt back into the Unicode glyphs (e.g. on pwsh 7 with UTF-8 codepage), orCODEGRAPH_ASCII=1on any platform to force ASCII (useful for log collectors / non-TTY pipelines). Closes #168. Thanks to @starkleek for the report and to @Bortlesboat for the initial PR. - MCP / search: module-qualified symbol lookups now resolve. The MCP tools (
codegraph_node,codegraph_callees,codegraph_impact, …) acceptmodule::symbol(Rust / C++ / Ruby),Module.symbol(TS / JS / Python), andmodule/symbol(path-style) — multi-level forms (crate::configurator::stage_apply::run) and Rust path prefixes (crate,super,self) are handled. Closes #173. Thanks to @joselhurtado for the detailed reproduction. Three underlying fixes:- The FTS5 query builder now treats
::as a token separator instead of stripping it to nothing, sostage_apply::runno longer collapses to the unsearchablestage_applyrun. matchesSymbolfalls back to a file-path containment check whenqualifiedNamedoesn't carry the module hierarchy (Rust file-level functions, Python free functions in a package): aruninsrc/configurator/stage_apply.rsnow matchesstage_apply::runbecausestage_applyappears as a path segment.- Qualified lookups that don't match the qualifier no longer fall through to fuzzy text matches —
stage_apply::nonexistent_fnreturnsnullinstead of resolving to an unrelatedrollbackin the same file.
- The FTS5 query builder now treats
v0.7.9
0.7.9 - 2026-05-17
Fixed
- opencode: install actually wires up the MCP server now. v0.7.7 wrote
~/.config/opencode/opencode.json, but opencode readsopencode.jsoncby default — so thecodegraphentry never showed up in any opencode session. The installer now prefers an existing.jsonc, falls back to.jsonwhen only that exists, and creates.jsoncfor greenfield installs. Re-runcodegraph install --target=opencodeafter upgrading so the entry lands in the file opencode actually reads.
Added
- opencode: installer now writes
AGENTS.md(global~/.config/opencode/AGENTS.md, local./AGENTS.md) with the same codegraph usage guidance the other agents already received. Without it, opencode's model would call nativeGrepinstead of thecodegraph_*tools it could see in its MCP list. - User comments and formatting in
opencode.jsoncsurvive install / re-install / uninstall round-trips — surgical edits viajsonc-parserrather than full-file rewrites.
v0.7.7
0.7.7 - 2026-05-17
Added
- Multi-agent installer (closes #137).
codegraph installnow opens with a multi-select prompt for Claude Code, Cursor, Codex CLI, and opencode — detected agents are pre-checked. Each writes its native MCP config + instructions file (e.g.~/.cursor/mcp.json+.cursor/rules/codegraph.mdc,~/.codex/config.toml+~/.codex/AGENTS.md,~/.config/opencode/opencode.json). The runtime MCP server was already agent-agnostic; this brings the installer to parity. - Non-interactive install flags for scripting / CI:
--target=<csv|auto|all|none>,--location=<global|local>,--yes,--no-permissions,--print-config <id>. codegraph initnow auto-wires project-local agent surfaces for any agent configured globally. In practice: Cursor's.cursor/rules/codegraph.mdcis dropped oninitso a single globalcodegraph installworks in every project you open — no per-project re-install needed.
Fixed
- Cursor: globally-installed codegraph reported "not initialized" in every workspace because Cursor launches MCP-server subprocesses with the wrong working directory and doesn't pass
rootUriin the MCP initialize call. We now inject--pathinto Cursor's MCP args — absolute path for local installs,${workspaceFolder}for global installs.
Changed
- Agent-instructions template is now agent-agnostic. The previous template was inherited from the Claude-only era and prescribed "spawn an Explore agent" — a Claude Code-specific concept that confused Cursor's and Codex's agents and caused them to fall back to native grep even with codegraph available. The new template adds explicit "trust codegraph results, don't re-verify with grep" guidance and a clear tool-by-question matrix. Applies to
~/.claude/CLAUDE.md,.cursor/rules/codegraph.mdc, and~/.codex/AGENTS.md. codegraph installprompt order: agent picker is now step 1, before the PATH-install and location prompts.- Disambiguated "global" wording in install prompts ("Install codegraph CLI on your PATH?" vs "Apply agent configs to all your projects, or just this one?") — both used to say "Global" and read as duplicates.
Internal
- New
AgentTargetinterface insrc/installer/targets/— adding a 5th agent (Continue, Zed, Windsurf, …) is a new file + one entry inregistry.ts. - Hand-rolled TOML serializer for Codex (
src/installer/targets/toml.ts) — no new dependency, scoped to the[mcp_servers.codegraph]table only, sibling tables and[[array_of_tables]]preserved verbatim. - +47 parameterized contract tests across the 4 targets — install idempotency, sibling preservation, uninstall reverses install, byte-equal re-runs return
unchanged, partial-state recovery for Codex.
Based on substantive draft by @andreinknv
(fork commit c5165e4).
Thank you.
v0.7.6
0.7.6 - 2026-05-13
Fixed
codegraphCLI failing withzsh: permission denied: codegraphafter a fresh global install. The published 0.7.5 tarball shippeddist/bin/codegraph.jswithout the executable bit, so the shell refused to run it through the npm symlink. The build nowchmod +x's the binary before packing.
Already on 0.7.5? Either upgrade to 0.7.6, or unblock yourself in place:
chmod +x "$(npm root -g)/@colbymchenry/codegraph/dist/bin/codegraph.js"