v0.4.0 — community detection v2, framework edges, agent data-availability
First release since v0.2.0. Three themes: better community structure, richer edges, and payloads shaped for how LLM agents and pipelines actually consume the graph.
Community detection v2
- Multi-level Louvain replaces connected-components — a connected-but-clustered codebase no longer collapses into one mega-community. Dogfood (this repo, 3851 nodes): 127 communities, modularity 0.805, largest = 9.2% of symbols (union-find was ~100%).
- Resolution (
--resolution <γ>), hierarchical refinement (--hierarchical), and package-aware bias (--package-bias) — all onwicked-estate clusters. - Semantic clustering (
clusters --weight semantic) — k-means + DBSCAN over embeddings, grouping code by what it does (needs--embeddings+ thefastembedfeature for quality).
Framework-relationship edges (Java/Spring)
- Dependency injection (
@Autowired/@Inject/@Resource, field + constructor) →di-wired; route handlers (@GetMapping/etc.) →route-handler; event pub/sub (@EventListener/@KafkaListener/publishEvent) →event-emits/event-listens. Emitted via generic, data-driven capture roles (no per-language Rust).
Agent / pipeline data-availability
source --jsonbulk bundle — full bodies for an entire--cluster/--file/--symbolsselection in one call; unbounded by default (caller owns its context budget),--max-total-chars/--signatures-onlyto constrain, with a loud-truncation escape hatch (body dropped →source: nullbutsymbol_id/byte_range/blob_shakept; never a dropped node).- Denormalized MCP payloads —
TraverseGraph/BlastRadiusedges carry resolved{name, kind, file, line_1based}+ confidence/provenance inline (no N+1 round-trips); opt-in bounded source slices onSearchEntity/RetrieveEntity; 1-based line fields +end_line; per-fileblob_sha; blast-radiussummary. ContextBundleMCP tool — seed + ranked neighbors + budget-packed stubs in one call.clusters --summary --json(per-community label candidates, dominant files, modularity) andsymbol_idonnodes --jsonfor precise keying.
Gates
cargo build --workspace (0 warnings) · cargo test --workspace (43 suites, 0 failures) · cargo clippy --workspace --all-targets -- -D warnings · cargo fmt --all --check — all green at this tag.
🤖 Generated with Claude Code