v3.4.0
TypeScript migration complete, Leiden community detection, and native engine hardening. The entire codebase — all 271 source files — is now TypeScript with zero .js files remaining. Community detection upgrades from Louvain to a vendored Leiden algorithm with true probabilistic refinement, removing the graphology dependency. Go gains structural interface matching and C# gets proper implements disambiguation. The native Rust engine now extracts call-site AST nodes and bypasses the JS CFG visitor entirely on native builds. MCP server shutdown is graceful, and several edge-attribution and WASM fallback bugs are fixed.
Features
- types: complete TypeScript migration — all 271 source files migrated from JavaScript, zero
.jsfiles remaining. Covers leaf modules, core domain, graph algorithms, builder stages, search, CLI layer (48 command handlers), AST analysis, features, presentation, MCP tools, and test suite (#553, #554, #555, #558, #566, #570, #579, #580, #581, #588) - communities: vendor Leiden community detection algorithm, replacing
graphology-communities-louvain— full control over resolution, quality functions, and probabilistic refinement (#545, #552, #556) - resolution: Go structural interface matching — post-extraction pass matches struct method sets against interface method sets; C#
implementsdisambiguation via post-walk reclassification ofextendsentries targeting known interfaces (#522) - native: extract call-site AST nodes in Rust during native parse, fixing WASM fallback path for incomplete extraction (#591)
- native: extract
base_listfor C# classes in the Rust engine (#577) - cfg: bypass JS CFG visitor entirely on native builds; fix Go
for-rangeCFG parity between engines (#595)
Bug Fixes
- edges: remove
findCallerfallback that misattributed file-scope calls to unrelated functions (#607) - mcp: add graceful shutdown to prevent "MCP Failed" errors on session clear (#598)
- resolver: apply JS-side
.js→.tsextension remap after native resolution (#594) - resolver: normalize paths in native resolver for
.js→.tsremap (#600) - deps: patch 5 high-severity transitive vulnerabilities (#583)
- types: narrow parser return types,
cachedStmtinbuildTestFileIds, WASM parser path, and triage query results (#569, #576, #578) - scripts: use version-aware
strip-typesflag inpackage.jsonscripts (#599) - tests: use
fs.cpSyncfor fixture copy to handle subdirectories (#584)
Performance
- native: fix WASM fallback bypass so native builds skip redundant JS analysis passes; batch SQL inserts for node/edge operations (#606)
- queries: apply
cachedStmttobuildTestFileIdsstatic SQL for faster test filtering (#575)
Tests
- strengthen weak assertions and add presentation layer coverage (#586)