diff --git a/CHANGELOG.md b/CHANGELOG.md index f0220e4f..a1a3d9bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,39 @@ 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.4.1](https://github.com/optave/codegraph/compare/v3.4.0...v3.4.1) (2026-03-26) + +**Post-migration stabilization and native engine accuracy.** This release fixes a Rust `findCaller` bug that misattributed 68 call edges, adds compound database indexes to restore query performance after the TypeScript migration, and delivers a 96% speedup to incremental role classification (255ms → 9ms). WASM builds are more resilient, incremental rebuilds handle JSONC and version changes correctly, and error handling is safer across the board. + +### Bug Fixes + +* **native:** remove spurious else-if in Rust `findCaller` that misattributed 68 call edges ([#637](https://github.com/optave/codegraph/pull/637)) +* **native:** recurse into `await_expression` children in `walk_ast_nodes` ([#618](https://github.com/optave/codegraph/pull/618)) +* **build:** JSONC parse and version-aware incremental rebuilds ([#631](https://github.com/optave/codegraph/pull/631)) +* WASM build resilience and lint cleanup from TypeScript migration ([#629](https://github.com/optave/codegraph/pull/629)) +* dogfood fixes 9.1–9.4 — version warning, barrel exports, quieter tsconfig, Set compatibility ([#634](https://github.com/optave/codegraph/pull/634)) +* use safe error coercion in debug catch blocks ([#630](https://github.com/optave/codegraph/pull/630)) +* add debug logging to empty catch blocks across infrastructure and domain layers ([#616](https://github.com/optave/codegraph/pull/616)) +* **bench:** use `dist/` for npm benchmark installs to avoid Node type-stripping error ([#624](https://github.com/optave/codegraph/pull/624)) +* **bench:** repair benchmark workflow broken by TypeScript migration ([#612](https://github.com/optave/codegraph/pull/612)) +* **skills:** prevent `/review` from spamming `@greptileai` when already approved ([#628](https://github.com/optave/codegraph/pull/628)) + +### Performance + +* **db:** add compound indexes to fix query regression from TypeScript migration ([#632](https://github.com/optave/codegraph/pull/632)) +* **build:** incremental rebuild optimizations — roles 255ms → 9ms ([#622](https://github.com/optave/codegraph/pull/622)) + +### Refactors + +* **errors:** extract shared `toErrorMessage` helper ([#633](https://github.com/optave/codegraph/pull/633)) +* extract `MAX_WALK_DEPTH` constant to extractors helpers ([#620](https://github.com/optave/codegraph/pull/620)) +* address SLOC warnings in domain and features layers ([#621](https://github.com/optave/codegraph/pull/621)) +* split `cfg-visitor.ts` by control-flow construct ([#619](https://github.com/optave/codegraph/pull/619)) + +### Chores + +* **titan:** first full Titan Paradigm pipeline run — audit report generation and skill improvements ([#623](https://github.com/optave/codegraph/pull/623)) + ## [3.4.0](https://github.com/optave/codegraph/compare/v3.3.1...v3.4.0) (2026-03-25) **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. diff --git a/crates/codegraph-core/Cargo.toml b/crates/codegraph-core/Cargo.toml index 79f3e1c5..d968ad1c 100644 --- a/crates/codegraph-core/Cargo.toml +++ b/crates/codegraph-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "codegraph-core" -version = "3.4.0" +version = "3.4.1" edition = "2021" license = "Apache-2.0" diff --git a/docs/roadmap/BACKLOG.md b/docs/roadmap/BACKLOG.md index 038ea6fa..af8e9754 100644 --- a/docs/roadmap/BACKLOG.md +++ b/docs/roadmap/BACKLOG.md @@ -1,6 +1,6 @@ # Codegraph Feature Backlog -**Last updated:** 2026-03-25 +**Last updated:** 2026-03-26 **Source:** Features derived from [COMPETITIVE_ANALYSIS.md](../../generated/competitive/COMPETITIVE_ANALYSIS.md) and internal roadmap discussions. --- diff --git a/docs/roadmap/ROADMAP.md b/docs/roadmap/ROADMAP.md index 8988bdd5..a6b7f36f 100644 --- a/docs/roadmap/ROADMAP.md +++ b/docs/roadmap/ROADMAP.md @@ -1,6 +1,6 @@ # Codegraph Roadmap -> **Current version:** 3.4.0 | **Status:** Active development | **Updated:** 2026-03-25 +> **Current version:** 3.4.1 | **Status:** Active development | **Updated:** 2026-03-26 Codegraph is a strong local-first code graph CLI. This roadmap describes planned improvements across thirteen phases -- closing gaps with commercial code intelligence platforms while preserving codegraph's core strengths: fully local, open source, zero cloud dependency by default. @@ -1213,12 +1213,13 @@ Structure building is unchanged — at 22ms it's already fast. ### 6.8 -- Incremental Rebuild Performance (partial) -**Partially complete.** Roles classification is fully optimized (255ms → 9ms via incremental path with edge-neighbour expansion, PR #622). Structure batching and finalize skip are also done. Current native 1-file rebuild is ~466ms (v3.4.0, 473 files) — down from ~802ms but still above the sub-100ms target. +**Partially complete.** Roles classification is fully optimized (255ms → 9ms via incremental path with edge-neighbour expansion, PR #622). Structure batching and finalize skip are also done. Compound DB indexes restored query performance after TS migration (PR #632). Current native 1-file rebuild is ~466ms (v3.4.0, 473 files) — down from ~802ms but still above the sub-100ms target. **Done:** - **Incremental roles** (255ms → 9ms): Only reclassify nodes from changed files + edge neighbours using indexed correlated subqueries. Global medians for threshold consistency. Parity-tested against full rebuild. *Note:* The benchmark table shows ~54ms for 1-file roles because the standard benchmark runs the full roles phase; the 9ms incremental path (PR #622) is used only when the builder detects a 1-file incremental rebuild - **Structure batching:** Replace N+1 per-file queries with 3 batch queries regardless of file count - **Finalize skip:** Skip advisory queries (orphaned embeddings, unused exports) during incremental builds +- **DB index regression:** Compound indexes on nodes/edges tables restored after TS migration (PR #632) **Remaining:** - **Incremental edge rebuild:** Only rebuild edges involving the changed file's symbols (currently edgesMs ~21ms on native, ~15ms on WASM — native is *slower* on 1-file) @@ -1226,7 +1227,7 @@ Structure building is unchanged — at 22ms it's already fast. - **Structure/roles on 1-file:** Both still take ~25ms and ~54ms respectively on 1-file rebuilds — the full-build optimizations (6.5) don't apply to the incremental path - **Benchmark target:** Sub-100ms native 1-file rebuilds (current ~466ms on 473 files) -**Key PRs:** #622 +**Key PRs:** #622, #632 **Affected files:** `src/domain/graph/builder/stages/build-structure.ts`, `src/domain/graph/builder/stages/build-edges.ts`, `src/domain/graph/builder/pipeline.ts` diff --git a/package-lock.json b/package-lock.json index 4397e24d..a00f972b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@optave/codegraph", - "version": "3.4.0", + "version": "3.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@optave/codegraph", - "version": "3.4.0", + "version": "3.4.1", "license": "Apache-2.0", "dependencies": { "better-sqlite3": "^12.6.2", diff --git a/package.json b/package.json index c9bb4b1b..896a90f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@optave/codegraph", - "version": "3.4.0", + "version": "3.4.1", "description": "Local code graph CLI — parse codebases with tree-sitter, build dependency graphs, query them", "type": "module", "main": "dist/index.js",