Skip to content

feat: read Hermes state.db with node:sqlite, drop better-sqlite3 - #36

Merged
alloevil merged 1 commit into
masterfrom
feat/node-sqlite
Sep 4, 2026
Merged

feat: read Hermes state.db with node:sqlite, drop better-sqlite3#36
alloevil merged 1 commit into
masterfrom
feat/node-sqlite

Conversation

@alloevil

@alloevil alloevil commented Sep 4, 2026

Copy link
Copy Markdown
Owner

better-sqlite3 is a native addon; npm install fails wherever there's no prebuilt binary or compiler (Windows without build tools, Alpine, a new Node major). For a log viewer, install failure is the whole first impression.

node:sqlite is built into Node ≥ 22.13 and covers everything the Hermes reader uses (read-only open, prepare().all/get). engines.node and the README badge bumped to 22.13; CI already runs Node 22.

Hermes had no integration coverage — test/hermes.test.js seeds a real state.db into the temp HOME and exercises list / detail / 404 / LIKE-fallback search through the HTTP API. 124/124 tests pass with better-sqlite3 absent from node_modules. Startup no longer prints anything for the one node:sqlite ExperimentalWarning.

better-sqlite3 is a native addon: npm install fails on machines without a
compiler toolchain / prebuilt binary (Windows, Alpine, new Node majors).
node:sqlite is built into Node >= 22.13 and covers everything the Hermes
reader uses (read-only open, prepare/all/get). engines.node bumped to match.

New test/hermes.test.js seeds a real state.db in the temp HOME and covers
list / detail / 404 / LIKE-fallback search through the HTTP API; Hermes had
no integration coverage before.
@alloevil
alloevil merged commit eb4ebb1 into master Sep 4, 2026
3 checks passed
@alloevil
alloevil deleted the feat/node-sqlite branch September 4, 2026 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant