Releases: optave/ops-codegraph-tool
Dev build 3.9.4-dev.5
Dev build from commit 3a6a155f5430c92099ba59be2bcbc0299f000e93 on main.
Dev build 3.9.4-dev.4
Dev build from commit b533ac1752ef34e3d76880ffb7a6d8ef4d4674a1 on main.
v3.9.3
Native engine parity and build performance. The Rust engine now produces identical role classifications as the JS fallback — reexport chains, type-only imports, and constant classification all match. Build performance improves across the board: the entire analysis pipeline (complexity, CFG, dataflow, AST) now runs inside the Rust orchestrator on a single rusqlite connection, batched WAL checkpoints cut incremental rebuild overhead by 49%, and a full-build regression from v3.9.2 is fixed. A new CI parity job catches engine divergences before they ship. The incremental rebuild guide documents what data requires a full rebuild and adds automatic 24h staleness detection to Claude Code hooks.
Bug Fixes
- native: align Rust role classification with JS — reexport chains, type-only imports, constant classification (#918)
- native: strip pre-release suffix in semverCompare — dev builds were silently falling back to JS pipeline (#898)
- test: restore strict parity assertions and add dedicated CI parity job (#916)
- release: decouple version bumps from release PRs to fix CI failures (#893)
Performance
- native: move analysis persistence (AST, complexity, CFG, dataflow) into Rust orchestrator — eliminates JS WASM re-parse (#907)
- native: use single rusqlite connection for entire build pipeline — 12% faster full builds, 30% faster incremental, 14% smaller DB (#897)
- native: fix full-build regression from NativeDbProxy overhead (#906)
- incremental: batch WAL checkpoints and fix native CFG bulk insert — 49% faster incremental rebuilds (#917)
- query: fix diffImpact latency regression from redundant config loading (#905)
Refactors
- adopt dead helpers across codebase — 28 files, -30 net lines (#895)
Docs
- incremental vs full rebuild guide with automatic 24h staleness check (#919)
- update build, query, and incremental benchmarks for 3.9.2 (#900, #901, #902)
Chores
- deps: bump web-tree-sitter from 0.26.7 to 0.26.8 (#913)
- deps: bump actions/setup-go from 5 to 6, actions/github-script from 8 to 9, actions/setup-python from 5 to 6 (#910, #909, #908)
- deps-dev: bump vitest from 4.1.2 to 4.1.4, @vitest/coverage-v8 from 4.1.2 to 4.1.4 (#915, #912)
- deps-dev: bump tree-sitter-cli from 0.26.7 to 0.26.8, @biomejs/biome from 2.4.10 to 2.4.11 (#911, #914)
Dev build 3.9.3-dev.0
Dev build from commit 30a079ea3e27d2f5764cc46b33760721f18d7de1 on main.
v3.9.2
Engine parity fix and build performance improvements. This patch fixes a native engine deduplication bug that caused divergent results when multiple type map entries existed for the same symbol, improving engine parity. Build performance improves with deferred native database initialization (skipping the native DB entirely on no-op rebuilds) and a fix for an incremental rebuild regression introduced in v3.9.1. The resolution benchmark suite is significantly expanded with dynamic call tracing across all language fixtures, and the release workflow now gates on precision/recall thresholds.
Bug Fixes
- native: confidence-aware dedup in type map for engine parity (#885)
Performance
- defer NativeDatabase init to after no-op early exit (#884)
- native: fix incremental rebuild regression (#882, #888)
Chores
v3.9.1
Dead code accuracy, native query performance, and supply-chain hardening. This release significantly improves dead code detection — class instantiations via new, type-only imports, barrel re-exports, and same-file constants are now correctly tracked as consumption. The native Rust engine gains a composite fnDeps query that runs dependency resolution in a single cross-language call, and a critical 1238% incremental rebuild regression from v3.9.0 is fixed. WASM grammar validation and npm audit harden the build pipeline. CLI reliability improves with a fix for hangs in git worktree environments.
Bug Fixes
- track class instantiation (
new) as consumption for dead code detection (#861) - resolve type-only imports for dead code analysis (#862)
- trace barrel re-exports in role classification (#860)
- recognize same-file constant consumption in dead code detector (#859)
- resolve codegraph CLI hangs in git worktrees (#863)
- use shared
shouldIgnore/isSupportedFilein watcher (#864) - resolve barrel resolution quality and cycle regression (#848)
- show both engines side-by-side in README benchmark table (#826)
- release config script validation and broken postbump (#825)
- native: lower version gate for native orchestrator (#867)
- native: correct incremental purge, scoped deletion, and barrel resolution (#865)
- ci: retry npm publish on transient registry errors (#833)
- ci: upgrade publish job to Node 24 for OIDC trusted publishing (#850)
- ci: add npm auth debug step and fix publish retry logic (#835)
- perf: wire engine selection through openRepo to fix query benchmarks (#869)
- bench: attribute unified walk time to per-phase timers (#858)
Performance
Refactors
- native: decompose core Rust algorithms and pipeline (#845)
- native: extract constants and shared barrel resolution (#842)
- native: flatten and decompose extractor match arms (#844)
- DRY shared abstractions in TS features (#843)
- decompose TS complexity and build pipeline (#846)
- improve TS code quality across modules (#847)
Chores
- security: WASM grammar validation and npm audit CI (#834)
- deps: bump @modelcontextprotocol/sdk from 1.28.0 to 1.29.0 (#829)
- deps-dev: bump @huggingface/transformers from 3.8.1 to 4.0.1 (#831)
- deps-dev: bump @biomejs/biome from 2.4.9 to 2.4.10 (#828)
- deps-dev: bump tree-sitter-gleam (#830)
- deps-dev: bump tree-sitter-erlang from 0.0.0 to 0.15 (#827)
v3.9.0
Engine parity hardening and cross-database queries. This release closes the remaining native/WASM divergences — node counts, edge counts, complexity metrics, and import resolution now match across engines. A new --db flag on branch-compare and info lets you point at any .codegraph/graph.db, enabling cross-repo comparisons without rebuilding. WASM grammar loading is now lazy during incremental rebuilds, cutting rebuild times for large codebases. Windows users get a fix for ENOENT failures during auto-install.
Features
- cli: add
--dbflag tobranch-compareandinfocommands for cross-database queries (#820) - add resolution precision/recall metrics and version stamp to README benchmarks (#796)
Bug Fixes
- respect
--engine wasmin pipeline guard (#819) - resolve npm ENOENT on Windows for auto-install (#818)
- resolve native/WASM engine divergence in node and edge counts (#810)
- native: resolve importedNames priority and type map scope collisions (#811)
- native: resolve import path mismatch and add post-native structure phase (#807)
- native: extract export name for destructured dynamic imports (#813)
- native: fix incremental barrel edges, median parity, and analysis data loss (#806)
- parity: align native vs WASM complexity metrics (#809)
- v3.8.1 regression fixes (fnDeps, WASM lazy-load, edge parity, CI guard) (#815)
- ci: remove npm self-upgrade that breaks publish workflow (#790)
Performance
- lazy-load WASM grammars for incremental rebuilds (#808)
v3.8.1
Windows stability, native engine fixes, and large-codebase performance. This patch hardens the v3.8.0 release with critical Windows fixes (polling watcher to avoid ReFS BSOD, Windows-scoped import-edge handling), several native engine corrections (dataflow parameter indexing, embedding path resolution, build orchestrator sequencing), and performance improvements for large codebases — cycle detection and stats queries are faster, and query-time analysis now routes through the native Rust engine.
Bug Fixes
- native: resolve dataflow null paramIndex and import edge key mismatch (#788)
- native: keep nativeDb open through finalize for correct build_meta (#784)
- embed: handle absolute file paths from native engine (#780, #783)
- default watcher to polling on Windows to avoid ReFS BSOD (#778)
- scope native import-edge skip to Windows only (#777)
- run analysis phases after native Rust build orchestrator (#757)
- skip native build orchestrator for addon ≤3.8.0 and fix path bug (#758)
- auto-install @huggingface/transformers in non-TTY environments (#779)
- remove duplicate function definitions in leiden optimiser (#786)
- replace empty catch blocks with structured error handling (#764)
- replace console.log with structured logging in non-CLI-output code (#765)
- ci: add concurrency group to codegraph-impact workflow (#785)
- bench: resolve query benchmark CI failure and increase embedding timeout (#749)
Performance
- route query analysis through native Rust engine (#745)
- optimize cycles and stats for large codebases (#781)
- filter reverse-dep files from native build analysis scope (#782)
- forward langId hint to native standalone analysis functions (#743)
Refactors
- decompose ast-analysis visitor framework (#771)
- Titan v3.8.0 — decompose god-functions, structured logging, error handling (#775)
- extract class declaration handlers in language extractors (#769)
- split hybridSearchData into keyword, vector, and merge steps (#768)
- decompose makePartition into focused graph operations (#766)
- extract rendering sub-functions from inspect and diff-impact-mermaid (#767)
- address quality warnings in shared modules (#770)
v3.8.0
34 languages and a fully native build pipeline. This release completes Phase 7 (Expanded Language Support) by shipping the final 11 languages — F#, Gleam, Clojure, Julia, R, Erlang, Solidity, Objective-C, CUDA, Groovy, and Verilog — bringing codegraph from 23 to 34 supported languages. On the performance side, the entire build pipeline now runs natively in Rust: graph algorithms (BFS, shortest path, Louvain, centrality), import edge building with barrel resolution, and build-glue queries all migrate from JS to napi-rs. A new Rust build orchestration layer coordinates the full native pipeline end-to-end.
Features
- add F#, Gleam, Clojure, Julia, R, Erlang language support (#722)
- add Solidity, Objective-C, CUDA, Groovy, Verilog language support (#729)
- full Rust build orchestration (#740)
Bug Fixes
- native: enable bulkInsertNodes native path (#736)
- native: enable bulkInsertNodes native path — null-visibility serialisation (#737)
- native: prevent SQLITE_CORRUPT in incremental pipeline (#728)
- ocaml: use LANGUAGE_OCAML_INTERFACE grammar for .mli files (#730)
- address unresolved review feedback from batch4 language extractors (#731)
- bench: report partial native results when incremental rebuild fails (#741)
Performance
- migrate graph algorithms (BFS, shortest path, Louvain, centrality) to Rust (#732)
- migrate import edge building + barrel resolution to Rust (#738)
- native: expose standalone complexity/CFG/dataflow analysis via napi-rs (#733)
- native Rust build-glue queries (detect-changes, finalize, incremental) (#735)
Refactors
- native: remove call kind from AST node extraction (#734)
v3.7.0
Six more languages and a CFG stability fix. Codegraph now supports Elixir, Lua, Dart, Zig, Haskell, and OCaml — bringing the total to 23 languages with dual-engine extractors. A WAL conflict in the native CFG bulk-insert path is also fixed, preventing database corruption when JS and native connections overlap during control-flow graph writes.
Features
- add Elixir, Lua, Dart, Zig, Haskell, OCaml language support (#718)
Bug Fixes
- cfg: avoid dual-connection WAL conflict in native bulkInsertCfg (#719)