Skip to content

Commit 80ccbb0

Browse files
authored
docs: prepare release notes for v3.11.0 (#1215)
* docs: prepare release notes for v3.11.0 * docs(changelog): fix language count and add scope to barrel entry (#1215) - Add C++ (#1192) to the parity-sweep language list so the prose matches the '14 languages' headline. - Add **builder:** scope prefix to the barrel re-parse bullet for consistency with sibling entries. Addresses Greptile P2 feedback on CHANGELOG.md lines 7 and 49.
1 parent ae238b6 commit 80ccbb0

2 files changed

Lines changed: 104 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,109 @@
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.11.0](https://github.com/optave/ops-codegraph-tool/compare/v3.10.0...v3.11.0) (2026-05-25)
6+
7+
**Native engine reaches feature parity with WASM, plus an engine-parity sweep across 14 languages.** The final 11 extractors (Clojure, CUDA, Julia, Solidity, Erlang, R, Groovy, Gleam, Objective-C, F#, Verilog) are now ported to Rust, so every supported language extracts symbols natively when the prebuilt binary is available — no more silent fallback to WASM for these. In parallel, a multi-PR parity sweep aligned the `contains`/parameter/inheritance edges that the two engines disagreed on across Java/Kotlin/CUDA/Ruby/Objective-C/HCL/Dart/Scala/Elixir/Haskell/Python/C#/Groovy/C++, so the native engine no longer drops parameters, function-pointer fields, default-value arguments, or interface inheritance edges that WASM was already emitting. F# `.fsi` signature files now route through a dedicated grammar instead of being parsed as `.fs` source. On the CLI, `-n` is now the short form of `--limit` on every limit-accepting command (previously only on five), `build` accepts `-d/--db`, and MCP `semantic_search` accepts `file_pattern` to scope hybrid/semantic/keyword searches to a subtree. Watch mode no longer crashes on rebuild when embeddings exist for the file, and barrel-chain re-parse discovery iterates until stable so chained re-exports stop dropping edges.
8+
9+
### Features
10+
11+
* **cli:** unify `-n` short flag across all `--limit`-accepting commands — `roles`, `structure`, `communities`, `audit`, `check`, `children`, `diff-impact`, `ast`, `brief`, `cfg`, `context`, `dataflow`, `deps`, `exports`, `flow`, `fn-impact`, `impact`, `implementations`, `interfaces`, `query`, `sequence`, and `where` now all accept `-n` in addition to `--limit` ([#1184](https://github.com/optave/ops-codegraph-tool/pull/1184))
12+
* **cli:** accept `-d/--db` on `build` to match every other DB-scoped command — pre-built graphs can now be re-targeted at build time without `cd`-ing into the project root ([#1183](https://github.com/optave/ops-codegraph-tool/pull/1183))
13+
* **mcp:** forward `file_pattern` (string or string[]) in `semantic_search` to scope hybrid/semantic/keyword results — closes a silent-drop where MCP callers passing `file_pattern` got unscoped global hits back with no error ([#1149](https://github.com/optave/ops-codegraph-tool/pull/1149))
14+
* **fsharp:** route `.fsi` files through a dedicated signature grammar — new `fsharp-signature` language id with a `val foo : type` handler that distinguishes signature declarations from `let foo = ...` source bindings ([#1162](https://github.com/optave/ops-codegraph-tool/pull/1162))
15+
16+
### Performance
17+
18+
* **native:** port Clojure extractor to Rust ([#1097](https://github.com/optave/ops-codegraph-tool/pull/1097))
19+
* **native:** port CUDA extractor to Rust ([#1099](https://github.com/optave/ops-codegraph-tool/pull/1099))
20+
* **native:** port Julia extractor to Rust ([#1098](https://github.com/optave/ops-codegraph-tool/pull/1098))
21+
* **native:** port Solidity extractor to Rust ([#1100](https://github.com/optave/ops-codegraph-tool/pull/1100))
22+
* **native:** port Erlang extractor to Rust ([#1103](https://github.com/optave/ops-codegraph-tool/pull/1103))
23+
* **native:** port R extractor to Rust ([#1102](https://github.com/optave/ops-codegraph-tool/pull/1102))
24+
* **native:** port Groovy extractor to Rust ([#1101](https://github.com/optave/ops-codegraph-tool/pull/1101))
25+
* **native:** port Gleam extractor to Rust ([#1105](https://github.com/optave/ops-codegraph-tool/pull/1105))
26+
* **native:** port Objective-C extractor to Rust ([#1106](https://github.com/optave/ops-codegraph-tool/pull/1106))
27+
* **native:** port F# extractor to Rust ([#1104](https://github.com/optave/ops-codegraph-tool/pull/1104))
28+
* **native:** port Verilog extractor to Rust ([#1107](https://github.com/optave/ops-codegraph-tool/pull/1107))
29+
* **native:** skip backfill on incrementals when orchestrator preserved files — avoids redundant WASM-side backfill work on clean incremental rebuilds ([#1082](https://github.com/optave/ops-codegraph-tool/pull/1082))
30+
* **native:** skip backfill on clean incrementals + bench guard tuning — removes the residual cost when nothing actually changed ([#1085](https://github.com/optave/ops-codegraph-tool/pull/1085))
31+
* **bench:** exclude resolution-benchmark fixtures from dogfooding and incremental-benchmark sweeps so per-file timings reflect real source code, not pinned-precision fixture corpora ([#1131](https://github.com/optave/ops-codegraph-tool/pull/1131), [#1134](https://github.com/optave/ops-codegraph-tool/pull/1134))
32+
33+
### Bug Fixes
34+
35+
* **extractors:** drill through `function_declarator` for parameter names — restores parameter extraction for C-family pointer-to-function declarations across all engines ([#1213](https://github.com/optave/ops-codegraph-tool/pull/1213))
36+
* **extractors:** recursively walk Haskell pattern parameters so destructured arguments emit edges ([#1203](https://github.com/optave/ops-codegraph-tool/pull/1203))
37+
* **extractors/cuda:** keep function-pointer class fields that were previously dropped at parity-align time ([#1207](https://github.com/optave/ops-codegraph-tool/pull/1207))
38+
* **native/kotlin:** strip `navigation_suffix` wrapper from call name so qualified calls resolve to the correct callee instead of the suffix node ([#1205](https://github.com/optave/ops-codegraph-tool/pull/1205))
39+
* **extractors/elixir:** extract default-value and pattern-match parameters that were silently dropped on multi-clause functions ([#1202](https://github.com/optave/ops-codegraph-tool/pull/1202))
40+
* **extractors:** align Ruby/Objective-C `contains` parity across engines ([#1201](https://github.com/optave/ops-codegraph-tool/pull/1201))
41+
* **extractors:** align Java/Kotlin/CUDA `contains` parity across engines ([#1199](https://github.com/optave/ops-codegraph-tool/pull/1199))
42+
* **extractors:** align HCL/Dart/Scala `contains` parity across engines ([#1196](https://github.com/optave/ops-codegraph-tool/pull/1196))
43+
* **extractors:** align Elixir/Haskell/Python `contains` parity across engines ([#1195](https://github.com/optave/ops-codegraph-tool/pull/1195))
44+
* **native/csharp:** align extractor with WASM on three engine-parity divergences ([#1194](https://github.com/optave/ops-codegraph-tool/pull/1194))
45+
* **db:** stop `findDbPath` walk at cwd when there is no git ceiling, so `codegraph` invoked outside a repo no longer climbs to the filesystem root ([#1193](https://github.com/optave/ops-codegraph-tool/pull/1193))
46+
* **native/cpp:** strip reference modifier from parameter names so `T& foo` extracts `foo`, not `& foo` ([#1192](https://github.com/optave/ops-codegraph-tool/pull/1192))
47+
* **native:** apply WASM callback-callee gating in JS extractor so `member_expression` callback args no longer create false-positive edges ([#1191](https://github.com/optave/ops-codegraph-tool/pull/1191))
48+
* **watch:** purge embeddings before nodes to stop FK crash in `rebuildFile` — incremental rebuilds on watched files with embeddings no longer crash with a foreign-key constraint violation ([#1182](https://github.com/optave/ops-codegraph-tool/pull/1182))
49+
* **builder:** iterate barrel re-parse discovery to stop dropping chained-barrel edges — the WASM builder now loops until the dirty-barrel set is stable, so `a → b → c → d` chained re-exports no longer leave edges on the floor ([#1179](https://github.com/optave/ops-codegraph-tool/pull/1179))
50+
* **embed:** install `@huggingface/transformers` into codegraph's host node_modules — `codegraph embed` no longer fails when invoked from a project that hasn't installed transformers itself ([#1178](https://github.com/optave/ops-codegraph-tool/pull/1178))
51+
* **hooks:** use POSIX `[[:space:]]` in `guard-git.sh` grep patterns so the hook works under BSD grep on macOS ([#1170](https://github.com/optave/ops-codegraph-tool/pull/1170))
52+
* **hooks:** `guard-git.sh` sed patterns work on macOS BSD sed — closes a silent no-op where the hook ran but matched nothing under BSD ([#1146](https://github.com/optave/ops-codegraph-tool/pull/1146))
53+
* **groovy:** emit `ClassRelation` for interface inheritance in both engines so `implements` edges no longer go missing on Groovy classes ([#1158](https://github.com/optave/ops-codegraph-tool/pull/1158))
54+
* **builder:** remove duplicate early-return in `backfillNativeDroppedFiles` ([#1148](https://github.com/optave/ops-codegraph-tool/pull/1148))
55+
* **julia:** port parameterized-type / qualified-def / qualified-import fixes to WASM so Julia parity matches between engines ([#1128](https://github.com/optave/ops-codegraph-tool/pull/1128))
56+
* **gleam:** extract parameters for external functions so cross-module Gleam calls resolve ([#1127](https://github.com/optave/ops-codegraph-tool/pull/1127))
57+
* **native:** purge stale rows when WASM-only files are deleted ([#1122](https://github.com/optave/ops-codegraph-tool/pull/1122))
58+
* **native:** backfill new dropped-language files on quiet incrementals so newly-added Solidity/Erlang/Verilog files appear on the next rebuild even when the file system signal looks quiet ([#1123](https://github.com/optave/ops-codegraph-tool/pull/1123))
59+
* **r:** `setMethod` emits a call edge, not a duplicate definition ([#1125](https://github.com/optave/ops-codegraph-tool/pull/1125))
60+
* **groovy:** dispatch `juxt_function_call` in both engines so Groovy DSL-style calls (`task { ... }`) emit edges ([#1124](https://github.com/optave/ops-codegraph-tool/pull/1124))
61+
* **bench:** warmup + median for `queryTimeMs` to remove cold-start noise from the publish gate ([#1133](https://github.com/optave/ops-codegraph-tool/pull/1133))
62+
* **scripts:** trend annotations fall back to nearest non-null prior release so a missing run no longer breaks the trend chart ([#1120](https://github.com/optave/ops-codegraph-tool/pull/1120))
63+
* **scripts:** preserve manual NOTES block in incremental report generator ([#1119](https://github.com/optave/ops-codegraph-tool/pull/1119))
64+
65+
### Refactors
66+
67+
* **objc:** use `if let Some` in for-loop instead of `?` to fail-soft on extractor errors ([#1156](https://github.com/optave/ops-codegraph-tool/pull/1156))
68+
* **verilog:** use `if let Some` in for-loops instead of `?` ([#1155](https://github.com/optave/ops-codegraph-tool/pull/1155))
69+
* **ci:** let tracer-validation gate reuse benchmark artifact ([#1171](https://github.com/optave/ops-codegraph-tool/pull/1171))
70+
* **ci:** let resolution gate reuse benchmark artifact ([#1167](https://github.com/optave/ops-codegraph-tool/pull/1167))
71+
72+
### CI
73+
74+
* run pre-publish benchmark gate on every PR — regressions surface at PR time instead of at publish ([#1072](https://github.com/optave/ops-codegraph-tool/pull/1072))
75+
* isolate `dropped-language-gap.test.ts` as a regression canary so the engine-parity gap test no longer hides under broader suites ([#1169](https://github.com/optave/ops-codegraph-tool/pull/1169))
76+
* force rustup proxy on PATH for macos-14 x86_64 builds so the prebuilt binary keeps building on the deprecated runner ([#1151](https://github.com/optave/ops-codegraph-tool/pull/1151))
77+
* **test:** use `--experimental-strip-types` in Worker `execArgv` so vitest stays green on Node 24+ ([#1164](https://github.com/optave/ops-codegraph-tool/pull/1164))
78+
* **test/julia:** cover macro signature guard branch ([#1150](https://github.com/optave/ops-codegraph-tool/pull/1150))
79+
* **test/parsers:** gate `LANGUAGE_REGISTRY ↔ NATIVE_SUPPORTED_EXTENSIONS` parity to catch silent drift between the two registries ([#1154](https://github.com/optave/ops-codegraph-tool/pull/1154))
80+
81+
### Build
82+
83+
* derive libc verifier scope from `optionalDependencies` so the verifier no longer hard-codes the platform list ([#1172](https://github.com/optave/ops-codegraph-tool/pull/1172))
84+
* restore libc discriminator on linux lockfile entries — re-adds `libc: ["glibc"]` / `libc: ["musl"]` that npm v11 had silently stripped ([#1163](https://github.com/optave/ops-codegraph-tool/pull/1163))
85+
86+
### Docs
87+
88+
* dogfood report for v3.10.1-dev.80 ([#1180](https://github.com/optave/ops-codegraph-tool/pull/1180))
89+
* backfill jina-base Hit@k for v3.10.1-dev.80 ([#1186](https://github.com/optave/ops-codegraph-tool/pull/1186))
90+
91+
### Chores
92+
93+
* **deps:** bump web-tree-sitter from 0.26.8 to 0.26.9 ([#1210](https://github.com/optave/ops-codegraph-tool/pull/1210))
94+
* **deps:** bump better-sqlite3 from 12.9.0 to 12.10.0 ([#1141](https://github.com/optave/ops-codegraph-tool/pull/1141))
95+
* **deps-dev:** bump tree-sitter-cli from 0.26.8 to 0.26.9 ([#1212](https://github.com/optave/ops-codegraph-tool/pull/1212))
96+
* **deps-dev:** bump tree-sitter-erlang from 0.0.0 to 0.17 ([#1138](https://github.com/optave/ops-codegraph-tool/pull/1138))
97+
* **deps-dev:** bump tree-sitter-gleam from `1627dc5` to `4e4643c` ([#1089](https://github.com/optave/ops-codegraph-tool/pull/1089))
98+
* **deps-dev:** bump @vitest/coverage-v8 from 4.1.5 to 4.1.7 ([#1211](https://github.com/optave/ops-codegraph-tool/pull/1211))
99+
* **deps-dev:** bump vitest from 4.1.6 to 4.1.7 ([#1208](https://github.com/optave/ops-codegraph-tool/pull/1208))
100+
* **deps-dev:** bump vitest from 4.1.5 to 4.1.6 ([#1139](https://github.com/optave/ops-codegraph-tool/pull/1139))
101+
* **deps-dev:** bump vitest from 4.1.4 to 4.1.5 ([#1087](https://github.com/optave/ops-codegraph-tool/pull/1087))
102+
* **deps-dev:** bump commit-and-tag-version from 12.7.1 to 12.7.3 ([#1209](https://github.com/optave/ops-codegraph-tool/pull/1209))
103+
* **deps-dev:** bump @commitlint/cli from 21.0.0 to 21.0.1 ([#1142](https://github.com/optave/ops-codegraph-tool/pull/1142))
104+
* **deps-dev:** bump @commitlint/cli from 20.5.3 to 21.0.0 ([#1086](https://github.com/optave/ops-codegraph-tool/pull/1086))
105+
* **deps-dev:** bump @commitlint/config-conventional ([#1088](https://github.com/optave/ops-codegraph-tool/pull/1088), [#1140](https://github.com/optave/ops-codegraph-tool/pull/1140))
106+
* **deps-dev:** bump @biomejs/biome from 2.4.13 to 2.4.15 ([#1090](https://github.com/optave/ops-codegraph-tool/pull/1090))
107+
5108
## [3.10.0](https://github.com/optave/ops-codegraph-tool/compare/v3.9.6...v3.10.0) (2026-05-01)
6109

7110
**Selective MCP tool filtering, WASM build-speed regression fix, and Haskell parity restoration.** A new `mcp.disabledTools` config field lets you remove specific MCP tools from the schema entirely — useful for smaller-context models that don't need all 33 tools competing for the initial prompt budget. The 3.9.6 expansion of `AST_TYPE_MAPS` to 23 languages had a side effect of making WASM full builds re-parse every WASM-parseable file in the corpus; the per-file `needsFn` filter now scopes the re-parse correctly, dropping the 744-file dogfooding build from 14.0s back to 7.8s (matching the 3.9.5 baseline). A second parity fix gates `astTypeMap` lookups with `Object.hasOwn` so Haskell's `constructor` node type no longer walks the prototype chain to `Object.prototype.constructor` — restoring the Haskell resolver from 0%/0% precision/recall in 3.9.6 to 100%/33% (matching the 3.9.4 baseline). The release benchmark workflow has also been restructured: regression guards now run inside `publish.yml` *before* npm publishes, instead of after the docs PR lands, so a regression can no longer ship to npm and then fire on unrelated dev commits.

docs/roadmap/ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Codegraph Roadmap
22

3-
> **Current version:** 3.10.0 | **Status:** Active development | **Updated:** 2026-05-01
3+
> **Current version:** 3.11.0 | **Status:** Active development | **Updated:** 2026-05-25
44
55
Codegraph is a strong local-first code graph CLI. This roadmap describes planned improvements across fourteen phases -- closing gaps with commercial code intelligence platforms while preserving codegraph's core strengths: fully local, open source, zero cloud dependency by default.
66

0 commit comments

Comments
 (0)