diff --git a/README.md b/README.md index 284cecf..e25e789 100644 --- a/README.md +++ b/README.md @@ -516,13 +516,13 @@ The formula installs all four executables from the current release archive. The Download the current Linux x64 release and build your first graph: ```sh -mkdir -p "$HOME/.local/lib/cgraph/bin-v0.9.5" "$HOME/.local/bin" -curl -fL https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-x64.tar.gz \ - -o "$HOME/.local/lib/cgraph/bin-v0.9.5/cgraph.tar.gz" -tar -xzf "$HOME/.local/lib/cgraph/bin-v0.9.5/cgraph.tar.gz" \ - -C "$HOME/.local/lib/cgraph/bin-v0.9.5" +mkdir -p "$HOME/.local/lib/cgraph/bin-v0.9.6" "$HOME/.local/bin" +curl -fL https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-x64.tar.gz \ + -o "$HOME/.local/lib/cgraph/bin-v0.9.6/cgraph.tar.gz" +tar -xzf "$HOME/.local/lib/cgraph/bin-v0.9.6/cgraph.tar.gz" \ + -C "$HOME/.local/lib/cgraph/bin-v0.9.6" for name in cgraph graphd cgraph-client cgraph-mcp; do - ln -sf "$HOME/.local/lib/cgraph/bin-v0.9.5/$name" "$HOME/.local/bin/$name" + ln -sf "$HOME/.local/lib/cgraph/bin-v0.9.6/$name" "$HOME/.local/bin/$name" done export PATH="$HOME/.local/bin:$PATH" @@ -534,16 +534,16 @@ Open `cgraph-out/graph.html` in a browser (`open cgraph-out/graph.html` on macOS ## Install & Setup -Release `bin-v0.9.5` provides all four executables (`cgraph`, `graphd`, `cgraph-client`, and `cgraph-mcp`) in each archive: +Release `bin-v0.9.6` provides all four executables (`cgraph`, `graphd`, `cgraph-client`, and `cgraph-mcp`) in each archive: | Platform | Architecture | Archive | | --- | --- | --- | -| Linux | x86_64 / amd64 | [`cgraph-linux-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-x64.tar.gz) | -| Linux | arm64 / aarch64 | [`cgraph-linux-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-arm64.tar.gz) | -| macOS | Apple silicon / arm64 | [`cgraph-macos-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-macos-arm64.tar.gz) | -| macOS | Intel / x86_64 | [`cgraph-macos-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-macos-x64.tar.gz) | +| Linux | x86_64 / amd64 | [`cgraph-linux-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-x64.tar.gz) | +| Linux | arm64 / aarch64 | [`cgraph-linux-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-arm64.tar.gz) | +| macOS | Apple silicon / arm64 | [`cgraph-macos-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-macos-arm64.tar.gz) | +| macOS | Intel / x86_64 | [`cgraph-macos-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-macos-x64.tar.gz) | -Use `uname -s` and `uname -m` to select the archive. The quick start installs versioned files under `~/.local/lib/cgraph/bin-v0.9.5` and puts stable symlinks in `~/.local/bin`; add that directory to your `PATH` if needed. MCP client configs should use the absolute versioned path, because clients may not inherit your shell's `PATH`. +Use `uname -s` and `uname -m` to select the archive. The quick start installs versioned files under `~/.local/lib/cgraph/bin-v0.9.6` and puts stable symlinks in `~/.local/bin`; add that directory to your `PATH` if needed. MCP client configs should use the absolute versioned path, because clients may not inherit your shell's `PATH`. ### Build from source @@ -640,8 +640,8 @@ Claude Code sets `CLAUDE_PROJECT_DIR` per session, so a single registration work ```sh claude mcp add --scope user --transport stdio cgraph \ - -- /home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp \ - --daemon /home/you/.local/lib/cgraph/bin-v0.9.5/graphd + -- /home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp \ + --daemon /home/you/.local/lib/cgraph/bin-v0.9.6/graphd ``` Or commit a project-scoped `.mcp.json` at the repo root to share it with collaborators: @@ -650,8 +650,8 @@ Or commit a project-scoped `.mcp.json` at the repo root to share it with collabo { "mcpServers": { "cgraph": { - "command": "/home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp", - "args": ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.5/graphd"] + "command": "/home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp", + "args": ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.6/graphd"] } } } @@ -665,16 +665,16 @@ Codex does not set `CLAUDE_PROJECT_DIR`, so the server falls back to the working ```sh codex mcp add cgraph \ - -- /home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp \ - --daemon /home/you/.local/lib/cgraph/bin-v0.9.5/graphd + -- /home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp \ + --daemon /home/you/.local/lib/cgraph/bin-v0.9.6/graphd ``` …or edit `~/.codex/config.toml` directly (add `"--root", "/abs/path/to/your/project"` to `args` to pin a project regardless of working directory): ```toml [mcp_servers.cgraph] -command = "/home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp" -args = ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.5/graphd"] +command = "/home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp" +args = ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.6/graphd"] ``` Restart Codex and run `/mcp` in the TUI to confirm. diff --git a/README.zh-CN.md b/README.zh-CN.md index cae07d2..aeafc82 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -130,13 +130,13 @@ vendor/ 内置的 tree-sitter core 与语法 下载当前 Linux x64 版本并构建第一个图谱: ```sh -mkdir -p "$HOME/.local/lib/cgraph/bin-v0.9.5" "$HOME/.local/bin" -curl -fL https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-x64.tar.gz \ - -o "$HOME/.local/lib/cgraph/bin-v0.9.5/cgraph.tar.gz" -tar -xzf "$HOME/.local/lib/cgraph/bin-v0.9.5/cgraph.tar.gz" \ - -C "$HOME/.local/lib/cgraph/bin-v0.9.5" +mkdir -p "$HOME/.local/lib/cgraph/bin-v0.9.6" "$HOME/.local/bin" +curl -fL https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-x64.tar.gz \ + -o "$HOME/.local/lib/cgraph/bin-v0.9.6/cgraph.tar.gz" +tar -xzf "$HOME/.local/lib/cgraph/bin-v0.9.6/cgraph.tar.gz" \ + -C "$HOME/.local/lib/cgraph/bin-v0.9.6" for name in cgraph graphd cgraph-client cgraph-mcp; do - ln -sf "$HOME/.local/lib/cgraph/bin-v0.9.5/$name" "$HOME/.local/bin/$name" + ln -sf "$HOME/.local/lib/cgraph/bin-v0.9.6/$name" "$HOME/.local/bin/$name" done export PATH="$HOME/.local/bin:$PATH" @@ -148,16 +148,16 @@ cgraph --root . --out cgraph-out ## 安装与配置 -`bin-v0.9.5` 发布版的每个压缩包都包含四个可执行文件(`cgraph`、`graphd`、`cgraph-client` 和 `cgraph-mcp`): +`bin-v0.9.6` 发布版的每个压缩包都包含四个可执行文件(`cgraph`、`graphd`、`cgraph-client` 和 `cgraph-mcp`): | 平台 | 架构 | 压缩包 | | --- | --- | --- | -| Linux | x86_64 / amd64 | [`cgraph-linux-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-x64.tar.gz) | -| Linux | arm64 / aarch64 | [`cgraph-linux-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-arm64.tar.gz) | -| macOS | Apple 芯片 / arm64 | [`cgraph-macos-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-macos-arm64.tar.gz) | -| macOS | Intel / x86_64 | [`cgraph-macos-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-macos-x64.tar.gz) | +| Linux | x86_64 / amd64 | [`cgraph-linux-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-x64.tar.gz) | +| Linux | arm64 / aarch64 | [`cgraph-linux-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-arm64.tar.gz) | +| macOS | Apple 芯片 / arm64 | [`cgraph-macos-arm64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-macos-arm64.tar.gz) | +| macOS | Intel / x86_64 | [`cgraph-macos-x64.tar.gz`](https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-macos-x64.tar.gz) | -用 `uname -s` 和 `uname -m` 选择压缩包。快速开始把带版本的文件安装到 `~/.local/lib/cgraph/bin-v0.9.5`,并在 `~/.local/bin` 中创建稳定的软链接;如有需要,请把该目录加入 `PATH`。MCP 客户端配置应使用带版本的绝对路径,因为客户端未必继承 shell 的 `PATH`。 +用 `uname -s` 和 `uname -m` 选择压缩包。快速开始把带版本的文件安装到 `~/.local/lib/cgraph/bin-v0.9.6`,并在 `~/.local/bin` 中创建稳定的软链接;如有需要,请把该目录加入 `PATH`。MCP 客户端配置应使用带版本的绝对路径,因为客户端未必继承 shell 的 `PATH`。 ### 从源码构建 @@ -244,8 +244,8 @@ Claude Code 会按会话设置 `CLAUDE_PROJECT_DIR`,因此一次注册即可 ```sh claude mcp add --scope user --transport stdio cgraph \ - -- /home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp \ - --daemon /home/you/.local/lib/cgraph/bin-v0.9.5/graphd + -- /home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp \ + --daemon /home/you/.local/lib/cgraph/bin-v0.9.6/graphd ``` 或在仓库根目录提交一个按项目作用域的 `.mcp.json`,以便与协作者共享: @@ -254,8 +254,8 @@ claude mcp add --scope user --transport stdio cgraph \ { "mcpServers": { "cgraph": { - "command": "/home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp", - "args": ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.5/graphd"] + "command": "/home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp", + "args": ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.6/graphd"] } } } @@ -269,16 +269,16 @@ Codex 不设置 `CLAUDE_PROJECT_DIR`,因此服务器回退到 Codex 启动它 ```sh codex mcp add cgraph \ - -- /home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp \ - --daemon /home/you/.local/lib/cgraph/bin-v0.9.5/graphd + -- /home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp \ + --daemon /home/you/.local/lib/cgraph/bin-v0.9.6/graphd ``` ……或直接编辑 `~/.codex/config.toml`(在 `args` 中加入 `"--root", "/abs/path/to/your/project"` 可无视工作目录锁定某个项目): ```toml [mcp_servers.cgraph] -command = "/home/you/.local/lib/cgraph/bin-v0.9.5/cgraph-mcp" -args = ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.5/graphd"] +command = "/home/you/.local/lib/cgraph/bin-v0.9.6/cgraph-mcp" +args = ["--daemon", "/home/you/.local/lib/cgraph/bin-v0.9.6/graphd"] ``` 编辑后重启 Codex,在 TUI 中运行 `/mcp` 确认。 diff --git a/bench/arb/RESULTS.md b/bench/arb/RESULTS.md index 516a778..986c4be 100644 --- a/bench/arb/RESULTS.md +++ b/bench/arb/RESULTS.md @@ -6,7 +6,7 @@ The benchmark is [Agent Retrieval Bench](https://arxiv.org/abs/2607.24882) (ARB, repository is checked out at its base commit, because ARB's released corpus is chunked and truncated and CGraph has to index the real tree. -## CGR-38: tuned without ARB samples (branch build, pending release) +## CGR-38: tuned without ARB samples (bin-v0.9.6) bin-v0.9.1's numbers below were tuned on a 40-sample ARB subset (clap, caddy, gin). This section reports work done without that: every change was developed on a declared dev side and the rest of @@ -24,8 +24,12 @@ ARB was scored only to measure it. - **Held-out looks.** All diagnosis used dev and extdev only; held-out samples were never inspected one by one. Held-out aggregates were read three times: 1. the bin-v0.9.5 baseline, before any change; - 2. the branch build below; - 3. the released binary. + 2. the PR #209 branch build; + 3. the released bin-v0.9.6 (`cgraph --version`: `7bb2413`), which reproduced look 2 on every + metric, as a deterministic engine should. + + Reproduce: `bench/arb/run.sh --cgraph-bin-dir `, then + `score.py ... --split heldout` (or `--split all`). One earlier held-out run of a pre-review build lost a snapshot to a host memory fault and was discarded without its scores being read. @@ -43,7 +47,7 @@ ARB was scored only to measure it. |---|---:|---:|---:| | RepoMap (rerun) | 0.5402 | 0.1785 | 0.3363 | | CGraph bin-v0.9.5 | 0.5164 | 0.2076 | 0.3184 | -| **CGraph branch** | **0.5628** | **0.2076** | **0.3167** | +| **CGraph bin-v0.9.6** | **0.5628** | **0.2076** | **0.3167** | Against RepoMap on held-out: @@ -52,7 +56,7 @@ Against RepoMap on held-out: By task: -| Held-out task | n | RepoMap R@20 / MRR / BCY@8k | CGraph branch R@20 / MRR / BCY@8k | +| Held-out task | n | RepoMap R@20 / MRR / BCY@8k | CGraph bin-v0.9.6 R@20 / MRR / BCY@8k | |---|---:|---|---| | code2test | 87 | 0.4950 / 0.1667 / 0.3280 | 0.4927 / 0.1516 / 0.2188 | | comment2context | 80 | 0.4708 / 0.1527 / 0.2896 | 0.5125 / 0.2223 / 0.3104 | @@ -69,11 +73,11 @@ What changed against bin-v0.9.5 on held-out: |---|---:|---:|---:| | RepoMap (rerun) | 0.6311 | 0.2156 | 0.3846 | | CGraph bin-v0.9.5 | 0.6353 | 0.2759 | 0.4309 | -| **CGraph branch** | **0.6692** | **0.2951** | **0.4395** | +| **CGraph bin-v0.9.6** | **0.6692** | **0.2951** | **0.4395** | Dev sides, for reference (both were used for tuning, so they are not evidence on their own): -| | n | bin-v0.9.5 R@20 / MRR / BCY@8k | branch R@20 / MRR / BCY@8k | RepoMap R@20 / MRR / BCY@8k | +| | n | bin-v0.9.5 R@20 / MRR / BCY@8k | bin-v0.9.6 R@20 / MRR / BCY@8k | RepoMap R@20 / MRR / BCY@8k | |---|---:|---|---|---| | ARB dev (gin, caddy, clap) | 111 | 0.8859 / 0.4199 / 0.6682 | 0.8934 / 0.4797 / 0.6982 | 0.8228 / 0.2939 / 0.4865 | | External dev set | 416 | 0.6891 / 0.3119 / 0.4752 | 0.7418 / 0.4101 / 0.5517 | 0.8099 / 0.4543 / 0.5815 | diff --git a/integrations/.claude-plugin/plugin.json b/integrations/.claude-plugin/plugin.json index cc90392..44c54bc 100644 --- a/integrations/.claude-plugin/plugin.json +++ b/integrations/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "cgraph", "displayName": "CGraph", - "version": "0.9.5", + "version": "0.9.6", "description": "Code graph for coding agents: ranked symbol search, callers and callees, blast radius, token-budgeted context and cross-service impact, served by a resident per-project daemon over MCP.", "author": { "name": "Nxtsoft", diff --git a/integrations/launcher/release.json b/integrations/launcher/release.json index 2cf1c5e..4ca93a0 100644 --- a/integrations/launcher/release.json +++ b/integrations/launcher/release.json @@ -1,22 +1,22 @@ { "repository": "Nxtsoft/CGraph", - "tag": "bin-v0.9.5", + "tag": "bin-v0.9.6", "assets": { "linux-arm64": { "name": "cgraph-linux-arm64.tar.gz", - "sha256": "cefd3861ba31fbbb5d7991bda9025ef396e9bcae2523c383f20b112137144518" + "sha256": "f970a332e46918fe2358077826f48af1badafd6351cce68bc2c21dd90e27d296" }, "linux-x64": { "name": "cgraph-linux-x64.tar.gz", - "sha256": "7d18569529e4917c8b21244a67e25bdeb6b77acf34ddcda5111ed9b9222c3da8" + "sha256": "afdcb4da4f6bc42ec9a28d55a29cab068413f9991e7a96a0c54098ac07cca5cc" }, "macos-arm64": { "name": "cgraph-macos-arm64.tar.gz", - "sha256": "3d9bf5a7e4f5bea3aef7a12a849d5cd1adcb0aa5b9b31e8997d1612aa1811348" + "sha256": "55414b665fd8dcf98dd700c9034a5ebac8e2e19e8c4e2e106bbf56310c810cac" }, "macos-x64": { "name": "cgraph-macos-x64.tar.gz", - "sha256": "5547c611ba21902fcb2384974d12f68fe842e117036f4557f55d1f1176bea368" + "sha256": "7dea72c4d848adce94fb5931c3964760d451a9a2b22daa30645987fc2514dc5e" } } } diff --git a/packaging/homebrew/cgraph.rb b/packaging/homebrew/cgraph.rb index adbc48d..f60c4ff 100644 --- a/packaging/homebrew/cgraph.rb +++ b/packaging/homebrew/cgraph.rb @@ -1,28 +1,28 @@ class Cgraph < Formula desc "Code graph and change-context engine for coding agents" homepage "https://github.com/Nxtsoft/CGraph" - version "0.9.5" + version "0.9.6" license "MIT" on_macos do on_arm do - url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-macos-arm64.tar.gz" - sha256 "3d9bf5a7e4f5bea3aef7a12a849d5cd1adcb0aa5b9b31e8997d1612aa1811348" + url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-macos-arm64.tar.gz" + sha256 "55414b665fd8dcf98dd700c9034a5ebac8e2e19e8c4e2e106bbf56310c810cac" end on_intel do - url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-macos-x64.tar.gz" - sha256 "5547c611ba21902fcb2384974d12f68fe842e117036f4557f55d1f1176bea368" + url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-macos-x64.tar.gz" + sha256 "7dea72c4d848adce94fb5931c3964760d451a9a2b22daa30645987fc2514dc5e" end end on_linux do on_arm do - url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-arm64.tar.gz" - sha256 "cefd3861ba31fbbb5d7991bda9025ef396e9bcae2523c383f20b112137144518" + url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-arm64.tar.gz" + sha256 "f970a332e46918fe2358077826f48af1badafd6351cce68bc2c21dd90e27d296" end on_intel do - url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.5/cgraph-linux-x64.tar.gz" - sha256 "7d18569529e4917c8b21244a67e25bdeb6b77acf34ddcda5111ed9b9222c3da8" + url "https://github.com/Nxtsoft/CGraph/releases/download/bin-v0.9.6/cgraph-linux-x64.tar.gz" + sha256 "afdcb4da4f6bc42ec9a28d55a29cab068413f9991e7a96a0c54098ac07cca5cc" end end diff --git a/packaging/npm/package.json b/packaging/npm/package.json index f2977a4..e194254 100644 --- a/packaging/npm/package.json +++ b/packaging/npm/package.json @@ -1,6 +1,6 @@ { "name": "cgraph-mcp", - "version": "0.9.5", + "version": "0.9.6", "description": "CGraph code graph MCP server for coding agents; runs the verified native release for your platform", "mcpName": "io.github.Nxtsoft/cgraph", "license": "MIT", diff --git a/server.json b/server.json index 8965143..88c47d1 100644 --- a/server.json +++ b/server.json @@ -7,12 +7,12 @@ "url": "https://github.com/Nxtsoft/CGraph", "source": "github" }, - "version": "0.9.5", + "version": "0.9.6", "packages": [ { "registryType": "npm", "identifier": "cgraph-mcp", - "version": "0.9.5", + "version": "0.9.6", "runtimeHint": "npx", "transport": { "type": "stdio"