Skip to content

v2.2.2 — better-sqlite3 ABI self-heal

Choose a tag to compare

@Samuel0101010 Samuel0101010 released this 07 Jun 17:10
· 23 commits to main since this release
v2.2.2
89da9fd

What's fixed

A non-developer's dashboard crashed on startup with NODE_MODULE_VERSION: the
native SQLite module (better-sqlite3) had a prebuilt binary for a different
Node version than the one launching the server. The Claude Code CLI (bundled
Node 24) installed it; the server runs under the system Node. This release makes
that self-heal automatically.

  • The launcher now rebuilds the SQLite module for your Node. Before starting
    the server, /wisp-dashboard checks whether better-sqlite3 loads under the
    launching Node; on a mismatch it rebuilds the binding against that Node (a
    prebuilt binary is fetched — no compiler needed for Node 20–25), then retries.
    Both the Windows (PowerShell) and macOS/Linux (POSIX) launchers do this.
  • A direct node dist/server.js now fails clearly, not cryptically: a
    native-module preflight prints a plain-language message with the exact rebuild
    command instead of a raw NODE_MODULE_VERSION stack trace.
  • better-sqlite3 is pinned to 12.9.0 (covers Node 20–25 prebuilds) in both
    consumers, so an npm-based install can't drift to a build that drops the
    Node-20 prebuilt binary.
  • pnpm doctor now checks the SQLite module loads under your Node.

Update an existing install (the plugin tracks main)

/plugin marketplace remove wisp-local
/plugin marketplace add Samuel0101010/wisp-orchestrator
/plugin install wisp@wisp-local

The install step builds for ~1–2 min. If you hit Permission denied (publickey), run once:
git config --global "url.https://github.com/.insteadOf" "git@github.com:"

Verification

All 8 local gates + e2e (54) green; both launcher scripts syntax/parse-checked;
a real node dist/server.js boot smoke test. A 4-agent adversarial review gated
the diff and caught that the original in-DB guard was dead code under ESM
(fixed by a first-import preflight).