Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand All @@ -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

Expand Down Expand Up @@ -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:
Expand All @@ -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"]
}
}
}
Expand All @@ -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.
Expand Down
40 changes: 20 additions & 20 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand All @@ -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`。

### 从源码构建

Expand Down Expand Up @@ -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`,以便与协作者共享:
Expand All @@ -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"]
}
}
}
Expand All @@ -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` 确认。
Expand Down
18 changes: 11 additions & 7 deletions bench/arb/RESULTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 <bin-v0.9.6 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.
Expand All @@ -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:

Expand All @@ -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 |
Expand All @@ -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 |
Expand Down
2 changes: 1 addition & 1 deletion integrations/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
10 changes: 5 additions & 5 deletions integrations/launcher/release.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
18 changes: 9 additions & 9 deletions packaging/homebrew/cgraph.rb
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion packaging/npm/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Loading