What's New in v0.3.3
Pipeline Quality Improvements
17 Import Parsers — Language-aware import extraction for ES modules, Java, Kotlin, Scala, C#, C, C++, PHP, Ruby, Rust, Lua, Elixir, Bash, Zig, Erlang, Haskell, and OCaml. IMPORTS edges now reflect actual source-level imports instead of heuristic-based guesses.
Language-aware Class Detection — isClassDeclaration() now correctly identifies class declarations in TypeScript, Java, C#, Scala, Kotlin, and PHP, improving IMPLEMENTS edge accuracy.
Route Test Filtering — isTestNode() + containsTestSegment() now exclude test fixtures from HTTP route extraction. Go routes dropped from 211→56, Rust 146→74, JS 125→53.
Callee Extraction for Functional Languages — Haskell, OCaml, and Elixir now extract function calls from apply, infix, and application_expression nodes. OCaml CALLS went from 221→10,629 (+4710%), Haskell 175→4,094 (+2239%).
JSX Component References — TSX files now emit CALLS edges for uppercase JSX tags (component usage), boosting TSX CALLS from 3,400→36,172 (+964%).
Type Inference Split — Separated into typed (static type annotations) and dynamic (runtime inference) paths for cleaner, more accurate type resolution.
Snippet Tool Optimization
auto_resolveparam: Opt-in automatic disambiguation — picks the best candidate when ≤2 matches existinclude_neighborsparam: Opt-in caller/callee name inclusion in snippet responses- Better disambiguation UX: Replaced
errorkey withstatus/messagefor clearer AI agent integration - Fuzzy fallback fix: Extracts last dot-segment from qualified names for more reliable matching
Bug Fixes
- R function name resolution: Fixed resolution of all function types in R language support (#14)
- Windows CI: Fixed SQLite file locking during test cleanup on Windows
- Neighbor name lookups: New
NodeNeighborNamesstore method for efficient neighbor discovery
Benchmark Results (v3)
- D-tier languages reduced from 8 → 4 (C#, Ruby, Erlang, SQL remain)
- Average MCP quality score: 0.75 → 0.79
- Languages with MCP Q ≥ 0.7: 14 → 17 of 22
Stats
- 30 files changed, +6,656 / −193 lines
- 1,679 lines of new extraction test coverage