Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,28 @@

All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.

## [3.0.3](https://github.com/optave/codegraph/compare/v3.0.2...v3.0.3) (2026-03-04)
## [3.0.4](https://github.com/optave/codegraph/compare/v3.0.3...v3.0.4) (2026-03-05)

> **Note:** 3.0.2 was an internal/unpublished version used during development.
**Native engine goes full-stack: CFG, AST nodes, and WASM double-parse elimination.** This release completes the native engine migration — CFG computation and AST node extraction now run in Rust for 8 languages, eliminating the redundant WASM pre-parse on native builds.

### Performance
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Platform feature (PR #341) absent from changelog

The PR description lists a ### Features entry for this release:

platform: add linux-arm64-gnu and linux-x64-musl native binary packages with detectLibc() auto-selection and npm libc field support (#341)

The package.json confirms these two new platform packages are now wired in at v3.0.4, yet the v3.0.4 changelog has no ### Features section at all. If PR #341 indeed merged into this release (unlike PR #345 which is still open), this entry is missing. If it was intentionally excluded (e.g., the packages shipped in a prior internal build), the PR description should be updated to reflect that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #341 merged before the v3.0.3 release commit (9ce14b8) — it's already included in v3.0.3. The platform packages in package.json just have their version pins bumped from 3.0.3 to 3.0.4, which is a mechanical version bump, not a new feature for this release.


* **ast:** use single transaction for AST node insertion — astMs drops from ~3600ms to ~350ms (native) and ~547ms (WASM), reducing overall native build from 24.9 to 8.5 ms/file ([#333](https://github.com/optave/codegraph/pull/333))
* **builder:** skip `ensureWasmTrees` when native engine provides complete CFG + dataflow data ([#344](https://github.com/optave/codegraph/pull/344))
* **native:** compute CFG in Rust native engine for all 8 languages (JS/TS/TSX, Python, Go, Rust, Java, C#, Ruby, PHP) — ports `buildFunctionCFG` algorithm to Rust with per-language `CfgRules`, eliminates WASM re-parsing in CFG phase ([#342](https://github.com/optave/codegraph/pull/342))
* **native:** extract AST nodes (call, new, throw, await, string, regex) for all non-JS languages in Rust via shared `walk_ast_nodes_with_config()` — astMs drops from ~651ms to ~50ms ([#340](https://github.com/optave/codegraph/pull/340))
* **builder:** skip `ensureWasmTrees` entirely when native engine provides complete CFG + dataflow + AST data — wasmPreMs drops from ~388ms to 0 on native builds ([#344](https://github.com/optave/codegraph/pull/344))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR #344 already claimed by the 3.0.3 changelog entry

PR #344 is attributed here to the new 3.0.4 builder performance bullet for skipping ensureWasmTrees. However, PR #344 is also referenced twice in the 3.0.3 section (lines 30 and 34) for the same builder optimization and a native constants fix.

A merged PR is typically released exactly once. Having the same PR number appear under two distinct semver releases suggests either:

  1. The 3.0.4 builder bullet has an incorrect PR number (should be a different PR), or
  2. The 3.0.3 bullets have incorrect PR numbers.

Please verify which release PR #344 actually landed in and correct the stale reference(s).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — PR #344 merged after the v3.0.3 release commit. Removed the incorrect #344 references from the v3.0.3 section. It now only appears under v3.0.4 where it belongs.


### Bug Fixes

* **native:** fix function-scoped `const` declarations being incorrectly extracted as top-level constants ([#344](https://github.com/optave/codegraph/pull/344))
* **benchmark:** show all build phases (astMs, cfgMs, dataflowMs, wasmPreMs) in benchmark report and document v3.0.0→v3.0.3 native regression cause ([#339](https://github.com/optave/codegraph/pull/339))

## [3.0.3](https://github.com/optave/codegraph/compare/v3.0.2...v3.0.3) (2026-03-04)

> **Note:** 3.0.2 was an internal/unpublished version used during development.

### Performance

* **ast:** use single transaction for AST node insertion — astMs drops from ~3600ms to ~350ms (native) and ~547ms (WASM), reducing overall native build from 24.9 to 8.5 ms/file ([#333](https://github.com/optave/codegraph/pull/333))

## [3.0.2](https://github.com/optave/codegraph/compare/v3.0.1...v3.0.2) (2026-03-04)

Expand Down
2 changes: 1 addition & 1 deletion crates/codegraph-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "codegraph-core"
version = "3.0.3"
version = "3.0.4"
edition = "2021"
license = "Apache-2.0"

Expand Down
78 changes: 60 additions & 18 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@optave/codegraph",
"version": "3.0.3",
"version": "3.0.4",
"description": "Local code graph CLI — parse codebases with tree-sitter, build dependency graphs, query them",
"type": "module",
"main": "src/index.js",
Expand Down Expand Up @@ -71,13 +71,13 @@
},
"optionalDependencies": {
"@modelcontextprotocol/sdk": "^1.0.0",
"@optave/codegraph-darwin-arm64": "3.0.3",
"@optave/codegraph-darwin-x64": "3.0.3",
"@optave/codegraph-linux-arm64-gnu": "3.0.3",
"@optave/codegraph-linux-arm64-musl": "3.0.3",
"@optave/codegraph-linux-x64-gnu": "3.0.3",
"@optave/codegraph-linux-x64-musl": "3.0.3",
"@optave/codegraph-win32-x64-msvc": "3.0.3"
"@optave/codegraph-darwin-arm64": "3.0.4",
"@optave/codegraph-darwin-x64": "3.0.4",
"@optave/codegraph-linux-arm64-gnu": "3.0.4",
"@optave/codegraph-linux-arm64-musl": "3.0.4",
"@optave/codegraph-linux-x64-gnu": "3.0.4",
"@optave/codegraph-linux-x64-musl": "3.0.4",
"@optave/codegraph-win32-x64-msvc": "3.0.4"
},
"devDependencies": {
"@biomejs/biome": "^2.4.4",
Expand Down