From 17da4c6628c3d9f32f7df7670c1f53da8be7dfe3 Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 08:46:47 -0700 Subject: [PATCH 1/8] Support Node beyond 22 --- .changeset/remove-node-upper-bound.md | 14 ++++++++++++++ CONTRIBUTING.md | 4 ++-- apps/web/package.json | 2 +- docs/MCP.md | 2 +- docs/README.md | 2 +- docs/RELEASING.md | 2 +- docs/agents/codegraphy-loop.md | 9 +++++---- docs/agents/loops/orchestrator.md | 2 +- docs/quality/README.md | 2 +- package.json | 2 +- packages/core/package.json | 2 +- packages/extension/docs/README.md | 2 +- packages/extension/package.json | 2 +- packages/mcp/README.md | 2 +- packages/mcp/package.json | 2 +- packages/plugin-api/package.json | 2 +- packages/plugin-csharp/package.json | 2 +- packages/plugin-godot/package.json | 2 +- packages/plugin-markdown/package.json | 2 +- packages/plugin-python/package.json | 2 +- packages/plugin-svelte/package.json | 2 +- packages/plugin-typescript/package.json | 2 +- packages/plugin-vue/package.json | 2 +- 23 files changed, 41 insertions(+), 26 deletions(-) create mode 100644 .changeset/remove-node-upper-bound.md diff --git a/.changeset/remove-node-upper-bound.md b/.changeset/remove-node-upper-bound.md new file mode 100644 index 000000000..44d0d82e7 --- /dev/null +++ b/.changeset/remove-node-upper-bound.md @@ -0,0 +1,14 @@ +--- +"@codegraphy-dev/core": patch +"@codegraphy-dev/mcp": patch +"@codegraphy-dev/plugin-api": patch +"@codegraphy-dev/plugin-csharp": patch +"@codegraphy-dev/plugin-godot": patch +"@codegraphy-dev/plugin-markdown": patch +"@codegraphy-dev/plugin-python": patch +"@codegraphy-dev/plugin-svelte": patch +"@codegraphy-dev/plugin-typescript": patch +"@codegraphy-dev/plugin-vue": patch +--- + +Allow current and future Node releases while keeping Node 20.20.0 as the minimum supported runtime. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 865355565..8994c68a5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Thanks for your interest in contributing to CodeGraphy! ### Prerequisites -- Node.js 22.22.0 LTS +- Node.js 20.20.0 or newer - pnpm 10+ - VS Code 1.85+ @@ -107,7 +107,7 @@ pnpm --filter @codegraphy-dev/extension exec playwright install chromium # Brow pnpm --filter @codegraphy-dev/extension exec vitest run --config vitest.config.ts tests/path/to/file.test.ts ``` -The repo pins Node in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version). Use that exact runtime before running release or quality-tool commands. +The published packages support Node 20.20.0 and newer. The repo pins the local and CI runtime in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version); use that exact runtime before running release or quality-tool commands. ## Reporting issues diff --git a/apps/web/package.json b/apps/web/package.json index 4a83920de..1b8010ad9 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,7 +13,7 @@ } }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "scripts": { "build": "tsc -p tsconfig.build.json", diff --git a/docs/MCP.md b/docs/MCP.md index e87b6ceb8..7dfaf7868 100644 --- a/docs/MCP.md +++ b/docs/MCP.md @@ -18,7 +18,7 @@ Every `codegraphy ...` terminal subcommand lives in `@codegraphy-dev/core`. `@co ## Prerequisites -- Node `22.22.0` or newer within the supported Node 22 range. +- Node 20.20.0 or newer. - Codex, Claude, Cursor, or another MCP-capable agent. ## Quick Start diff --git a/docs/README.md b/docs/README.md index 46b4dd8ad..e8cdc3cf5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Docs Use the root [README](../README.md) for the release overview, marketplace links, package map, and the V2 to V4 migration story. -The repo-wide local runtime is Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc). +The published packages support Node 20.20.0 and newer. The repo-wide local and CI runtime is Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc). The rest of the docs are split by purpose: diff --git a/docs/RELEASING.md b/docs/RELEASING.md index de20fe2bb..b5c71ec17 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -92,7 +92,7 @@ vsce verify-pat codegraphy 3. Confirm `vsce ls-publishers` shows `codegraphy`. 4. Confirm `vsce verify-pat codegraphy` succeeds. 5. Run `pnpm install`. - - Use Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc) / [`.node-version`](../.node-version). + - Use the repo-pinned Node runtime from [`.nvmrc`](../.nvmrc) / [`.node-version`](../.node-version). 6. Add changesets only for unreleased user-facing workspace packages. Archive shipped changesets under [`docs/archive/changesets/`](./archive/changesets/). 7. Run `pnpm run version-packages`. 8. If the VS Code Marketplace extension changed, verify `packages/extension/package.json` and [`packages/extension/CHANGELOG.md`](../packages/extension/CHANGELOG.md) have matching top entries. diff --git a/docs/agents/codegraphy-loop.md b/docs/agents/codegraphy-loop.md index 5c3c39c6f..e89a140ac 100644 --- a/docs/agents/codegraphy-loop.md +++ b/docs/agents/codegraphy-loop.md @@ -40,11 +40,12 @@ codegraphy-mini:/Users/poleski/Desktop/Projects/CodeGraphyV4 ``` The heavy-check thread must verify its host, branch, worktree, and Node runtime -before running commands. Prefer Node 22 there because CodeGraphy requires Node -`<23`. +before running commands. Prefer the repo-pinned Node runtime there so remote +checks match local and CI behavior. -When checking or preparing the remote host over SSH, use the Homebrew Node 22 -path explicitly so `pnpm` and Codex resolve the same runtime: +When checking or preparing the remote host over SSH, use the Homebrew path for +the repo-pinned Node runtime explicitly so `pnpm` and Codex resolve the same +runtime: ```bash ssh codegraphy-mini 'export PATH="/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"; cd /Users/poleski/Desktop/Projects/CodeGraphyV4; hostname; node --version; pnpm --version; git status --short --branch' diff --git a/docs/agents/loops/orchestrator.md b/docs/agents/loops/orchestrator.md index 078cfcfd1..d0c968e40 100644 --- a/docs/agents/loops/orchestrator.md +++ b/docs/agents/loops/orchestrator.md @@ -106,7 +106,7 @@ ssh codegraphy-mini 'export PATH="/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/op The remote work must: -- use the Node 22 PATH above +- use the repo-pinned Node PATH above - fetch the PR branch before running commands - run from an isolated remote worktree for that branch - record the remote host, worktree, command, and result in the handoff log diff --git a/docs/quality/README.md b/docs/quality/README.md index 289221c9c..f4314f470 100644 --- a/docs/quality/README.md +++ b/docs/quality/README.md @@ -51,4 +51,4 @@ Implementation now lives in the external `@poleski/quality-tools` package. Extension-specific architecture and lifecycle notes live in `packages/extension/docs/`. -These commands assume the repo-pinned Node runtime from [`.nvmrc`](../../.nvmrc), currently `22.22.0` LTS. `@poleski/quality-tools` uses `path.matchesGlob`, so older Node versions are not supported. +These commands assume the repo-pinned Node runtime from [`.nvmrc`](../../.nvmrc), currently `22.22.0` LTS. `@poleski/quality-tools` uses `path.matchesGlob`, so Node versions older than 20.20.0 are not supported. diff --git a/package.json b/package.json index 90e0c40ab..ac251c3b8 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23", + "node": ">=20.20.0", "vscode": "^1.85.0" }, "files": [ diff --git a/packages/core/package.json b/packages/core/package.json index c1ba3edd7..a155e7fbb 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -17,7 +17,7 @@ } }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "publishConfig": { "access": "public" diff --git a/packages/extension/docs/README.md b/packages/extension/docs/README.md index 80ad0ecdf..daf2d500b 100644 --- a/packages/extension/docs/README.md +++ b/packages/extension/docs/README.md @@ -18,7 +18,7 @@ Current extension behavior to keep in mind while reading the package docs: - CSS Snippets are built into the extension: workspace-local `.css` files listed in `.codegraphy/settings.json` under `cssSnippets` can style stable `data-codegraphy-*` hooks without rebuilding a VS Code theme - the language plugins in `packages/plugin-*` are now mostly for ecosystem filters and optional semantic enrichment rather than baseline file coloring -Local tooling and CI are pinned to Node `22.22.0` LTS. +Published packages support Node 20.20.0 and newer. Local tooling and CI are pinned to Node `22.22.0` LTS. The source tree is split by runtime boundary: diff --git a/packages/extension/package.json b/packages/extension/package.json index 0ce2421cf..352641f99 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -5,7 +5,7 @@ "description": "CodeGraphy VS Code extension core", "license": "MIT", "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "scripts": { "build": "pnpm run build:extension && pnpm run build:webview", diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 1c7cfa184..6a10f75cf 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -8,7 +8,7 @@ The MCP package owns only the agent-agnostic `codegraphy-mcp` server command. Co ## Prerequisites -- Node `22.22.0` or newer within the supported Node 22 range. +- Node 20.20.0 or newer. - Codex, Claude, Cursor, or another MCP-capable agent. ## Quick Start diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 75b1109d6..a5c7ff584 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -5,7 +5,7 @@ "license": "MIT", "type": "module", "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-api/package.json b/packages/plugin-api/package.json index c7afd3ab3..4885a2284 100644 --- a/packages/plugin-api/package.json +++ b/packages/plugin-api/package.json @@ -3,7 +3,7 @@ "version": "5.0.0", "description": "Type definitions for CodeGraphy plugins", "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "repository": { "type": "git", diff --git a/packages/plugin-csharp/package.json b/packages/plugin-csharp/package.json index 8d60698fb..ad597ce40 100644 --- a/packages/plugin-csharp/package.json +++ b/packages/plugin-csharp/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-godot/package.json b/packages/plugin-godot/package.json index fe3810979..e7d888369 100644 --- a/packages/plugin-godot/package.json +++ b/packages/plugin-godot/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-markdown/package.json b/packages/plugin-markdown/package.json index 01d456e08..29e19f0ee 100644 --- a/packages/plugin-markdown/package.json +++ b/packages/plugin-markdown/package.json @@ -13,7 +13,7 @@ } }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-python/package.json b/packages/plugin-python/package.json index 62add7f2d..61a209deb 100644 --- a/packages/plugin-python/package.json +++ b/packages/plugin-python/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-svelte/package.json b/packages/plugin-svelte/package.json index 3750821a9..93e252b06 100644 --- a/packages/plugin-svelte/package.json +++ b/packages/plugin-svelte/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-typescript/package.json b/packages/plugin-typescript/package.json index 9ba4a0858..1769f3bf1 100644 --- a/packages/plugin-typescript/package.json +++ b/packages/plugin-typescript/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index ebe99ab30..40291859d 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20.20.0" }, "keywords": [ "codegraphy", From 4d7d2bff1f1bb5584118d6129656d10bc8048915 Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 08:49:35 -0700 Subject: [PATCH 2/8] Revert "Support Node beyond 22" This reverts commit 17da4c6628c3d9f32f7df7670c1f53da8be7dfe3. --- .changeset/remove-node-upper-bound.md | 14 -------------- CONTRIBUTING.md | 4 ++-- apps/web/package.json | 2 +- docs/MCP.md | 2 +- docs/README.md | 2 +- docs/RELEASING.md | 2 +- docs/agents/codegraphy-loop.md | 9 ++++----- docs/agents/loops/orchestrator.md | 2 +- docs/quality/README.md | 2 +- package.json | 2 +- packages/core/package.json | 2 +- packages/extension/docs/README.md | 2 +- packages/extension/package.json | 2 +- packages/mcp/README.md | 2 +- packages/mcp/package.json | 2 +- packages/plugin-api/package.json | 2 +- packages/plugin-csharp/package.json | 2 +- packages/plugin-godot/package.json | 2 +- packages/plugin-markdown/package.json | 2 +- packages/plugin-python/package.json | 2 +- packages/plugin-svelte/package.json | 2 +- packages/plugin-typescript/package.json | 2 +- packages/plugin-vue/package.json | 2 +- 23 files changed, 26 insertions(+), 41 deletions(-) delete mode 100644 .changeset/remove-node-upper-bound.md diff --git a/.changeset/remove-node-upper-bound.md b/.changeset/remove-node-upper-bound.md deleted file mode 100644 index 44d0d82e7..000000000 --- a/.changeset/remove-node-upper-bound.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@codegraphy-dev/core": patch -"@codegraphy-dev/mcp": patch -"@codegraphy-dev/plugin-api": patch -"@codegraphy-dev/plugin-csharp": patch -"@codegraphy-dev/plugin-godot": patch -"@codegraphy-dev/plugin-markdown": patch -"@codegraphy-dev/plugin-python": patch -"@codegraphy-dev/plugin-svelte": patch -"@codegraphy-dev/plugin-typescript": patch -"@codegraphy-dev/plugin-vue": patch ---- - -Allow current and future Node releases while keeping Node 20.20.0 as the minimum supported runtime. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8994c68a5..865355565 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Thanks for your interest in contributing to CodeGraphy! ### Prerequisites -- Node.js 20.20.0 or newer +- Node.js 22.22.0 LTS - pnpm 10+ - VS Code 1.85+ @@ -107,7 +107,7 @@ pnpm --filter @codegraphy-dev/extension exec playwright install chromium # Brow pnpm --filter @codegraphy-dev/extension exec vitest run --config vitest.config.ts tests/path/to/file.test.ts ``` -The published packages support Node 20.20.0 and newer. The repo pins the local and CI runtime in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version); use that exact runtime before running release or quality-tool commands. +The repo pins Node in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version). Use that exact runtime before running release or quality-tool commands. ## Reporting issues diff --git a/apps/web/package.json b/apps/web/package.json index 1b8010ad9..4a83920de 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,7 +13,7 @@ } }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "scripts": { "build": "tsc -p tsconfig.build.json", diff --git a/docs/MCP.md b/docs/MCP.md index 7dfaf7868..e87b6ceb8 100644 --- a/docs/MCP.md +++ b/docs/MCP.md @@ -18,7 +18,7 @@ Every `codegraphy ...` terminal subcommand lives in `@codegraphy-dev/core`. `@co ## Prerequisites -- Node 20.20.0 or newer. +- Node `22.22.0` or newer within the supported Node 22 range. - Codex, Claude, Cursor, or another MCP-capable agent. ## Quick Start diff --git a/docs/README.md b/docs/README.md index e8cdc3cf5..46b4dd8ad 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Docs Use the root [README](../README.md) for the release overview, marketplace links, package map, and the V2 to V4 migration story. -The published packages support Node 20.20.0 and newer. The repo-wide local and CI runtime is Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc). +The repo-wide local runtime is Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc). The rest of the docs are split by purpose: diff --git a/docs/RELEASING.md b/docs/RELEASING.md index b5c71ec17..de20fe2bb 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -92,7 +92,7 @@ vsce verify-pat codegraphy 3. Confirm `vsce ls-publishers` shows `codegraphy`. 4. Confirm `vsce verify-pat codegraphy` succeeds. 5. Run `pnpm install`. - - Use the repo-pinned Node runtime from [`.nvmrc`](../.nvmrc) / [`.node-version`](../.node-version). + - Use Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc) / [`.node-version`](../.node-version). 6. Add changesets only for unreleased user-facing workspace packages. Archive shipped changesets under [`docs/archive/changesets/`](./archive/changesets/). 7. Run `pnpm run version-packages`. 8. If the VS Code Marketplace extension changed, verify `packages/extension/package.json` and [`packages/extension/CHANGELOG.md`](../packages/extension/CHANGELOG.md) have matching top entries. diff --git a/docs/agents/codegraphy-loop.md b/docs/agents/codegraphy-loop.md index e89a140ac..5c3c39c6f 100644 --- a/docs/agents/codegraphy-loop.md +++ b/docs/agents/codegraphy-loop.md @@ -40,12 +40,11 @@ codegraphy-mini:/Users/poleski/Desktop/Projects/CodeGraphyV4 ``` The heavy-check thread must verify its host, branch, worktree, and Node runtime -before running commands. Prefer the repo-pinned Node runtime there so remote -checks match local and CI behavior. +before running commands. Prefer Node 22 there because CodeGraphy requires Node +`<23`. -When checking or preparing the remote host over SSH, use the Homebrew path for -the repo-pinned Node runtime explicitly so `pnpm` and Codex resolve the same -runtime: +When checking or preparing the remote host over SSH, use the Homebrew Node 22 +path explicitly so `pnpm` and Codex resolve the same runtime: ```bash ssh codegraphy-mini 'export PATH="/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"; cd /Users/poleski/Desktop/Projects/CodeGraphyV4; hostname; node --version; pnpm --version; git status --short --branch' diff --git a/docs/agents/loops/orchestrator.md b/docs/agents/loops/orchestrator.md index d0c968e40..078cfcfd1 100644 --- a/docs/agents/loops/orchestrator.md +++ b/docs/agents/loops/orchestrator.md @@ -106,7 +106,7 @@ ssh codegraphy-mini 'export PATH="/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/op The remote work must: -- use the repo-pinned Node PATH above +- use the Node 22 PATH above - fetch the PR branch before running commands - run from an isolated remote worktree for that branch - record the remote host, worktree, command, and result in the handoff log diff --git a/docs/quality/README.md b/docs/quality/README.md index f4314f470..289221c9c 100644 --- a/docs/quality/README.md +++ b/docs/quality/README.md @@ -51,4 +51,4 @@ Implementation now lives in the external `@poleski/quality-tools` package. Extension-specific architecture and lifecycle notes live in `packages/extension/docs/`. -These commands assume the repo-pinned Node runtime from [`.nvmrc`](../../.nvmrc), currently `22.22.0` LTS. `@poleski/quality-tools` uses `path.matchesGlob`, so Node versions older than 20.20.0 are not supported. +These commands assume the repo-pinned Node runtime from [`.nvmrc`](../../.nvmrc), currently `22.22.0` LTS. `@poleski/quality-tools` uses `path.matchesGlob`, so older Node versions are not supported. diff --git a/package.json b/package.json index ac251c3b8..90e0c40ab 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0", + "node": ">=20.20.0 <23", "vscode": "^1.85.0" }, "files": [ diff --git a/packages/core/package.json b/packages/core/package.json index a155e7fbb..c1ba3edd7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -17,7 +17,7 @@ } }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "publishConfig": { "access": "public" diff --git a/packages/extension/docs/README.md b/packages/extension/docs/README.md index daf2d500b..80ad0ecdf 100644 --- a/packages/extension/docs/README.md +++ b/packages/extension/docs/README.md @@ -18,7 +18,7 @@ Current extension behavior to keep in mind while reading the package docs: - CSS Snippets are built into the extension: workspace-local `.css` files listed in `.codegraphy/settings.json` under `cssSnippets` can style stable `data-codegraphy-*` hooks without rebuilding a VS Code theme - the language plugins in `packages/plugin-*` are now mostly for ecosystem filters and optional semantic enrichment rather than baseline file coloring -Published packages support Node 20.20.0 and newer. Local tooling and CI are pinned to Node `22.22.0` LTS. +Local tooling and CI are pinned to Node `22.22.0` LTS. The source tree is split by runtime boundary: diff --git a/packages/extension/package.json b/packages/extension/package.json index 352641f99..0ce2421cf 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -5,7 +5,7 @@ "description": "CodeGraphy VS Code extension core", "license": "MIT", "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "scripts": { "build": "pnpm run build:extension && pnpm run build:webview", diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 6a10f75cf..1c7cfa184 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -8,7 +8,7 @@ The MCP package owns only the agent-agnostic `codegraphy-mcp` server command. Co ## Prerequisites -- Node 20.20.0 or newer. +- Node `22.22.0` or newer within the supported Node 22 range. - Codex, Claude, Cursor, or another MCP-capable agent. ## Quick Start diff --git a/packages/mcp/package.json b/packages/mcp/package.json index a5c7ff584..75b1109d6 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -5,7 +5,7 @@ "license": "MIT", "type": "module", "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-api/package.json b/packages/plugin-api/package.json index 4885a2284..c7afd3ab3 100644 --- a/packages/plugin-api/package.json +++ b/packages/plugin-api/package.json @@ -3,7 +3,7 @@ "version": "5.0.0", "description": "Type definitions for CodeGraphy plugins", "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "repository": { "type": "git", diff --git a/packages/plugin-csharp/package.json b/packages/plugin-csharp/package.json index ad597ce40..8d60698fb 100644 --- a/packages/plugin-csharp/package.json +++ b/packages/plugin-csharp/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-godot/package.json b/packages/plugin-godot/package.json index e7d888369..fe3810979 100644 --- a/packages/plugin-godot/package.json +++ b/packages/plugin-godot/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-markdown/package.json b/packages/plugin-markdown/package.json index 29e19f0ee..01d456e08 100644 --- a/packages/plugin-markdown/package.json +++ b/packages/plugin-markdown/package.json @@ -13,7 +13,7 @@ } }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-python/package.json b/packages/plugin-python/package.json index 61a209deb..62add7f2d 100644 --- a/packages/plugin-python/package.json +++ b/packages/plugin-python/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-svelte/package.json b/packages/plugin-svelte/package.json index 93e252b06..3750821a9 100644 --- a/packages/plugin-svelte/package.json +++ b/packages/plugin-svelte/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-typescript/package.json b/packages/plugin-typescript/package.json index 1769f3bf1..9ba4a0858 100644 --- a/packages/plugin-typescript/package.json +++ b/packages/plugin-typescript/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index 40291859d..ebe99ab30 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0" + "node": ">=20.20.0 <23" }, "keywords": [ "codegraphy", From 3f956d992df2d96e50add099a29175d2dc707210 Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 08:50:08 -0700 Subject: [PATCH 3/8] Document Node engine upper bound investigation --- docs/handoff/270-node-engine-upper-bound.md | 66 +++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/handoff/270-node-engine-upper-bound.md diff --git a/docs/handoff/270-node-engine-upper-bound.md b/docs/handoff/270-node-engine-upper-bound.md new file mode 100644 index 000000000..4c0ec5b06 --- /dev/null +++ b/docs/handoff/270-node-engine-upper-bound.md @@ -0,0 +1,66 @@ +# Node Engine Upper Bound Investigation + +Trello: https://trello.com/c/qiauqiPA +PR: https://github.com/joesobo/CodeGraphyV4/pull/270 + +## Finding + +Do not remove the Node `<23` engine upper bound as a metadata-only change yet. + +The repo minimum should stay `>=20.20.0`. The quality-tooling docs already note +that `@poleski/quality-tools` uses `path.matchesGlob`, so older Node 20 +versions are outside the supported local quality-tooling path. + +CI should stay pinned to Node `22.22.0`. This card did not find a reason to +redesign the CI runtime or matrix. + +## Evidence + +All current `engines.node` declarations are consistently +`>=20.20.0 <23` in: + +- `package.json` +- `apps/web/package.json` +- `packages/core/package.json` +- `packages/extension/package.json` +- `packages/mcp/package.json` +- `packages/plugin-api/package.json` +- `packages/plugin-csharp/package.json` +- `packages/plugin-godot/package.json` +- `packages/plugin-markdown/package.json` +- `packages/plugin-python/package.json` +- `packages/plugin-svelte/package.json` +- `packages/plugin-typescript/package.json` +- `packages/plugin-vue/package.json` + +Local sanity checks on the laptop used Node `v22.22.0` and pnpm `10.32.0`: + +- `pnpm install --frozen-lockfile` passed. +- The pre-commit hook ran `pnpm run typecheck` and passed. + +Mac mini verification used an isolated worktree at +`/Users/poleski/.codex/worktrees/270-node-engine-upper-bound/CodeGraphyV4`. +The mini had Node `v26.0.0` available at +`/opt/homebrew/Cellar/node/26.0.0/bin/node`, and pnpm `10.32.0` ran with that +Node first in `PATH`. + +Under Node `v26.0.0`, `pnpm install --frozen-lockfile` failed while building +`tree-sitter@0.25.0`: + +```text +/Users/poleski/Library/Caches/node-gyp/26.0.0/include/node/v8config.h:13:2: +error: "C++20 or later required." +``` + +The failing command was: + +```bash +ssh codegraphy-mini 'set -euo pipefail; export PATH="/opt/homebrew/Cellar/node/26.0.0/bin:/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"; cd /Users/poleski/.codex/worktrees/270-node-engine-upper-bound/CodeGraphyV4; pnpm install --frozen-lockfile' +``` + +## Recommendation + +Keep `engines.node` as `>=20.20.0 <23` until the native tree-sitter install path +is proven on newer Node runtimes or replaced with a dependency/tooling path that +supports those runtimes by default. Removing only `<23` would allow installs on +Node 26 that currently fail during dependency installation. From 3dac68081c68381c83a6150ab4f285f0e56109b5 Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 08:53:28 -0700 Subject: [PATCH 4/8] Record Node engine verification evidence --- docs/handoff/270-node-engine-upper-bound.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/handoff/270-node-engine-upper-bound.md b/docs/handoff/270-node-engine-upper-bound.md index 4c0ec5b06..56f4564cb 100644 --- a/docs/handoff/270-node-engine-upper-bound.md +++ b/docs/handoff/270-node-engine-upper-bound.md @@ -37,6 +37,8 @@ Local sanity checks on the laptop used Node `v22.22.0` and pnpm `10.32.0`: - `pnpm install --frozen-lockfile` passed. - The pre-commit hook ran `pnpm run typecheck` and passed. +- The pre-commit hook ran `pnpm run typecheck` again after adding this + investigation note and passed. Mac mini verification used an isolated worktree at `/Users/poleski/.codex/worktrees/270-node-engine-upper-bound/CodeGraphyV4`. @@ -58,6 +60,25 @@ The failing command was: ssh codegraphy-mini 'set -euo pipefail; export PATH="/opt/homebrew/Cellar/node/26.0.0/bin:/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"; cd /Users/poleski/.codex/worktrees/270-node-engine-upper-bound/CodeGraphyV4; pnpm install --frozen-lockfile' ``` +The same remote worktree was then checked under the currently supported Node 22 +runtime: + +- Host: `Poleskis-Mac-mini.local` +- Node: `v22.22.2` +- pnpm: `10.32.0` +- `pnpm install --frozen-lockfile` passed. +- `pnpm run typecheck` passed. +- `pnpm run lint` passed, with 32 existing generated-acceptance spacing + warnings emitted from + `packages/extension/tests/playwright-vscode/generated/acceptance.spec.ts`. +- `pnpm --filter @codegraphy-dev/mcp test` passed: 1 file, 13 tests. +- `pnpm run mutate -- packages/mcp/src/mcp/server.ts` passed: 5 mutants, 100% + mutation score. + +No focused VS Code Playwright slice was run after the Node 26 install failure +because the engine metadata change was rejected and no VS Code or Playwright +runtime behavior changed. + ## Recommendation Keep `engines.node` as `>=20.20.0 <23` until the native tree-sitter install path From d791ec3901032a496bebd96c4ae87c2a66b55000 Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 09:12:15 -0700 Subject: [PATCH 5/8] Remove Node engine upper bound --- .changeset/remove-node-upper-bound.md | 14 ++ CONTRIBUTING.md | 4 +- apps/web/package.json | 2 +- docs/MCP.md | 2 +- docs/README.md | 2 +- docs/RELEASING.md | 2 +- docs/agents/codegraphy-loop.md | 9 +- docs/agents/loops/orchestrator.md | 2 +- docs/handoff/270-node-engine-upper-bound.md | 36 +++-- docs/quality/README.md | 2 +- package.json | 2 +- packages/core/package.json | 2 +- packages/extension/docs/README.md | 2 +- packages/extension/package.json | 2 +- packages/mcp/README.md | 2 +- packages/mcp/package.json | 2 +- packages/plugin-api/package.json | 2 +- packages/plugin-csharp/package.json | 2 +- packages/plugin-godot/package.json | 2 +- packages/plugin-markdown/package.json | 2 +- packages/plugin-python/package.json | 2 +- packages/plugin-svelte/package.json | 2 +- packages/plugin-typescript/package.json | 2 +- packages/plugin-vue/package.json | 2 +- patches/tree-sitter@0.25.0.patch | 29 ++++ pnpm-lock.yaml | 169 ++++++++++---------- pnpm-workspace.yaml | 24 +-- 27 files changed, 192 insertions(+), 133 deletions(-) create mode 100644 .changeset/remove-node-upper-bound.md create mode 100644 patches/tree-sitter@0.25.0.patch diff --git a/.changeset/remove-node-upper-bound.md b/.changeset/remove-node-upper-bound.md new file mode 100644 index 000000000..d9c33e4f0 --- /dev/null +++ b/.changeset/remove-node-upper-bound.md @@ -0,0 +1,14 @@ +--- +"@codegraphy-dev/core": patch +"@codegraphy-dev/mcp": patch +"@codegraphy-dev/plugin-api": patch +"@codegraphy-dev/plugin-csharp": patch +"@codegraphy-dev/plugin-godot": patch +"@codegraphy-dev/plugin-markdown": patch +"@codegraphy-dev/plugin-python": patch +"@codegraphy-dev/plugin-svelte": patch +"@codegraphy-dev/plugin-typescript": patch +"@codegraphy-dev/plugin-vue": patch +--- + +Allow current and future Node releases while keeping Node 20 as the minimum supported runtime. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 865355565..b4552367d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Thanks for your interest in contributing to CodeGraphy! ### Prerequisites -- Node.js 22.22.0 LTS +- Node.js 20 or newer - pnpm 10+ - VS Code 1.85+ @@ -107,7 +107,7 @@ pnpm --filter @codegraphy-dev/extension exec playwright install chromium # Brow pnpm --filter @codegraphy-dev/extension exec vitest run --config vitest.config.ts tests/path/to/file.test.ts ``` -The repo pins Node in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version). Use that exact runtime before running release or quality-tool commands. +The published packages support Node 20 and newer. The repo pins Node in [`.nvmrc`](./.nvmrc) and [`.node-version`](./.node-version). Use that exact runtime before running release or quality-tool commands. ## Reporting issues diff --git a/apps/web/package.json b/apps/web/package.json index 4a83920de..3f225876a 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,7 +13,7 @@ } }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "scripts": { "build": "tsc -p tsconfig.build.json", diff --git a/docs/MCP.md b/docs/MCP.md index e87b6ceb8..b94d71181 100644 --- a/docs/MCP.md +++ b/docs/MCP.md @@ -18,7 +18,7 @@ Every `codegraphy ...` terminal subcommand lives in `@codegraphy-dev/core`. `@co ## Prerequisites -- Node `22.22.0` or newer within the supported Node 22 range. +- Node 20 or newer. - Codex, Claude, Cursor, or another MCP-capable agent. ## Quick Start diff --git a/docs/README.md b/docs/README.md index 46b4dd8ad..129694db1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Docs Use the root [README](../README.md) for the release overview, marketplace links, package map, and the V2 to V4 migration story. -The repo-wide local runtime is Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc). +Published packages support Node 20 and newer. The repo-wide local runtime is Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc). The rest of the docs are split by purpose: diff --git a/docs/RELEASING.md b/docs/RELEASING.md index de20fe2bb..b5c71ec17 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -92,7 +92,7 @@ vsce verify-pat codegraphy 3. Confirm `vsce ls-publishers` shows `codegraphy`. 4. Confirm `vsce verify-pat codegraphy` succeeds. 5. Run `pnpm install`. - - Use Node `22.22.0` LTS from [`.nvmrc`](../.nvmrc) / [`.node-version`](../.node-version). + - Use the repo-pinned Node runtime from [`.nvmrc`](../.nvmrc) / [`.node-version`](../.node-version). 6. Add changesets only for unreleased user-facing workspace packages. Archive shipped changesets under [`docs/archive/changesets/`](./archive/changesets/). 7. Run `pnpm run version-packages`. 8. If the VS Code Marketplace extension changed, verify `packages/extension/package.json` and [`packages/extension/CHANGELOG.md`](../packages/extension/CHANGELOG.md) have matching top entries. diff --git a/docs/agents/codegraphy-loop.md b/docs/agents/codegraphy-loop.md index 5c3c39c6f..e89a140ac 100644 --- a/docs/agents/codegraphy-loop.md +++ b/docs/agents/codegraphy-loop.md @@ -40,11 +40,12 @@ codegraphy-mini:/Users/poleski/Desktop/Projects/CodeGraphyV4 ``` The heavy-check thread must verify its host, branch, worktree, and Node runtime -before running commands. Prefer Node 22 there because CodeGraphy requires Node -`<23`. +before running commands. Prefer the repo-pinned Node runtime there so remote +checks match local and CI behavior. -When checking or preparing the remote host over SSH, use the Homebrew Node 22 -path explicitly so `pnpm` and Codex resolve the same runtime: +When checking or preparing the remote host over SSH, use the Homebrew path for +the repo-pinned Node runtime explicitly so `pnpm` and Codex resolve the same +runtime: ```bash ssh codegraphy-mini 'export PATH="/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin"; cd /Users/poleski/Desktop/Projects/CodeGraphyV4; hostname; node --version; pnpm --version; git status --short --branch' diff --git a/docs/agents/loops/orchestrator.md b/docs/agents/loops/orchestrator.md index 078cfcfd1..d0c968e40 100644 --- a/docs/agents/loops/orchestrator.md +++ b/docs/agents/loops/orchestrator.md @@ -106,7 +106,7 @@ ssh codegraphy-mini 'export PATH="/opt/homebrew/Cellar/node@22/22.22.2_2/bin:/op The remote work must: -- use the Node 22 PATH above +- use the repo-pinned Node PATH above - fetch the PR branch before running commands - run from an isolated remote worktree for that branch - record the remote host, worktree, command, and result in the handoff log diff --git a/docs/handoff/270-node-engine-upper-bound.md b/docs/handoff/270-node-engine-upper-bound.md index 56f4564cb..5c655277f 100644 --- a/docs/handoff/270-node-engine-upper-bound.md +++ b/docs/handoff/270-node-engine-upper-bound.md @@ -3,21 +3,20 @@ Trello: https://trello.com/c/qiauqiPA PR: https://github.com/joesobo/CodeGraphyV4/pull/270 -## Finding +## Current Decision -Do not remove the Node `<23` engine upper bound as a metadata-only change yet. +Remove the Node `<23` engine upper bound from package manifests and keep the +published Node minimum at `>=20`. -The repo minimum should stay `>=20.20.0`. The quality-tooling docs already note -that `@poleski/quality-tools` uses `path.matchesGlob`, so older Node 20 -versions are outside the supported local quality-tooling path. +This intentionally leaves a known Node 26 install failure to fix in this PR +rather than hiding it behind package metadata. CI should stay pinned to Node `22.22.0`. This card did not find a reason to redesign the CI runtime or matrix. ## Evidence -All current `engines.node` declarations are consistently -`>=20.20.0 <23` in: +Updated `engines.node` declarations are consistently `>=20` in: - `package.json` - `apps/web/package.json` @@ -76,12 +75,21 @@ runtime: mutation score. No focused VS Code Playwright slice was run after the Node 26 install failure -because the engine metadata change was rejected and no VS Code or Playwright -runtime behavior changed. +because the next blocker is dependency installation, before VS Code or +Playwright runtime behavior can be exercised. -## Recommendation +## Native Build Fix Options -Keep `engines.node` as `>=20.20.0 <23` until the native tree-sitter install path -is proven on newer Node runtimes or replaced with a dependency/tooling path that -supports those runtimes by default. Removing only `<23` would allow installs on -Node 26 that currently fail during dependency installation. +`tree-sitter@0.25.0` fails to build against Node 26 because Node 26's V8 +headers require C++20. C++20 is a newer version of the C++ language standard; +native Node addons compile C++ code during install, and the compiler must be +told which language standard to use. + +Next things to test: + +1. Check whether a newer `tree-sitter` runtime release sets C++20-compatible + build flags or otherwise supports Node 26. +2. If the package has no newer compatible release, test a local package patch + that adds the C++20 build flag to the `tree-sitter` native binding build. +3. Only after dependency installation works on Node 26, rerun the Node 26 + install/typecheck/lint/unit smoke path. diff --git a/docs/quality/README.md b/docs/quality/README.md index 289221c9c..658a5718c 100644 --- a/docs/quality/README.md +++ b/docs/quality/README.md @@ -51,4 +51,4 @@ Implementation now lives in the external `@poleski/quality-tools` package. Extension-specific architecture and lifecycle notes live in `packages/extension/docs/`. -These commands assume the repo-pinned Node runtime from [`.nvmrc`](../../.nvmrc), currently `22.22.0` LTS. `@poleski/quality-tools` uses `path.matchesGlob`, so older Node versions are not supported. +These commands assume the repo-pinned Node runtime from [`.nvmrc`](../../.nvmrc), currently `22.22.0` LTS. `@poleski/quality-tools` uses `path.matchesGlob`, so Node 20 or newer is required. diff --git a/package.json b/package.json index 90e0c40ab..106c66460 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23", + "node": ">=20", "vscode": "^1.85.0" }, "files": [ diff --git a/packages/core/package.json b/packages/core/package.json index c1ba3edd7..922ddc0e5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -17,7 +17,7 @@ } }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "publishConfig": { "access": "public" diff --git a/packages/extension/docs/README.md b/packages/extension/docs/README.md index 80ad0ecdf..1ac664234 100644 --- a/packages/extension/docs/README.md +++ b/packages/extension/docs/README.md @@ -18,7 +18,7 @@ Current extension behavior to keep in mind while reading the package docs: - CSS Snippets are built into the extension: workspace-local `.css` files listed in `.codegraphy/settings.json` under `cssSnippets` can style stable `data-codegraphy-*` hooks without rebuilding a VS Code theme - the language plugins in `packages/plugin-*` are now mostly for ecosystem filters and optional semantic enrichment rather than baseline file coloring -Local tooling and CI are pinned to Node `22.22.0` LTS. +Published packages support Node 20 and newer. Local tooling and CI are pinned to Node `22.22.0` LTS. The source tree is split by runtime boundary: diff --git a/packages/extension/package.json b/packages/extension/package.json index 0ce2421cf..784e840e7 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -5,7 +5,7 @@ "description": "CodeGraphy VS Code extension core", "license": "MIT", "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "scripts": { "build": "pnpm run build:extension && pnpm run build:webview", diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 1c7cfa184..9be21bde0 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -8,7 +8,7 @@ The MCP package owns only the agent-agnostic `codegraphy-mcp` server command. Co ## Prerequisites -- Node `22.22.0` or newer within the supported Node 22 range. +- Node 20 or newer. - Codex, Claude, Cursor, or another MCP-capable agent. ## Quick Start diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 75b1109d6..27d509830 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -5,7 +5,7 @@ "license": "MIT", "type": "module", "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-api/package.json b/packages/plugin-api/package.json index c7afd3ab3..b9ec15701 100644 --- a/packages/plugin-api/package.json +++ b/packages/plugin-api/package.json @@ -3,7 +3,7 @@ "version": "5.0.0", "description": "Type definitions for CodeGraphy plugins", "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "repository": { "type": "git", diff --git a/packages/plugin-csharp/package.json b/packages/plugin-csharp/package.json index 8d60698fb..f0e1e5b33 100644 --- a/packages/plugin-csharp/package.json +++ b/packages/plugin-csharp/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-godot/package.json b/packages/plugin-godot/package.json index fe3810979..6f5ad2354 100644 --- a/packages/plugin-godot/package.json +++ b/packages/plugin-godot/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-markdown/package.json b/packages/plugin-markdown/package.json index 01d456e08..731e041ee 100644 --- a/packages/plugin-markdown/package.json +++ b/packages/plugin-markdown/package.json @@ -13,7 +13,7 @@ } }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-python/package.json b/packages/plugin-python/package.json index 62add7f2d..341d9773f 100644 --- a/packages/plugin-python/package.json +++ b/packages/plugin-python/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-svelte/package.json b/packages/plugin-svelte/package.json index 3750821a9..c12fcfde7 100644 --- a/packages/plugin-svelte/package.json +++ b/packages/plugin-svelte/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-typescript/package.json b/packages/plugin-typescript/package.json index 9ba4a0858..dda905a4f 100644 --- a/packages/plugin-typescript/package.json +++ b/packages/plugin-typescript/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "keywords": [ "codegraphy", diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index ebe99ab30..5bea221fe 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/joesobo/CodeGraphyV4/issues" }, "engines": { - "node": ">=20.20.0 <23" + "node": ">=20" }, "keywords": [ "codegraphy", diff --git a/patches/tree-sitter@0.25.0.patch b/patches/tree-sitter@0.25.0.patch new file mode 100644 index 000000000..3e658b0cd --- /dev/null +++ b/patches/tree-sitter@0.25.0.patch @@ -0,0 +1,29 @@ +diff --git a/binding.gyp b/binding.gyp +index bb40aa7e8d41644ba690761e9064fc1d0f2dcd6b..1e1641b2e3d6733642ea0ff06cd88b3b3023fd6c 100644 +--- a/binding.gyp ++++ b/binding.gyp +@@ -25,13 +25,13 @@ + "NAPI_VERSION=<(napi_build_version)", + ], + "cflags_cc": [ +- "-std=c++17" ++ "-std=c++20" + ], + "conditions": [ + ["OS=='mac'", { + "xcode_settings": { + "GCC_SYMBOLS_PRIVATE_EXTERN": "YES", # -fvisibility=hidden +- "CLANG_CXX_LANGUAGE_STANDARD": "c++17", ++ "CLANG_CXX_LANGUAGE_STANDARD": "c++20", + "MACOSX_DEPLOYMENT_TARGET": "10.9", + }, + }], +@@ -39,7 +39,7 @@ + "msvs_settings": { + "VCCLCompilerTool": { + "AdditionalOptions": [ +- "/std:c++17", ++ "/std:c++20", + ], + "RuntimeLibrary": 0, + }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9bcf717f1..88c261e54 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,11 @@ overrides: qs@>=6.11.1 <=6.15.1: 6.15.2 yaml@>=2.0.0 <2.8.3: 2.8.3 +patchedDependencies: + tree-sitter@0.25.0: + hash: 581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb + path: patches/tree-sitter@0.25.0.patch + importers: .: @@ -139,16 +144,16 @@ importers: version: link:../plugin-markdown '@driftlog/tree-sitter-dart': specifier: 1.0.4 - version: 1.0.4(node-addon-api@8.7.0)(tree-sitter@0.25.0) + version: 1.0.4(node-addon-api@8.7.0)(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) '@ladybugdb/core': specifier: ^0.15.3 version: 0.15.3 '@tree-sitter-grammars/tree-sitter-kotlin': specifier: 1.1.0 - version: 1.1.0(tree-sitter@0.25.0) + version: 1.1.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) '@tree-sitter-grammars/tree-sitter-lua': specifier: 0.4.1 - version: 0.4.1(tree-sitter@0.25.0) + version: 0.4.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) ignore: specifier: ^7.0.5 version: 7.0.5 @@ -157,52 +162,52 @@ importers: version: 10.2.5 tree-sitter: specifier: ^0.25.0 - version: 0.25.0 + version: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) tree-sitter-c: specifier: 0.24.1 - version: 0.24.1(tree-sitter@0.25.0) + version: 0.24.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-c-sharp: specifier: 0.23.1 - version: 0.23.1(tree-sitter@0.25.0) + version: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-cpp: specifier: 0.23.4 - version: 0.23.4(tree-sitter@0.25.0) + version: 0.23.4(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-go: specifier: 0.25.0 - version: 0.25.0(tree-sitter@0.25.0) + version: 0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-haskell: specifier: 0.23.1 - version: 0.23.1(tree-sitter@0.25.0) + version: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-java: specifier: 0.23.5 - version: 0.23.5(tree-sitter@0.25.0) + version: 0.23.5(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-javascript: specifier: ^0.25.0 - version: 0.25.0(tree-sitter@0.25.0) + version: 0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-objc: specifier: 3.0.2 - version: 3.0.2(tree-sitter@0.25.0) + version: 3.0.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-php: specifier: 0.24.2 - version: 0.24.2(tree-sitter@0.25.0) + version: 0.24.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-python: specifier: 0.25.0 - version: 0.25.0(tree-sitter@0.25.0) + version: 0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-ruby: specifier: 0.23.1 - version: 0.23.1(tree-sitter@0.25.0) + version: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-rust: specifier: 0.24.0 - version: 0.24.0(tree-sitter@0.25.0) + version: 0.24.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-scala: specifier: 0.24.0 - version: 0.24.0(tree-sitter@0.25.0) + version: 0.24.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-swift: specifier: 0.7.1 - version: 0.7.1(tree-sitter@0.25.0) + version: 0.7.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-typescript: specifier: ^0.23.2 - version: 0.23.2(tree-sitter@0.25.0) + version: 0.23.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) packages/extension: dependencies: @@ -211,7 +216,7 @@ importers: version: link:../core '@driftlog/tree-sitter-dart': specifier: 1.0.4 - version: 1.0.4(node-addon-api@8.7.0)(tree-sitter@0.25.0) + version: 1.0.4(node-addon-api@8.7.0)(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) '@floating-ui/react': specifier: ^0.27.19 version: 0.27.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -256,10 +261,10 @@ importers: version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tree-sitter-grammars/tree-sitter-kotlin': specifier: 1.1.0 - version: 1.1.0(tree-sitter@0.25.0) + version: 1.1.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) '@tree-sitter-grammars/tree-sitter-lua': specifier: 0.4.1 - version: 0.4.1(tree-sitter@0.25.0) + version: 0.4.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -307,52 +312,52 @@ importers: version: 1.10.0(three@0.183.2) tree-sitter: specifier: ^0.25.0 - version: 0.25.0 + version: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) tree-sitter-c: specifier: 0.24.1 - version: 0.24.1(tree-sitter@0.25.0) + version: 0.24.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-c-sharp: specifier: 0.23.1 - version: 0.23.1(tree-sitter@0.25.0) + version: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-cpp: specifier: 0.23.4 - version: 0.23.4(tree-sitter@0.25.0) + version: 0.23.4(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-go: specifier: 0.25.0 - version: 0.25.0(tree-sitter@0.25.0) + version: 0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-haskell: specifier: 0.23.1 - version: 0.23.1(tree-sitter@0.25.0) + version: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-java: specifier: 0.23.5 - version: 0.23.5(tree-sitter@0.25.0) + version: 0.23.5(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-javascript: specifier: ^0.25.0 - version: 0.25.0(tree-sitter@0.25.0) + version: 0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-objc: specifier: 3.0.2 - version: 3.0.2(tree-sitter@0.25.0) + version: 3.0.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-php: specifier: 0.24.2 - version: 0.24.2(tree-sitter@0.25.0) + version: 0.24.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-python: specifier: 0.25.0 - version: 0.25.0(tree-sitter@0.25.0) + version: 0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-ruby: specifier: 0.23.1 - version: 0.23.1(tree-sitter@0.25.0) + version: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-rust: specifier: 0.24.0 - version: 0.24.0(tree-sitter@0.25.0) + version: 0.24.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-scala: specifier: 0.24.0 - version: 0.24.0(tree-sitter@0.25.0) + version: 0.24.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-swift: specifier: 0.7.1 - version: 0.7.1(tree-sitter@0.25.0) + version: 0.7.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) tree-sitter-typescript: specifier: ^0.23.2 - version: 0.23.2(tree-sitter@0.25.0) + version: 0.23.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) zustand: specifier: ^5.0.11 version: 5.0.11(@types/react@18.3.28)(react@18.3.1) @@ -6734,12 +6739,12 @@ snapshots: '@csstools/css-tokenizer@3.0.4': {} - '@driftlog/tree-sitter-dart@1.0.4(node-addon-api@8.7.0)(tree-sitter@0.25.0)': + '@driftlog/tree-sitter-dart@1.0.4(node-addon-api@8.7.0)(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb))': dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) '@esbuild/aix-ppc64@0.25.12': optional: true @@ -7979,20 +7984,20 @@ snapshots: dependencies: '@textlint/ast-node-types': 15.5.2 - '@tree-sitter-grammars/tree-sitter-kotlin@1.1.0(tree-sitter@0.25.0)': + '@tree-sitter-grammars/tree-sitter-kotlin@1.1.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb))': dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 npm-check-updates: 17.1.18 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - '@tree-sitter-grammars/tree-sitter-lua@0.4.1(tree-sitter@0.25.0)': + '@tree-sitter-grammars/tree-sitter-lua@0.4.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb))': dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) '@tweenjs/tween.js@25.0.0': {} @@ -11797,132 +11802,132 @@ snapshots: tree-kill@1.2.2: {} - tree-sitter-c-sharp@0.23.1(tree-sitter@0.25.0): + tree-sitter-c-sharp@0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-c@0.23.6(tree-sitter@0.25.0): + tree-sitter-c@0.23.6(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-c@0.24.1(tree-sitter@0.25.0): + tree-sitter-c@0.24.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) tree-sitter-cli@0.23.2: {} - tree-sitter-cpp@0.23.4(tree-sitter@0.25.0): + tree-sitter-cpp@0.23.4(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 - tree-sitter-c: 0.23.6(tree-sitter@0.25.0) + tree-sitter-c: 0.23.6(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-go@0.25.0(tree-sitter@0.25.0): + tree-sitter-go@0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-haskell@0.23.1(tree-sitter@0.25.0): + tree-sitter-haskell@0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-java@0.23.5(tree-sitter@0.25.0): + tree-sitter-java@0.23.5(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-javascript@0.23.1(tree-sitter@0.25.0): + tree-sitter-javascript@0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-javascript@0.25.0(tree-sitter@0.25.0): + tree-sitter-javascript@0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-objc@3.0.2(tree-sitter@0.25.0): + tree-sitter-objc@3.0.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 - tree-sitter-c: 0.23.6(tree-sitter@0.25.0) + tree-sitter-c: 0.23.6(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-php@0.24.2(tree-sitter@0.25.0): + tree-sitter-php@0.24.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-python@0.25.0(tree-sitter@0.25.0): + tree-sitter-python@0.25.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-ruby@0.23.1(tree-sitter@0.25.0): + tree-sitter-ruby@0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-rust@0.24.0(tree-sitter@0.25.0): + tree-sitter-rust@0.24.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-scala@0.24.0(tree-sitter@0.25.0): + tree-sitter-scala@0.24.0(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter-swift@0.7.1(tree-sitter@0.25.0): + tree-sitter-swift@0.7.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) tree-sitter-cli: 0.23.2 which: 2.0.2 - tree-sitter-typescript@0.23.2(tree-sitter@0.25.0): + tree-sitter-typescript@0.23.2(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 - tree-sitter-javascript: 0.23.1(tree-sitter@0.25.0) + tree-sitter-javascript: 0.23.1(tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb)) optionalDependencies: - tree-sitter: 0.25.0 + tree-sitter: 0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb) - tree-sitter@0.25.0: + tree-sitter@0.25.0(patch_hash=581e1c376edeabe3d25b64ea7bac59e14cc731627b17b97acccf0cce1dd051cb): dependencies: node-addon-api: 8.7.0 node-gyp-build: 4.8.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5576342fe..4b11ff12e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,17 +2,6 @@ packages: - "packages/*" - "apps/*" - "examples/*" -overrides: - "ajv>fast-uri": "3.1.2" - "hono@<4.12.21": "4.12.25" - "ip-address@<=10.1.0": "10.2.0" - "lodash-es@>=4.0.0 <=4.17.23": "4.18.1" - "picomatch@>=4.0.0 <4.0.4": "4.0.4" - "postcss@<8.5.10": "8.5.15" - "qs@>=6.11.1 <=6.15.1": "6.15.2" - "yaml@>=2.0.0 <2.8.3": "2.8.3" -onlyBuiltDependencies: - - "@poleski/quality-tools" allowBuilds: '@driftlog/tree-sitter-dart': true '@ladybugdb/core': true @@ -26,3 +15,16 @@ allowBuilds: tree-sitter-rust: true tree-sitter-scala: true tree-sitter-typescript: true +onlyBuiltDependencies: + - "@poleski/quality-tools" +overrides: + "ajv>fast-uri": "3.1.2" + "hono@<4.12.21": "4.12.25" + "ip-address@<=10.1.0": "10.2.0" + "lodash-es@>=4.0.0 <=4.17.23": "4.18.1" + "picomatch@>=4.0.0 <4.0.4": "4.0.4" + "postcss@<8.5.10": "8.5.15" + "qs@>=6.11.1 <=6.15.1": "6.15.2" + "yaml@>=2.0.0 <2.8.3": "2.8.3" +patchedDependencies: + tree-sitter@0.25.0: patches/tree-sitter@0.25.0.patch From ddc60adbc6a11f7eb18d0f3b95654df57845662f Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 09:14:04 -0700 Subject: [PATCH 6/8] Record Node 26 tree-sitter patch evidence --- docs/handoff/270-node-engine-upper-bound.md | 26 ++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/docs/handoff/270-node-engine-upper-bound.md b/docs/handoff/270-node-engine-upper-bound.md index 5c655277f..20cb04318 100644 --- a/docs/handoff/270-node-engine-upper-bound.md +++ b/docs/handoff/270-node-engine-upper-bound.md @@ -8,8 +8,8 @@ PR: https://github.com/joesobo/CodeGraphyV4/pull/270 Remove the Node `<23` engine upper bound from package manifests and keep the published Node minimum at `>=20`. -This intentionally leaves a known Node 26 install failure to fix in this PR -rather than hiding it behind package metadata. +The original Node 26 install failure is fixed in this PR by patching the +`tree-sitter@0.25.0` native binding build to use C++20. CI should stay pinned to Node `22.22.0`. This card did not find a reason to redesign the CI runtime or matrix. @@ -87,9 +87,19 @@ told which language standard to use. Next things to test: -1. Check whether a newer `tree-sitter` runtime release sets C++20-compatible - build flags or otherwise supports Node 26. -2. If the package has no newer compatible release, test a local package patch - that adds the C++20 build flag to the `tree-sitter` native binding build. -3. Only after dependency installation works on Node 26, rerun the Node 26 - install/typecheck/lint/unit smoke path. +1. `npm view tree-sitter version versions --json` showed `0.25.0` is still the + latest published `tree-sitter` runtime, so there was no newer runtime package + to upgrade to for this failure. +2. A local pnpm patch now changes the `tree-sitter@0.25.0` native binding build + from C++17 to C++20 in `binding.gyp`. + +The patch fixed the original Node 26 install blocker on `codegraphy-mini`: + +- Host: `Poleskis-Mac-mini.local` +- Node: `v26.0.0` +- pnpm: `10.32.0` +- `pnpm install --frozen-lockfile` passed. +- `pnpm --filter @codegraphy-dev/core typecheck` passed. +- `pnpm --filter @codegraphy-dev/mcp test` passed: 1 file, 13 tests. + +CI was not re-waited after this change per the user's request. From 1a985cf4c42a8849d9e0946dddc96cdaf7fa0dae Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 09:48:48 -0700 Subject: [PATCH 7/8] Document temporary tree-sitter patch --- docs/handoff/270-node-engine-upper-bound.md | 8 ++++++++ patches/README.md | 15 +++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 patches/README.md diff --git a/docs/handoff/270-node-engine-upper-bound.md b/docs/handoff/270-node-engine-upper-bound.md index 20cb04318..57c9ec3f3 100644 --- a/docs/handoff/270-node-engine-upper-bound.md +++ b/docs/handoff/270-node-engine-upper-bound.md @@ -10,6 +10,11 @@ published Node minimum at `>=20`. The original Node 26 install failure is fixed in this PR by patching the `tree-sitter@0.25.0` native binding build to use C++20. +The patch is documented in `patches/README.md` and should be removed once +`tree-sitter` publishes the upstream Node 23+ build fix: +https://github.com/tree-sitter/node-tree-sitter/issues/276 +Follow-up Trello card: +https://trello.com/c/Myxab48H CI should stay pinned to Node `22.22.0`. This card did not find a reason to redesign the CI runtime or matrix. @@ -92,6 +97,9 @@ Next things to test: to upgrade to for this failure. 2. A local pnpm patch now changes the `tree-sitter@0.25.0` native binding build from C++17 to C++20 in `binding.gyp`. + This is a temporary backport of the upstream fix while + https://github.com/tree-sitter/node-tree-sitter/issues/276 blocks a published + npm release with the fix. The patch fixed the original Node 26 install blocker on `codegraphy-mini`: diff --git a/patches/README.md b/patches/README.md new file mode 100644 index 000000000..34ac6a0f4 --- /dev/null +++ b/patches/README.md @@ -0,0 +1,15 @@ +# Dependency Patches + +## `tree-sitter@0.25.0` + +CodeGraphy carries a temporary pnpm patch for `tree-sitter@0.25.0` so the +native Node binding builds with C++20 on Node 23 and newer. + +Upstream has already merged the equivalent fix in +tree-sitter/node-tree-sitter#258, but the fixed npm release is not currently +published. The follow-up issue is: + +https://github.com/tree-sitter/node-tree-sitter/issues/276 + +Remove this patch once `tree-sitter` publishes a release that includes the +Node 23+ C++20 build fix, then replace it with a normal dependency update. From d9f019fa1ea2b43b3759889f96c5f0a61281c3f5 Mon Sep 17 00:00:00 2001 From: joesobo Date: Fri, 12 Jun 2026 10:33:37 -0700 Subject: [PATCH 8/8] Update Node engine CI evidence --- docs/handoff/270-node-engine-upper-bound.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/handoff/270-node-engine-upper-bound.md b/docs/handoff/270-node-engine-upper-bound.md index 57c9ec3f3..6bcdafc54 100644 --- a/docs/handoff/270-node-engine-upper-bound.md +++ b/docs/handoff/270-node-engine-upper-bound.md @@ -110,4 +110,6 @@ The patch fixed the original Node 26 install blocker on `codegraphy-mini`: - `pnpm --filter @codegraphy-dev/core typecheck` passed. - `pnpm --filter @codegraphy-dev/mcp test` passed: 1 file, 13 tests. -CI was not re-waited after this change per the user's request. +GitHub CI passed on the latest PR commit, including lint, typecheck, unit +tests, build, release tests, VSIX artifacts, Playwright slices, and extension +native-runtime jobs.