Skip to content

Commit 9107ec2

Browse files
authored
chore: release v3.4.0 (#608)
1 parent 0435c41 commit 9107ec2

7 files changed

Lines changed: 74 additions & 48 deletions

File tree

CHANGELOG.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,44 @@
22

33
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.
44

5+
## [3.4.0](https://github.com/optave/codegraph/compare/v3.3.1...v3.4.0) (2026-03-25)
6+
7+
**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.
8+
9+
### Features
10+
11+
* **types:** complete TypeScript migration — all 271 source files migrated from JavaScript, zero `.js` files 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](https://github.com/optave/codegraph/pull/553), [#554](https://github.com/optave/codegraph/pull/554), [#555](https://github.com/optave/codegraph/pull/555), [#558](https://github.com/optave/codegraph/pull/558), [#566](https://github.com/optave/codegraph/pull/566), [#570](https://github.com/optave/codegraph/pull/570), [#579](https://github.com/optave/codegraph/pull/579), [#580](https://github.com/optave/codegraph/pull/580), [#581](https://github.com/optave/codegraph/pull/581), [#588](https://github.com/optave/codegraph/pull/588))
12+
* **communities:** vendor Leiden community detection algorithm, replacing `graphology-communities-louvain` — full control over resolution, quality functions, and probabilistic refinement ([#545](https://github.com/optave/codegraph/pull/545), [#552](https://github.com/optave/codegraph/pull/552), [#556](https://github.com/optave/codegraph/pull/556))
13+
* **resolution:** Go structural interface matching — post-extraction pass matches struct method sets against interface method sets; C# `implements` disambiguation via post-walk reclassification of `extends` entries targeting known interfaces ([#522](https://github.com/optave/codegraph/pull/522))
14+
* **native:** extract call-site AST nodes in Rust during native parse, fixing WASM fallback path for incomplete extraction ([#591](https://github.com/optave/codegraph/pull/591))
15+
* **native:** extract `base_list` for C# classes in the Rust engine ([#577](https://github.com/optave/codegraph/pull/577))
16+
* **cfg:** bypass JS CFG visitor entirely on native builds; fix Go `for-range` CFG parity between engines ([#595](https://github.com/optave/codegraph/pull/595))
17+
18+
### Bug Fixes
19+
20+
* **edges:** remove `findCaller` fallback that misattributed file-scope calls to unrelated functions ([#607](https://github.com/optave/codegraph/pull/607))
21+
* **mcp:** add graceful shutdown to prevent "MCP Failed" errors on session clear ([#598](https://github.com/optave/codegraph/pull/598))
22+
* **resolver:** apply JS-side `.js``.ts` extension remap after native resolution ([#594](https://github.com/optave/codegraph/pull/594))
23+
* **resolver:** normalize paths in native resolver for `.js``.ts` remap ([#600](https://github.com/optave/codegraph/pull/600))
24+
* **deps:** patch 5 high-severity transitive vulnerabilities ([#583](https://github.com/optave/codegraph/pull/583))
25+
* **types:** narrow parser return types, `cachedStmt` in `buildTestFileIds`, WASM parser path, and triage query results ([#569](https://github.com/optave/codegraph/pull/569), [#576](https://github.com/optave/codegraph/pull/576), [#578](https://github.com/optave/codegraph/pull/578))
26+
* **scripts:** use version-aware `strip-types` flag in `package.json` scripts ([#599](https://github.com/optave/codegraph/pull/599))
27+
* **tests:** use `fs.cpSync` for fixture copy to handle subdirectories ([#584](https://github.com/optave/codegraph/pull/584))
28+
29+
### Performance
30+
31+
* **native:** fix WASM fallback bypass so native builds skip redundant JS analysis passes; batch SQL inserts for node/edge operations ([#606](https://github.com/optave/codegraph/pull/606))
32+
* **queries:** apply `cachedStmt` to `buildTestFileIds` static SQL for faster test filtering ([#575](https://github.com/optave/codegraph/pull/575))
33+
34+
### Tests
35+
36+
* strengthen weak assertions and add presentation layer coverage ([#586](https://github.com/optave/codegraph/pull/586))
37+
38+
### Chores
39+
40+
* add `npm run bench` script and stale embeddings warning ([#604](https://github.com/optave/codegraph/pull/604))
41+
* bump `commit-and-tag-version`, `tree-sitter-cli`, `web-tree-sitter`, `@commitlint/cli`, `@commitlint/config-conventional` ([#560](https://github.com/optave/codegraph/pull/560), [#561](https://github.com/optave/codegraph/pull/561), [#562](https://github.com/optave/codegraph/pull/562), [#563](https://github.com/optave/codegraph/pull/563), [#564](https://github.com/optave/codegraph/pull/564))
42+
543
## [3.3.1](https://github.com/optave/codegraph/compare/v3.3.0...v3.3.1) (2026-03-20)
644

745
**Incremental rebuild accuracy and post-3.3.0 stabilization.** This patch fixes a critical edge gap in the file watcher's single-file rebuild path where call edges were silently dropped during incremental rebuilds, aligns the native Rust engine's edge builder kind filters with the JS engine for parity, plugs a WASM tree memory leak in native engine typeMap backfill, and restores query performance to pre-3.1.4 levels. Several post-reorganization import path issues are also corrected.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ cd codegraph && npm install && npm link
188188
|| **Always fresh** | Three-tier incremental detection — sub-second rebuilds even on large codebases |
189189
| 🔬 | **Data flow analysis** | Intraprocedural parameter tracking, return consumers, argument flows, and mutation detection — all 11 languages |
190190
| 🧮 | **Complexity metrics** | Cognitive, cyclomatic, nesting depth, Halstead, and Maintainability Index per function |
191-
| 🏘️ | **Community detection** | Louvain clustering to discover natural module boundaries and architectural drift |
191+
| 🏘️ | **Community detection** | Leiden clustering to discover natural module boundaries and architectural drift |
192192
| 📜 | **Manifesto rule engine** | Configurable pass/fail rules with warn/fail thresholds for CI gates via `check` (exit code 1 on fail) |
193193
| 👥 | **CODEOWNERS integration** | Map graph nodes to CODEOWNERS entries — see who owns each function, ownership boundaries in `diff-impact` |
194194
| 💾 | **Graph snapshots** | `snapshot save`/`restore` for instant DB backup and rollback — checkpoint before refactoring, restore without rebuilding |
@@ -299,7 +299,7 @@ codegraph complexity # Per-function cognitive, cyclomatic, nesting,
299299
codegraph complexity --health -T # Full Halstead health view (volume, effort, bugs, MI)
300300
codegraph complexity --sort mi -T # Sort by worst maintainability index
301301
codegraph complexity --above-threshold -T # Only functions exceeding warn thresholds
302-
codegraph communities # Louvain community detection — natural module boundaries
302+
codegraph communities # Leiden community detection — natural module boundaries
303303
codegraph communities --drift -T # Drift analysis only — split/merge candidates
304304
codegraph communities --functions # Function-level community detection
305305
codegraph check # Pass/fail rule engine (exit code 1 on fail)
@@ -770,9 +770,9 @@ See **[ROADMAP.md](docs/roadmap/ROADMAP.md)** for the full development roadmap a
770770
3. ~~**Analysis Expansion**~~**Complete** (v2.7.0) — complexity metrics, community detection, flow tracing, co-change, manifesto, boundary rules, check, triage, audit, batch, hybrid search
771771
4. ~~**Deep Analysis & Graph Enrichment**~~**Complete** (v3.0.0) — dataflow analysis, intraprocedural CFG, AST node storage, expanded node/edge types, interactive viewer, exports command
772772
5. ~~**Architectural Refactoring**~~**Complete** (v3.1.5) — unified AST analysis, composable MCP, domain errors, builder pipeline, graph model, qualified names, presentation layer, CLI composability
773-
6. **Resolution Accuracy****In Progress** (5 of 6 complete) — type inference, receiver type tracking, dead role sub-categories, resolution benchmarks, `package.json` exports, monorepo workspace resolution
774-
7. **TypeScript Migration****In Progress** (2 of 7 complete) — project setup, core type definitions, leaf → core → orchestration migration
775-
8. **Native Analysis Acceleration**move JS-only build phases to Rust, sub-100ms 1-file rebuilds
773+
6. ~~**Resolution Accuracy**~~**Complete** (v3.3.1) — type inference, receiver type tracking, dead role sub-categories, resolution benchmarks, `package.json` exports, monorepo workspace resolution
774+
7. ~~**TypeScript Migration**~~**Complete** (v3.4.0) — all 271 source files migrated from JS to TS, zero `.js` remaining
775+
8. **Native Analysis Acceleration****In Progress** (7 of 8 complete) — JS-only build phases moved to Rust, sub-100ms 1-file rebuilds remaining
776776
9. **Runtime & Extensibility** — event-driven pipeline, plugin system, query caching, pagination
777777
10. **Intelligent Embeddings** — LLM-generated descriptions, enhanced embeddings, module summaries
778778
11. **Natural Language Queries**`codegraph ask` command, conversational sessions

crates/codegraph-core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "codegraph-core"
3-
version = "3.3.1"
3+
version = "3.4.0"
44
edition = "2021"
55
license = "Apache-2.0"
66

docs/roadmap/BACKLOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Codegraph Feature Backlog
22

3-
**Last updated:** 2026-03-20
3+
**Last updated:** 2026-03-25
44
**Source:** Features derived from [COMPETITIVE_ANALYSIS.md](../../generated/competitive/COMPETITIVE_ANALYSIS.md) and internal roadmap discussions.
55

66
---
@@ -114,7 +114,7 @@ Co-change data captures historical coupling from git history. Currently only use
114114

115115
### Tier 1e.1 — Community leverage (build on vendored Leiden algorithm)
116116

117-
Community detection will use a vendored Leiden optimiser (PR #545) with full control over resolution, quality functions, and refinement. Currently consumed by `communities` command and HTML viewer enrichment via `graphology-communities-louvain`. These features deepen community awareness across the analysis pipeline once the Leiden vendoring lands.
117+
Community detection now uses a vendored Leiden optimiser (PRs #545, #552, #556) with full control over resolution, quality functions, and true probabilistic refinement (Algorithm 3). The `graphology` dependency has been removed. Items in this tier are now **unblocked**.
118118

119119
| ID | Title | Description | Category | Benefit | Zero-dep | Foundation-aligned | Problem-fit (1-5) | Breaking | Depends on |
120120
|----|-------|-------------|----------|---------|----------|-------------------|-------------------|----------|------------|

0 commit comments

Comments
 (0)