You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Interested in any of the bompus/codegraph fork's work? #2332
I maintain bompus/codegraph, a fork that tracks main (merged through 6560052a, 1.6.2). Small fixes from it go to you as PRs, and thanks for carrying #2097 onto main as #2284. The rest has grown to about 530 commits, which is too much to send as PRs without asking first. So I'm asking: is any of it something you'd want, and in what shape? "None of it" is a fine answer, and the fork will keep going either way.
The fork's README has a section comparing it with main: About this fork. The short version:
No WebAssembly. Every language is parsed in the Rust kernel, and the WebAssembly parser and its fallback are gone. A file with syntax errors is extracted from the native parser's error recovery instead of being handed to a second parser. Name resolution for TypeScript/JavaScript, Python, Go, Java, Kotlin, PHP, C, C++, Rust and ArkTS also runs in the kernel. The cost: a platform without a prebuilt kernel needs a Rust toolchain. Details: Parsing, resolution and languages.
Newer Node.js and Bun. The fork runs on Node.js 22.13 and newer, including 25 and 26, and on Bun 1.4. main refuses Node 25 and newer, and refuses Bun because Bun reports itself as Node 26. The full test suite passes on Node 24.21.0, and passed on Node 26.10.0 and Bun 1.4.2 when last run on all three (2026-09-28). The floor is 22.13 because that is the first release with node:sqlite unflagged, so Node 20 and early 22 releases no longer work.
Speed and memory. These numbers are from the README's Measured results, measured 2026-10-03 against main at 6560052 (1.6.2) on a 16-vCPU WSL2 host. Index times are the median of two runs, sync times the median of four.
main, Node 24
fork, Node 24
fork, Bun 1.4
Full index, n8n (24,434 files)
168.9 s, 9.45 GiB peak
78.4 s, 6.33 GiB
79.1 s, 5.76 GiB
Full index, CPython (3,708 files)
94.7 s, 8.34 GiB
45.5 s, 6.41 GiB
45.1 s, 5.73 GiB
One-file sync, n8n
13.2 s
4.38 s
4.06 s
One-file sync, CPython
8.30 s
4.67 s
4.97 s
MCP server at idle, n8n
4.77 GiB
2.07 GiB
1.22 GiB
codegraph explore from the CLI, gin
224 ms
121 ms
99 ms
On Bun, peak index memory is 8 to 27% lower than on Node and the idle MCP server holds 37 to 41% less. Eight concurrent explores on n8n take 12% longer on Bun; contention between worker threads reading through Bun's SQLite is the suspected cause (oven-sh/bun#44084). A new git worktree is ready to query in 0.8 to 0.9 s, seeded from a sibling worktree's index, against 5.8 to 6.1 s for a full index. On 120 hand-graded call links from repowise, 73% of the links the fork keeps are correct (52 of 71), against 56% for main (48 of 85); most of that comes from declining uncertain links, not from resolving more. The method and scripts are in docs/benchmarks/fork-vs-upstream-node-bun-2026-10-03.md.
Python indexing got slower between 290e03f and 1.6.2. On the same host, main at 290e03f indexed pretix in 8.81 s and 9.13 s, and at 6560052 in 19.88 s and 19.86 s, with 104,109 edges against 81,229. CPython went from 35.6 s to 94.7 s across the two benchmark runs, though I only checked pretix on one host. I haven't bisected the 194 commits in between; I can if that helps.
Features main doesn't have. The README's What the fork adds lists them. They are session search over earlier agent transcripts (codegraph sessions, codegraph_sessions), markdown indexing, near-duplicate functions, change questions answered from a diff, worktree seeding, external HTTP endpoints, dispatch links for C function pointers, Drupal hooks, NgRx effects, React Native native modules and window.postMessage, and a Devin install target.
Questions
Would you consider dropping the WebAssembly parser, or running resolution in Rust? If not, would you want the gains ported into your kernel's current structure instead?
Would you take the Node.js 25+ and Bun support on its own?
Which of the features, if any, interest you?
Would you rather get work as small PRs you re-land, as you've been doing, or as a branch you pick commits from?
Hi Colby,
I maintain bompus/codegraph, a fork that tracks
main(merged through6560052a, 1.6.2). Small fixes from it go to you as PRs, and thanks for carrying #2097 ontomainas #2284. The rest has grown to about 530 commits, which is too much to send as PRs without asking first. So I'm asking: is any of it something you'd want, and in what shape? "None of it" is a fine answer, and the fork will keep going either way.The fork's README has a section comparing it with
main: About this fork. The short version:No WebAssembly. Every language is parsed in the Rust kernel, and the WebAssembly parser and its fallback are gone. A file with syntax errors is extracted from the native parser's error recovery instead of being handed to a second parser. Name resolution for TypeScript/JavaScript, Python, Go, Java, Kotlin, PHP, C, C++, Rust and ArkTS also runs in the kernel. The cost: a platform without a prebuilt kernel needs a Rust toolchain. Details: Parsing, resolution and languages.
Newer Node.js and Bun. The fork runs on Node.js 22.13 and newer, including 25 and 26, and on Bun 1.4.
mainrefuses Node 25 and newer, and refuses Bun because Bun reports itself as Node 26. The full test suite passes on Node 24.21.0, and passed on Node 26.10.0 and Bun 1.4.2 when last run on all three (2026-09-28). The floor is 22.13 because that is the first release withnode:sqliteunflagged, so Node 20 and early 22 releases no longer work.Speed and memory. These numbers are from the README's Measured results, measured 2026-10-03 against
mainat6560052(1.6.2) on a 16-vCPU WSL2 host. Index times are the median of two runs, sync times the median of four.codegraph explorefrom the CLI, ginOn Bun, peak index memory is 8 to 27% lower than on Node and the idle MCP server holds 37 to 41% less. Eight concurrent explores on n8n take 12% longer on Bun; contention between worker threads reading through Bun's SQLite is the suspected cause (oven-sh/bun#44084). A new git worktree is ready to query in 0.8 to 0.9 s, seeded from a sibling worktree's index, against 5.8 to 6.1 s for a full index. On 120 hand-graded call links from repowise, 73% of the links the fork keeps are correct (52 of 71), against 56% for
main(48 of 85); most of that comes from declining uncertain links, not from resolving more. The method and scripts are in docs/benchmarks/fork-vs-upstream-node-bun-2026-10-03.md.Python indexing got slower between
290e03fand 1.6.2. On the same host,mainat290e03findexed pretix in 8.81 s and 9.13 s, and at6560052in 19.88 s and 19.86 s, with 104,109 edges against 81,229. CPython went from 35.6 s to 94.7 s across the two benchmark runs, though I only checked pretix on one host. I haven't bisected the 194 commits in between; I can if that helps.Features
maindoesn't have. The README's What the fork adds lists them. They are session search over earlier agent transcripts (codegraph sessions,codegraph_sessions), markdown indexing, near-duplicate functions, change questions answered from a diff, worktree seeding, external HTTP endpoints, dispatch links for C function pointers, Drupal hooks, NgRx effects, React Native native modules andwindow.postMessage, and a Devin install target.Questions
mainhas since covered, and pointing them here. Of those still open, the smallest are fix(mcp): release an idle project on its own deadline (#2087) #2306 (a follow-up to your fix(mcp): release an idle explicit project and its writer lock (#2087) #2283), fix(build): build the ui workspace by directory, not --workspace #1764, fix(mcp): make explore's prompt text match what the server does #1972, fix(resolution): break this.field.method() ties by code-unit order #1983 and fix(cfnptr): link registrations only to C/C++ functions #1989, each under 100 lines.Happy to re-run the benchmarks against current
main, or answer anything here.