Releases: getArbor-dev/arbor
Release list
v2.6.0 — Telling the truth about the graph
Nine correctness defects in the analysis core. Every one was found by running
Arbor against real codebases — honojs/hono, psf/requests — rather than
fixtures, and every one ships with a regression test.
Zero breaking API changes. cargo install arbor-graph-cli --force and the
answers get more accurate.
The graph was lying in six ways
Determinism was not deterministic. Symbol resolution decided
same-directory locality by iterating a HashMap and taking the first hit.
Rust seeds RandomState per process, so the same binary on the same input
could build different edges between runs. A test now indexes a fixture eight
times in separate processes and asserts one identical graph — the only way
to catch this, since a single process shares one hash seed.
Colliding symbols were silently dropped. The FQN map used
HashMap::insert, so a second definition of handler, new, or process
replaced the first. The loser became unreachable — zero callers, zero
centrality, invisible to blast radius. Every definition is now kept.
Ambiguous lookups answered confidently and wrongly. On hono,
arbor inspect getPath reported "unreachable, 0 callers, may be dead code"
about a function called from ten places, because eleven call sites across the
CLI and MCP bridge resolved names with find_by_name(..).first() — whichever
file parsed first. There is now one ranked resolution policy, and the CLI
tells you which definition it picked and what else matched.
TypeScript symbols were extracted twice. The export_statement handler
recursed into its children, then the generic loop recursed into the same
children again. Every exported symbol became two vertices sharing one node id.
On a 149-file Next.js app: 133 phantom nodes, 25% of the graph, each halving
its symbol's centrality and double-counting it in blast radius.
Prose was indexed as code. Markdown headings became graph nodes, so a
# fetch benchmark heading in a README competed with real fetch definitions
during resolution. Shell comments became functions — # Compare app.fetch() between refs yielded a function literally named "# Compare app.fetch". 59
phantom nodes on hono, every one a false resolution candidate.
Centrality was not comparable between repositories. Scores were divided by
the graph maximum, so the top node was 1.0 by construction whether it had
four callers or four hundred. A 0.6 threshold selected nearly everything in
a flat repo and nothing in one with a god object, and adding a single hub
rescaled every other node. Centrality is now a percentile rank.
Recall on TypeScript
obj.method() was discarded outright, on the reasoning that typing the
receiver needs inference we do not have. That is the dominant call shape in
real TS/JS, so the graph came out nearly edgeless on the largest ecosystem
Arbor supports — and an empty graph reports a blast radius of zero, which
reads as safe rather than unknown. Those calls now resolve by method name
under a fan-out cap, at reduced confidence.
Measured on identical node sets, after the duplicate fix:
| before | after | |
|---|---|---|
| TypeScript (149 files) | 172 edges | 196 (+14%) |
| Rust (arbor-graph) | 116 edges | 167 (+44%) |
New
Edge confidence. Every edge carries a value in [0,1] derived from how it
resolved, so traversal no longer treats a proven same-file call and a
heuristic suffix guess as identical evidence. confident_edge_count() reports
how much of a graph rests on inference.
Hunk-level impact. changed_node_ids_for_ranges maps diff line ranges to
the symbols that actually overlap them, and parse_unified_diff_ranges reads
them from a patch. File granularity treats a one-line edit in a 60-symbol file
as changing all 60.
Concept search. Identifiers are tokenized — snake, camel, Pascal, acronym
runs — and expanded through curated concept clusters, so login finds
get_authenticated, which shares no substring with it and was previously
unfindable. Docstrings, signatures, and file paths are indexed too; they were
parsed into every node and then ignored. Results carry the match kind, so an
exact hit stays distinguishable from a concept guess.
Upgrading
Graph caches are invalidated automatically — the serialized format gained edge
confidence and raw centrality, and CACHE_VERSION tracks the package version.
The first index after upgrading rebuilds from source.
320 tests, clippy clean at -D warnings, verified end to end through the CLI
and the MCP bridge.
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v2.6.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.6.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.6.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- docs: replace hero GIF with grep-vs-arbor side-by-side demo by @Anandb71 in #159
- chore: v2.5.0 Homebrew/Scoop checksums by @Anandb71 in #161
- Fix/graph truth layer by @Anandb71 in #162
- fix(graph): correct symbol resolution, centrality, and edge recall (v2.6.0) by @Anandb71 in #163
Full Changelog: v2.5.0...v2.6.0
Arbor v2.6.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.6.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.6.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- docs: replace hero GIF with grep-vs-arbor side-by-side demo by @Anandb71 in #159
- chore: v2.5.0 Homebrew/Scoop checksums by @Anandb71 in #161
- Fix/graph truth layer by @Anandb71 in #162
- fix(graph): correct symbol resolution, centrality, and edge recall (v2.6.0) by @Anandb71 in #163
- chore(release): sync packaging manifests to 2.6.0 by @Anandb71 in #164
Full Changelog: v2.5.0...v2.6.0
Arbor v2.6.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.6.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.6.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- docs: replace hero GIF with grep-vs-arbor side-by-side demo by @Anandb71 in #159
- chore: v2.5.0 Homebrew/Scoop checksums by @Anandb71 in #161
- Fix/graph truth layer by @Anandb71 in #162
- fix(graph): correct symbol resolution, centrality, and edge recall (v2.6.0) by @Anandb71 in #163
- chore(release): sync packaging manifests to 2.6.0 by @Anandb71 in #164
Full Changelog: v2.5.0...v2.6.0
v2.5.0 — The Last Excuse ⚡ 23x faster PageRank, parallel indexing
"Indexing is slow" was the last argument for letting your coding agent navigate with
grep -r.
It's gone.
⚡ TL;DR — every number measured, every number reproducible
| Measurement | v2.4.0 | v2.5.0 | Delta |
|---|---|---|---|
| PageRank, 10k-node call graph (20 iter) | 149.8ms | 6.6ms | 23x 🔥 |
| Cold index, tokio (815 files, 178k LOC) | 2.7s | 1.6s | 1.7x |
| Cold index, Arbor itself (123 files) | 253ms | 95ms | 2.7x |
| Watcher recompute after a 1-file patch | full 20 iterations | ~2 rounds | warm-start |
Think a number is wrong? cargo bench -p arbor-graph and prove it → BENCHMARKS.md
🚀 What's new
Parallel indexing
The parse phase now fans out across every core (rayon). Per-task tree-sitter parsers, no locks in the hot path, and results assemble in walk order — the graph you get is byte-for-byte identical to the sequential build, just sooner.
arbor index . --no-cache # all cores, default
RAYON_NUM_THREADS=4 arbor index . # or pin itPageRank, rewritten
The old hot loop paid for graph traversal and string-ID lookups on every node, every iteration. It now builds a flat call-graph adjacency once and iterates dense vectors. Identical semantics (Calls edges only, 10% test-caller weight) — benchmarked side-by-side against the old implementation in the same Criterion run. 23x.
Warm-start centrality
Watcher-driven recomputes now seed from the previous scores instead of starting cold. Stored scores are max-normalized, so a naive warm start converges no faster — v2.5.0 rescales them back to fixed-point scale analytically in one edge pass. A one-file change converges in ~2 rounds.
Convergence early-exit
Iteration stops at a 1e-9 max delta. The budget is a ceiling, not a sentence.
🤖 Why agents care
arbor map (the recommended first MCP call) = index cost + rank cost — both just dropped. Cold-starting an agent on a 178k-LOC codebase it has never seen: 1.6 seconds. The token argument for graph-navigation over grep-and-read was never close (~95% reduction); now the latency argument is gone too.
🔍 The limit we haven't beaten (yes, we're publishing it)
Stress-tested against VS Code: 12,406 files → 366k extracted nodes, completes in ~405s cold. At that graph size single-threaded assembly dominates and parallel parsing can't save it. It's documented in BENCHMARKS.md as a known limit and it's the #1 target for v2.6.0. Receipts or it didn't happen.
📦 Upgrade
Zero breaking changes. Zero config changes.
cargo install arbor-graph-cli --forceMCP clients: nothing to do. v2.4.0 graph.bin caches load fine and their scores warm-start the first recompute.
🔭 Deferred to v2.6.0
- Large-graph assembly optimization (the VS Code bottleneck above)
- Unified parser pipelines
- Process-level graph daemon
- Incremental PageRank over graph deltas
Full changelog: v2.4.0...v2.5.0.
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v2.5.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.5.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.5.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- fix(ci): retry apt installs and skip release QA gate on tag push by @Anandb71 in #156
- fix(ci): make Open VSX publish non-blocking on release by @Anandb71 in #157
- v2.5.0 "The Last Excuse": parallel indexing + 23x faster PageRank by @Anandb71 in #158
- fix(release): sync remaining manifests to 2.5.0 + hero GIF by @Anandb71 in #160
Full Changelog: v2.4.0...v2.5.0
Arbor v2.4.0 — "The Agent-Native Leap"
Arbor v2.4.0 — The Agent-Native Leap
Release date: July 2026
First code-graph MCP server built for MCP 2026-07-28.
What's New
MCP 2026-07-28 Protocol
- Protocol version
2026-07-28with dual-version fallback for2025-03-26clients - Stateless
server/discoverendpoint - Response caching metadata (
ttlMs,cacheScope) on list/read operations - Extensions capability map for Tasks and MCP Apps
Tasks Extension
tasks/get,tasks/update,tasks/cancelfor long-running operations- Background indexing returns task handles instead of errors during cold start
- Agents poll task progress while the graph builds
MCP Apps (SEP-1865)
- Interactive blast-radius graph UI (
ui://arbor/blast-radius) - Interactive architecture map UI (
ui://arbor/architecture-map) analyze_impactandget_architecture_overviewdeclare_meta.uiresource URIs
Streamable HTTP Transport
arbor bridge --http --port 3333- Stateless HTTP alongside stdio
Mcp-Method/Mcp-Nameheader routing- Deploy behind load balancers for remote/enterprise use
Tool Quality
get_blast_radius— real git-diff blast radius analysis (replaces stub)- Pagination on
search_symbolsandget_map(offset,limit,hasMore) - Async tokio stdio (replaces blocking stdin loop)
Benchmarks
- Criterion suite:
cargo bench -p arbor-graph - CI regression gate via
.github/workflows/benchmarks.yml - Updated
docs/BENCHMARKS.mdwith token-savings methodology
Upgrade Guide
MCP clients (Claude / Cursor) — no changes required for stdio:
claude mcp add --transport stdio --scope project arbor -- arbor bridgeHTTP clients (new):
arbor bridge --http --port 3333
# POST http://127.0.0.1:3333/mcp
# Headers: Mcp-Method: tools/call, Mcp-Name: analyze_impactClients on 2025-03-26 keep working. Clients on 2026-07-28 get Tasks, Apps, caching, and pagination.
Full Changelog
Added
- MCP 2026-07-28 protocol:
server/discover,_metaparsing, response caching, dual-version fallback - Tasks extension:
tasks/get,tasks/update,tasks/cancel - MCP Apps: blast-radius graph + architecture map HTML templates
- Streamable HTTP:
arbor bridge --http [--port 3333] - Real
get_blast_radiusvia sharedarbor-graph::compute_blast_radius - Pagination on
search_symbolsandget_map - Criterion benchmarks + CI workflow
Changed
- Async MCP stdio (tokio replaces blocking stdin loop)
- MCP tool annotations:
_meta.uionanalyze_impactandget_architecture_overview - Workspace version bumped to 2.4.0
Deferred to v2.5.0
- Parallel (rayon) indexing
- Incremental PageRank
- Unified parser pipelines
- Process-level graph daemon
Install: cargo install arbor-graph-cli · GitHub · MCP Registry
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v2.4.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.4.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.4.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
Full Changelog: v2.3.0...v2.4.0
Arbor v2.3.0 — The AI Agent Brain
Arbor v2.3.0 is a major release designed to turn Arbor into the semantic memory and reasoning engine for autonomous AI coding agents (Claude, Cursor, Cline, Aider).
🧠 Agent-Native MCP Server (15 Tools)
- Added 5 new agentic MCP tools raising the total to 15:
get_blast_radius: Performs diff-aware impact and risk prediction for pending changes.explain_symbol: Context-bounded slices explaining a symbol's role, callers, and significance.audit_security: Downstream call-graph tracing to detect data and security sinks.get_architecture_overview: orienting tool summarizing hotspots, modules, and entry points.batch_query: Multi-symbol single round-trip lookups.
- Added standard spec-compliant annotations (
readOnlyHint, etc.) and graph resources (arbor://graph/stats,arbor://graph/entry-points,arbor://graph/hotspots) for zero-reprompt agent tool chaining.
🌳 Built-in Local Agent Workflows (arbor agent)
arbor agent review: Automatically flags high-centrality hub changes, entry points, and architectural violations on PRs.arbor agent onboard: Generates a structured markdown codebase guide for new contributors.arbor agent guard: Enforces blast-radius thresholds and public API checks in local development.
🚀 Platform & Performance Enhancements
- 10x Faster CI Setup: Upgraded GitHub Action to fetch pre-compiled platform binaries from Releases (~5s action runs).
- A2A Discovery: Added standard
agent-card.jsonfor agent-to-agent capability negotiations.
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
-
v2.2.0 - PR Intelligence
- PR Blast Radius Reports: Color-coded Markdown outputs for pull requests via
arbor diff/check --markdown. - Auto-Generated PR Descriptions: Instantly draft structured PR descriptions using
arbor summary. - Upgraded GitHub Action: Automatic comment deduplication and in-place updating using the GitHub CLI.
- GitHub Sponsors Integration: Enabled official repository sponsor button via
.github/FUNDING.yml. - Shell-less Extension Execution: Hardened VS Code command execution using secure
execFileSyncarguments. - Atomic Cache Writes: Prevented concurrent cache corruption via
.tmpfile renames. - Dependency Cleanups: Pruned yanked
core2crate by disablingimagedefault features. - Workspace Sync: Clean inheritance of crate metadata across all packages.
- Cargo:
cargo install arbor-graph-cli --version 2.2.0 - npm:
npx @anandb71/arbor-cli@2.2.0
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v2.2.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.2.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.2.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- Fix init/setup to use nearest workspace root by @Anandb71 in #143
- feat: Arbor v2.2.0 - PR Intelligence & Sponsorships (Mermaid diagrams… by @Anandb71 in #145
- chore: align sponsorship configuration to use standard .github/FUNDIN… by @Anandb71 in #146
- feat: CLI/MCP parity, map command, and concurrency fixes by @zacwolfe in #147
- chore: implement release hardening plan v2.2.0 by @Anandb71 in #148
New Contributors
Full Changelog: v2.1.0...v2.2.0
v2.1.0 - Agent-Native MCP
v2.1.0 — Agent-Native MCP
🔧 New: 10 MCP Tools
This release introduces six new surgical tools for precise graph traversal to complement the existing broad-analysis suite.
Surgical (New in v2.1.0)
list_entry_points— Lists all production entry points:main, HTTP handlers, webhooks, background jobs, and CLI commands.get_callers— Identifies every node that calls a specific symbol.get_callees— Identifies every node called by a specific symbol.search_symbols— Performs a fuzzy search across all symbol names.get_file_graph— Maps all nodes and intra-file edges for a specific file path.get_node_detail— Provides full metadata for a node via ID or name.
Broad (Unchanged)
get_logic_path · analyze_impact · find_path · get_knowledge_path
🔗 New: Standard Response Envelope
All 10 tools now utilize a consistent return shape with built-in agent chaining hints to streamline workflows:
{
"ok": true,
"tool": "get_callers",
"arbor_version": "2.1.0",
"data": { ... },
"meta": {
"node_count": 4,
"suggested_next_tool": "analyze_impact",
"suggested_next_args": { "node_id": "arbor_core::parser_v2::parse_file" }
}
}
<!-- arbor-mcp-install-snippets -->
## 🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
### Claude Code (project-scoped)
```bash
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v2.1.0
Installation
# Cargo
cargo install arbor-graph-cli --version 2.1.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.1.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- Feat/v2.1.0 agent native by @Anandb71 in #138
- docs: update README and MCP_INTEGRATION for v2.1.0 agent-native tools by @Anandb71 in #140
- chore: bump all manifest versions to 2.1.0 by @Anandb71 in #141
Full Changelog: v2.0.1...v2.1.0
v2.0.1 - "Patch Stability & Automation Fixes"
Arbor v2.0.1 Release Notes — "Patch Stability & Automation Fixes"
Theme: Fast, low-risk patch release to stabilize release automation and PR-impact reporting after v2.0.0.
Release date: April 20, 2026
Highlights
-
PR Bot command path fixed
- Switched from invalid subcommand path to real CLI-driven report generation via:
arbor diff . --json
- Added PR commit-range awareness using
ARBOR_DIFF_BASEandARBOR_DIFF_HEAD.
- Switched from invalid subcommand path to real CLI-driven report generation via:
-
PR comment rendering fixed
- JSON report output now renders as proper fenced Markdown in PR comments.
-
Regression protection added
- Added integration test coverage for ranged diff behavior in
arbor-cliso commit-range reporting does not regress.
- Added integration test coverage for ranged diff behavior in
-
Contributors automation hardened
contributors.ymlnow skips PR creation if contributor block is unchanged.- Uses
github.tokenconsistently in checkout/PR creation path. - Contributors script now uses Bearer auth and handles transient GitHub API failures gracefully.
Version Alignment
Release-facing versions were aligned to 2.0.1 across:
- Cargo workspace package version
- Homebrew formula
- Scoop manifest
- npm wrapper package
- VS Code extension
package.json/package-lock.json
Validation
Validated during release prep with:
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-featurescargo test --workspace --verbosecargo test -p arbor-graph-cli --test diff_command_integration --verbose
Upgrade
cargo install arbor-graph-cli --version 2.0.1Notes
This is a patch release focused on correctness and workflow reliability. No intentional breaking changes were introduced.
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v2.0.1
Installation
# Cargo
cargo install arbor-graph-cli --version 2.0.1
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v2.0.1Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- chore: remove serialization hack comments from WebSocketService by @Anandb71 in #114
- fix(visualizer): resolve flutter analyze failures in CI by @Anandb71 in #115
- Cleanup/websocket comments by @Anandb71 in #116
- Cleanup/websocket comments by @Anandb71 in #117
- Cleanup/websocket comments by @Anandb71 in #118
- Cleanup/websocket comments by @Anandb71 in #119
- chore: Extensive architectural audit, graph engine fixes, and 35+ new… by @Anandb71 in #120
- Audit and testing overhaul by @Anandb71 in #121
- V2.0 by @Anandb71 in #122
- ci(rust): stabilize cross-platform CLI matrix by removing unnecessary… by @Anandb71 in #123
- fix(pr-bot): switch to valid CLI diff report and add PR base/head ran… by @Anandb71 in #124
- V2.0 by @Anandb71 in #125
Full Changelog: v2.0.0...v2.0.1
v2.0.0 - Context-Driven OS + Stability Release
Arbor v2.0.0 — Context-Driven OS + Stability Release
Release date: 2026-04-20
Arbor v2.0.0 is a major stabilization and capability release focused on deterministic graph intelligence, stronger MCP tooling, safer runtime behavior, and production-ready release automation.
Highlights
-
MCP upgrades for agent workflows
- Added richer graph tools and outputs, including:
get_knowledge_pathwith real logic-path explanations and Markdown link-style contextanalyze_impactwith Markdown-ready reporting and centrality-aware risk surfacing
- Deterministic ordering in MCP outputs for more stable CI/PR bot behavior
- Added richer graph tools and outputs, including:
-
Parser and language-path hardening
- Parser v2 registry cleanup for simpler extension and maintenance
- Improved fallback parser handling (including Markdown section modeling)
- Safer parsing behavior (reduced panic paths, graceful degradation on partial parse failures)
-
Persistent graph improvements
- Sled-backed graph persistence refined for incremental updates and consistent warm starts
- Better metadata/version/mtime handling for reliability in repeated indexing workflows
-
Release and CI reliability improvements
- Release automation hardened (version sync and distribution alignment)
- Workflow fixes for contributor automation and cross-platform release reliability
- PR-impact flow moved from mock behavior to real CLI-backed analysis pipeline
What changed in v2.0.0
- Versions aligned to 2.0.0 across workspace crates and distribution surfaces
- Packaging/manifests aligned for Homebrew, Scoop, npm wrapper, and VS Code extension
- Runtime hardening across core server/parser/MCP paths to reduce unwrap/panic failure modes
- Documentation refreshed across roadmap/changelog/releasing and release guidance
Stability & verification
Validated in this release cycle with full workspace checks:
cargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-featurescargo build --workspace --verbosecargo test --workspace --verbose- Cross-platform CLI build matrix and release workflow hardening
Breaking changes
No intentional user-facing breaking CLI contract is introduced in this release line, but this is a major version due to broad platform/runtime hardening and workflow/distribution realignment.
If you rely on custom CI glue around older PR-bot behavior, review your workflow pins and action usage.
Upgrade
- Cargo:
cargo install arbor-graph-cli --version 2.0.0 - Existing users should re-run indexing once after upgrade for clean cache/state convergence:
arbor setuporarbor index
Notes
- PR bot now uses real CLI-backed impact output with improved formatting and commit-range support for PR diffs.
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
v1.9.1 - The Reliability Audit & C# Integration
This release marks a massive milestone in Arbor’s internal stability and test coverage. Following a comprehensive codebase audit, we've radically hardened the underlying graph engine, implemented heavy test automation, and officially introduced native parsing for C#.
Architectural & Engine Fixes
-
Stable Graph Migration: We uncovered and resolved a severe hidden bug where deleting source files would trigger silent index corruption within the relational graph. Arbor's core representation engine has now successfully migrated to
StableDiGraph, ensuring 100% deterministic, immutable indexing across the entire node universe even during heavy live-edits. -
Search Engine Strictness: Enforced strict safeguards in the
SearchIndexto prevent empty query strings ("") from causing false-positive graph flooding, heavily optimizing query memory mapping.
New Language Support
-
Full C# Tree-Sitter Integration: Arbor now natively indexes
.csstructures including Classes, Structs, Interfaces, Properties, Constructors, and Enums! -
Context-Aware Visibility: C# processing is incredibly intelligent; we implemented upward tree-traversal logic (
node.parent()) allowing Arbor to contextually infer default C# accessibility patterns perfectly matching the official spec (publicfor interfaces,privatefor classes/structs,internalfor namespace compilation units). -
Kotlin Fallback Enhancement: Explicitly brought
data classdefinitions into the fallback parsing suite line-check logic. -
Expanded Extension Synchronization: Server configs now dynamically enforce and track extended JS module variants (
.mts,.cts,.mjs,.cjs) and Python stubs (.pyi), perfectly linking the server runtime definitions with core engine capabilities.
Unprecedented Test Coverage
Automated security and algorithmic logic is paramount. We implemented 35+ new high-value unit and integration tests validating boundaries, fallback mechanisms, heuristics algorithms, and edge-handling—pushing the framework to 100% operational test coverage across the full Rust CI workspace!
Full Changelog: v1.9.0...v1.9.1
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v1.9.1
Installation
# Cargo
cargo install arbor-graph-cli --version 1.9.1
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v1.9.1Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
Full Changelog: 1.9.0.0...v1.9.1
v1.9.0: Sharpen Every Edge
Arbor v1.9.0 is a major hardening release focused on correcting structural assumptions, securing deployments, and preventing graph metadata corruption. This closes multiple critical execution bugs while adding multi-core indexing optimizations for significantly faster operation on massive repos.
Critical Safety & Correctness
- Graph Integrity: Addressed a critical flaw where node removals silently invalidated internal
petgraphindices withinfile_index,name_index, andid_index. Incremental updates are now structurally sound and panic-safe. - Sync Server Security: Hardened the WebSocket server in headless mode (
0.0.0.0). Server metadata now enforces strict access scopes, blocking unauthorized external polling. - Impact Analysis: Modified
get_dependents()to utilize true Breadth-First Search (VecDeque::pop_front), finally guaranteeing that dependency hop-distance reporting is 100% accurate. - Expanded Edges: Callers and callees impact pipelines no longer arbitrarily drop
Imports,Extends,Implements, orUsesTypemapping edges. - Complete Exports: Graph JSON exports now properly package routing edges.
Performance & Mechanics
- Parser Convergence: Fully mitigated legacy parser path divergences. C# no longer silently drops, ensuring parity with the high-performance
parser_v2. - Parallel Indexing: The
arbor-watchertree-sitter ingestion path now spins uprayonthreaded parsing, slicing large-repo ingestion times in half. - Metadata & Tooling: Ripped out hardcoded language scopes across API capabilities entirely, swapping to central runtime derivations for GUI and HTTP/MCP capability syncs.
CI / CD Enhancements
- Fixed widespread version tracking discrepancies across manifests, package registries, Homebrew/Scoop, and
Cargo.toml. - Hardcoded runtime configurations (
"Arbor v1.5") completely scrubbed out of the primary binaries. - Prevented
peter-evans/create-pull-request@v7andactions/github-script@v8syntax anomalies from triggering silent CI dropouts.
🤖 Arbor MCP Quick Install
Use Arbor as a local MCP server in your AI client:
Claude Code (project-scoped)
claude mcp add --transport stdio --scope project arbor -- arbor bridge
claude mcp listIn Claude Code, run:
/mcp
Cursor MCP config (.cursor/mcp.json)
{
"mcpServers": {
"arbor": {
"command": "arbor",
"args": ["bridge"]
}
}
}VS Code MCP config (.vscode/mcp.json)
{
"servers": {
"arbor": {
"type": "stdio",
"command": "arbor",
"args": ["bridge"]
}
},
"inputs": []
}MCP Directories
- Glama: https://glama.ai/mcp/servers/@Anandb71/arbor
- Skills Playground: https://skillsplayground.com/mcps/nandb71-arbor/
Arbor v1.9.0
Installation
# Cargo
cargo install arbor-graph-cli --version 1.9.0
# Homebrew (macOS/Linux)
brew install Anandb71/tap/arbor
# Scoop (Windows)
scoop bucket add arbor https://github.com/Anandb71/arbor
scoop install arbor
# npm
npx @anandb71/arbor-cli
# Docker
docker pull ghcr.io/anandb71/arbor:v1.9.0Assets
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | arbor-linux-x86_64.tar.gz |
| Linux | aarch64 | arbor-linux-aarch64.tar.gz |
| macOS | x86_64 | arbor-macos-x86_64.tar.gz |
| macOS | Apple Silicon | arbor-macos-aarch64.tar.gz |
| Windows | x86_64 | arbor-windows-x86_64.zip |
What's Changed
- chore: remove serialization hack comments from WebSocketService by @Anandb71 in #114
- fix(visualizer): resolve flutter analyze failures in CI by @Anandb71 in #115
- Cleanup/websocket comments by @Anandb71 in #116
- Cleanup/websocket comments by @Anandb71 in #117
- Cleanup/websocket comments by @Anandb71 in #118
- Cleanup/websocket comments by @Anandb71 in #119
Full Changelog: v1.8.0.1...v1.9.0