Skip to content

Releases: getArbor-dev/arbor

v2.6.0 — Telling the truth about the graph

Choose a tag to compare

@Anandb71 Anandb71 released this 03 Aug 02:02
49a473a

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 list

In 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

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.0

Assets

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.0

Assets

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.0

Assets

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

Choose a tag to compare

@Anandb71 Anandb71 released this 15 Jul 15:56
06bdaa2

"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 it

PageRank, 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 --force

MCP 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 list

In 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

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.0

Assets

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"

Choose a tag to compare

@Anandb71 Anandb71 released this 07 Jul 21:21

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-28 with dual-version fallback for 2025-03-26 clients
  • Stateless server/discover endpoint
  • Response caching metadata (ttlMs, cacheScope) on list/read operations
  • Extensions capability map for Tasks and MCP Apps

Tasks Extension

  • tasks/get, tasks/update, tasks/cancel for 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_impact and get_architecture_overview declare _meta.ui resource URIs

Streamable HTTP Transport

arbor bridge --http --port 3333
  • Stateless HTTP alongside stdio
  • Mcp-Method / Mcp-Name header 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_symbols and get_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.md with token-savings methodology

Upgrade Guide

MCP clients (Claude / Cursor) — no changes required for stdio:

claude mcp add --transport stdio --scope project arbor -- arbor bridge

HTTP clients (new):

arbor bridge --http --port 3333
# POST http://127.0.0.1:3333/mcp
# Headers: Mcp-Method: tools/call, Mcp-Name: analyze_impact

Clients 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, _meta parsing, 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_radius via shared arbor-graph::compute_blast_radius
  • Pagination on search_symbols and get_map
  • Criterion benchmarks + CI workflow

Changed

  • Async MCP stdio (tokio replaces blocking stdin loop)
  • MCP tool annotations: _meta.ui on analyze_impact and get_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 list

In 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

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.0

Assets

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

Choose a tag to compare

@Anandb71 Anandb71 released this 29 Jun 02:15
07a1c34

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.json for 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 list

In 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

v2.2.0 - PR Intelligence

Choose a tag to compare

@Anandb71 Anandb71 released this 18 Jun 02:47
e62f66b
  • 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 execFileSync arguments.
  • Atomic Cache Writes: Prevented concurrent cache corruption via .tmp file renames.
  • Dependency Cleanups: Pruned yanked core2 crate by disabling image default 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 list

In 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

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.0

Assets

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

Choose a tag to compare

@Anandb71 Anandb71 released this 05 May 11:13
bec8869

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 list

In 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

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.0

Assets

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"

Choose a tag to compare

@Anandb71 Anandb71 released this 20 Apr 17:42
d93307a

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_BASE and ARBOR_DIFF_HEAD.
  • 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-cli so commit-range reporting does not regress.
  • Contributors automation hardened

    • contributors.yml now skips PR creation if contributor block is unchanged.
    • Uses github.token consistently 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 -- --check
  • cargo clippy --workspace --all-targets --all-features
  • cargo test --workspace --verbose
  • cargo test -p arbor-graph-cli --test diff_command_integration --verbose

Upgrade

cargo install arbor-graph-cli --version 2.0.1

Notes

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 list

In 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

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.1

Assets

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.0.0...v2.0.1

v2.0.0 - Context-Driven OS + Stability Release

Choose a tag to compare

@Anandb71 Anandb71 released this 20 Apr 16:22

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_path with real logic-path explanations and Markdown link-style context
      • analyze_impact with Markdown-ready reporting and centrality-aware risk surfacing
    • Deterministic ordering in MCP outputs for more stable CI/PR bot behavior
  • 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 -- --check
  • cargo clippy --workspace --all-targets --all-features
  • cargo build --workspace --verbose
  • cargo 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 setup or arbor 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 list

In 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

v1.9.1 - The Reliability Audit & C# Integration

Choose a tag to compare

@Anandb71 Anandb71 released this 19 Apr 08:24
a90b3bb

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 SearchIndex to 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 .cs structures 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 (public for interfaces, private for classes/structs, internal for namespace compilation units).

  • Kotlin Fallback Enhancement: Explicitly brought data class definitions 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 list

In 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

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.1

Assets

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: Extensive architectural audit, graph engine fixes, and 35+ new… by @Anandb71 in #120

Full Changelog: 1.9.0.0...v1.9.1

v1.9.0: Sharpen Every Edge

Choose a tag to compare

@Anandb71 Anandb71 released this 12 Apr 17:03
0304988

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 petgraph indices within file_index, name_index, and id_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, or UsesType mapping 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-watcher tree-sitter ingestion path now spins up rayon threaded 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@v7 and actions/github-script@v8 syntax 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 list

In 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

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.0

Assets

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: v1.8.0.1...v1.9.0