v2.18.4
Fixed
- SQLite backend ABI mismatch on Node 24 (issue #52) —
better-sqlite3@12ships prebuilt.nodebinaries compiled against Node ABI 137 (Node 22). OpenCode v1.18.3 bundles Node 24 (ABI 146), so the native binary failed to load withNODE_MODULE_VERSION 137 ... requires 146and every memory operation threw. The SQLite bootstrap now probes backends in ABI-safety order —bun:sqlite→node:sqlite(Node stdlib, no native binary, no ABI risk) →better-sqlite3(last resort) — with a real:memory:open/close load-test so a broken native build is never selected silently. - Array-arg bind param parity across SQLite backends —
db.run(sql, [a, b])andstmt.run([a, b])auto-unpack the array underbetter-sqlite3but not undernode:sqliteorbun:sqlite. The shared statement wrapper now normalizes a single Array argument into positional params, so the three callsites using this form (schema.ts,shard-manager.ts) work identically on every backend.
Contributors
- @Kingor-blip (issue #52 — reported the
better-sqlite3NODE_MODULE_VERSION mismatch on OpenCode v1.18.3 / Node 24)
Full Changelog: v2.18.3...v2.18.4