Skip to content

v0.4.0 — community detection v2, framework edges, agent data-availability

Choose a tag to compare

@mikeparcewski mikeparcewski released this 16 Jun 05:01
· 82 commits to main since this release

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 on wicked-estate clusters.
  • Semantic clustering (clusters --weight semantic) — k-means + DBSCAN over embeddings, grouping code by what it does (needs --embeddings + the fastembed feature 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 --json bulk bundle — full bodies for an entire --cluster/--file/--symbols selection in one call; unbounded by default (caller owns its context budget), --max-total-chars/--signatures-only to constrain, with a loud-truncation escape hatch (body dropped → source: null but symbol_id/byte_range/blob_sha kept; never a dropped node).
  • Denormalized MCP payloadsTraverseGraph/BlastRadius edges carry resolved {name, kind, file, line_1based} + confidence/provenance inline (no N+1 round-trips); opt-in bounded source slices on SearchEntity/RetrieveEntity; 1-based line fields + end_line; per-file blob_sha; blast-radius summary.
  • ContextBundle MCP tool — seed + ranked neighbors + budget-packed stubs in one call.
  • clusters --summary --json (per-community label candidates, dominant files, modularity) and symbol_id on nodes --json for 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