You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
d924231b95e91c8c25e073292d5f01b5a8549b97 (current main on 2026-08-28)
Operating system
Cross-platform; reproduced with Node.js 22.13.1 and Node-API 9
Agent or runtime
Node.js 22.x/23.x, pnpm workspace installation, and the better-sqlite3 binding built for Node-API 10
What happened?
The root workspace declares Node.js >=22.0.0, while both SQLite-owning packages require at least Node 22.14.0. A root install can therefore admit Node 22.0-22.13. The simple lower-bound range also admits Node 23.0-23.5, where Node-API 10 is not yet available. In those runtimes the native SQLite binding can fail before Lody can provide a useful diagnostic.
The pinned pnpm 10.20.0 also does not reliably turn the root devEngines.runtime.onFail: error setting into a hard installation failure, so the manifest warning is not a sufficient guard by itself.
What did you expect?
The root workspace and SQLite-owning packages should express the same Node-API 10 compatibility boundary, and dependency installation should stop with a clear error before loading the native binding on unsupported runtimes.
How can we reproduce it?
Use Node.js 22.13.1, which reports process.versions.napi as 9.
Run the root workspace installation with the repository-pinned pnpm.
Observe that the current root >=22.0.0 declaration admits the runtime even though the CLI packages require 22.14+ and the SQLite binding requires Node-API 10.
Attempt to load the SQLite-backed CLI path and observe that failure occurs at the native runtime boundary instead of during installation with an actionable message.
An implementation already exists in #72. That PR was opened on 2026-08-27, before the contribution-intake policy in #91 merged on 2026-08-28. I am not treating this issue as retroactive approval. I am asking a Lody maintainer to explicitly confirm whether this approach is acceptable: use the exact Node-API 10 semver boundary (>=22.14.0 <23 || >=23.6.0) consistently, add a package-manager-independent preinstall guard based on process.versions.napi, retain the existing pnpm 10.20.0 pin, and cover the manifest/runtime contract with focused tests. PR #60 has since merged an initial "22.14 or later" quickstart prerequisite; because that wording includes unsupported Node 23.0-23.5, the prepared follow-up also narrows the English, Chinese, and tracked compatibility text to 22.14-22.x or 23.6+ (Node-API 10+). I will not push the prepared follow-up until explicit maintainer agreement is recorded. If a maintainer prefers a narrower manifest-only fix or does not want the change, I will adjust or close the PR.
Before submitting
I searched the existing issues and did not find a duplicate.
This report concerns an open-source component in this repository, not a hosted service, Web or mobile app, account, or billing issue.
This is not a security vulnerability; security reports follow the repository's security policy.
I removed credentials, private source, conversations, prompts, personal data, and other sensitive information.
If I plan to submit a pull request, I will wait for a Lody maintainer to explicitly agree on the scope and approach before implementation.
Affected area
Build / packaging
Installation method
Built from source
Lody version or commit
d924231b95e91c8c25e073292d5f01b5a8549b97(currentmainon 2026-08-28)Operating system
Cross-platform; reproduced with Node.js 22.13.1 and Node-API 9
Agent or runtime
Node.js 22.x/23.x, pnpm workspace installation, and the
better-sqlite3binding built for Node-API 10What happened?
The root workspace declares Node.js
>=22.0.0, while both SQLite-owning packages require at least Node 22.14.0. A root install can therefore admit Node 22.0-22.13. The simple lower-bound range also admits Node 23.0-23.5, where Node-API 10 is not yet available. In those runtimes the native SQLite binding can fail before Lody can provide a useful diagnostic.The pinned pnpm 10.20.0 also does not reliably turn the root
devEngines.runtime.onFail: errorsetting into a hard installation failure, so the manifest warning is not a sufficient guard by itself.What did you expect?
The root workspace and SQLite-owning packages should express the same Node-API 10 compatibility boundary, and dependency installation should stop with a clear error before loading the native binding on unsupported runtimes.
How can we reproduce it?
process.versions.napias 9.>=22.0.0declaration admits the runtime even though the CLI packages require 22.14+ and the SQLite binding requires Node-API 10.How often does it happen?
Every time
Relevant log output
Additional context
An implementation already exists in #72. That PR was opened on 2026-08-27, before the contribution-intake policy in #91 merged on 2026-08-28. I am not treating this issue as retroactive approval. I am asking a Lody maintainer to explicitly confirm whether this approach is acceptable: use the exact Node-API 10 semver boundary (
>=22.14.0 <23 || >=23.6.0) consistently, add a package-manager-independent preinstall guard based onprocess.versions.napi, retain the existing pnpm 10.20.0 pin, and cover the manifest/runtime contract with focused tests. PR #60 has since merged an initial "22.14 or later" quickstart prerequisite; because that wording includes unsupported Node 23.0-23.5, the prepared follow-up also narrows the English, Chinese, and tracked compatibility text to 22.14-22.x or 23.6+ (Node-API 10+). I will not push the prepared follow-up until explicit maintainer agreement is recorded. If a maintainer prefers a narrower manifest-only fix or does not want the change, I will adjust or close the PR.Before submitting