Summary
package.json declares "engines": {"node": ">=18"} (package.json:118-120), but since B3-06 the pantheon_cost tool has a single backend: read-only node:sqlite, which only exists on Node >= 22.5. Users on Node 18–22 get UNSUPPORTED from pantheon_cost with no upfront warning, and doctor.mjs performs no Node version / node:sqlite availability check.
Evidence
package.json:118-120 — engines.node >= 18
CHANGELOG.md:30 + README.md:88-89 — single node:sqlite backend, UNSUPPORTED on Node < 22.5, CLI fallback removed (intentional, fail-closed)
scripts/doctor.mjs — no Node version or node:sqlite check (validated: zero references)
- Live validation on a Node runtime without
node:sqlite: pantheon_cost → UNSUPPORTED: No such built-in module: node:sqlite (honest, but nothing warned earlier in the install/doctor path)
Impact
- Misleading engines range: install succeeds on Node 18, cost tool silently unavailable
- Doctor reports 0 errors while a documented feature is dead on that runtime
Suggested fixes (non-breaking preferred)
- (a) doctor: read
process.version; if < 22.5, emit a WARNING (not error): "pantheon_cost will report UNSUPPORTED — node:sqlite requires Node >= 22.5"
- (b) Optionally probe
node:sqlite availability directly (more robust than version comparison)
- (c) Keep
engines at >=18 if the rest of the plugin supports it, but document the cost-tool requirement in the README install section
- (d) Alternative (breaking): bump engines to >=22.5 — only if Node 18 support is not intentional
Summary
package.jsondeclares"engines": {"node": ">=18"}(package.json:118-120), but since B3-06 thepantheon_costtool has a single backend: read-onlynode:sqlite, which only exists on Node >= 22.5. Users on Node 18–22 getUNSUPPORTEDfrompantheon_costwith no upfront warning, anddoctor.mjsperforms no Node version /node:sqliteavailability check.Evidence
package.json:118-120—engines.node >= 18CHANGELOG.md:30+README.md:88-89— singlenode:sqlitebackend,UNSUPPORTEDon Node < 22.5, CLI fallback removed (intentional, fail-closed)scripts/doctor.mjs— no Node version ornode:sqlitecheck (validated: zero references)node:sqlite:pantheon_cost→UNSUPPORTED: No such built-in module: node:sqlite(honest, but nothing warned earlier in the install/doctor path)Impact
Suggested fixes (non-breaking preferred)
process.version; if < 22.5, emit a WARNING (not error): "pantheon_cost will report UNSUPPORTED — node:sqlite requires Node >= 22.5"node:sqliteavailability directly (more robust than version comparison)enginesat >=18 if the rest of the plugin supports it, but document the cost-tool requirement in the README install section