chore(deps): support Node 26+ (better-sqlite3 13, drop engines cap) - #29
Merged
Conversation
better-sqlite3 12.6.2 is a V8-ABI (NAN) build that fails to compile on Node 26 (V8 removed the APIs it used), which blocked install, tests, and desktop packing on Node 26 — increasingly common on contributors' machines. better-sqlite3 13.0.3 migrated to node-addon-api (Node-API), which is ABI-stable across Node majors and ships a single prebuilt that works on Node 22/24/26+. @lancedb/lancedb was already Node-API, so it needed no change — better-sqlite3 was the sole blocker. - better-sqlite3 ^12.6.2 → ^13.0.3 - engines.node ">=22.12 <26" → ">=22.12" (root/ui/desktop); the cap is no longer needed now that the native dep is Node-API. Verified on Node 26.5.1: pnpm install (Node-API prebuilt, no node-gyp), native load (SQLite 3.53.4), and DB-layer suites store/tenants/security — 385 tests pass. Our better-sqlite3 usage is minimal (new Database/pragma/prepare), so the 12→13 major carries no API surface risk for this repo. Co-authored-by: Mozi <MoziAI-co@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
better-sqlite3@12.6.2is a V8-ABI (NAN) build that fails to compile on Node 26 (V8 removed the APIs it used). That blockedpnpm install, the test suite, and desktop packing on Node 26 — increasingly common on contributors' machines.What
better-sqlite312.6.2 → 13.0.3 — 13.x migrated tonode-addon-api(Node-API), which is ABI-stable across Node majors and ships one prebuilt that works on Node 22/24/26+. No more per-Node-version native breakage.engines.node>=22.12 <26→>=22.12(root/ui/desktop) — the upper cap existed only to block the unbuildable native dep; unnecessary now.@lancedb/lancedbwas already Node-API (napi: true), so it needed no change — better-sqlite3 was the sole Node-26 blocker.Verified on Node 26.5.1
pnpm install— pulls the Node-API prebuilt, no node-gyp, no engine block.better-sqlite3opens a DB, SQLite 3.53.4.store/tenants/security— 385 tests pass (incl. theentitlements/quotassuites that couldn't run before on Node 26). Typecheck clean.Our better-sqlite3 usage is minimal (
new Database/.pragma/.prepare; no.function/.aggregate/loadExtension/unsafeMode), so the 12→13 major carries no API-surface risk here.Note:
.nvmrcstays22as the reference/release-build version (the desktop app bundles Node 22.21.1); contributors can now dev on 22–26+.