Skip to content

fix: lower Node engine floor from >=20 to >=18 (PILOT-226)#5

Merged
TeoSlayer merged 1 commit into
mainfrom
openclaw/pilot-226-20260529-032959
May 29, 2026
Merged

fix: lower Node engine floor from >=20 to >=18 (PILOT-226)#5
TeoSlayer merged 1 commit into
mainfrom
openclaw/pilot-226-20260529-032959

Conversation

@matthew-pilot
Copy link
Copy Markdown
Collaborator

What failed

npm install of pilotprotocol on Node 18 emits an engine warning because package.json declares engines.node >=20.

Root cause

The engine floor was set to >=20, but the code uses no Node 20-exclusive runtime APIs. The Symbol.dispose references in src/client.ts`` gracefully degrade on Node 18 — .close()is the primary cleanup path, and theESNext.Disposable` lib is type-only.

Fix

Lower engines.node from >=20 to >=18 in package.json — 1 file, 1 line change.

Verification

  • npm run build (tsc): clean, no errors
  • npm test (vitest): 174/174 pass (7 test files)
  • Diff: git diff --stat HEAD~1 shows 1 file changed, 1 insertion(+), 1 deletion(-)
  • Tier: small ((\leq)3 files, (\leq)50 LoC)

Closes PILOT-226

The npm package declared engines.node >=20 in package.json, but the
code uses no Node 20-exclusive runtime APIs. The Symbol.dispose
references in client.ts gracefully degrade on Node 18 — the primary
cleanup path is .close(), and the ESNext.Disposable lib is a type-only
declaration. Lowering the engine floor eliminates the npm warning that
Nova hit on the default Node 18 installation.

Verified: build (tsc) clean, all 174 vitest tests pass.

Closes PILOT-226
@matthew-pilot
Copy link
Copy Markdown
Collaborator Author

🤖 PR Status Report

PR State: OPEN · MERGEABLE (CLEAN) · Not draft · No conflicts
Canary: Not configured (this repo has no canary workflow)
CI: ✅ All 2 checks passing — test ✅, security/snyk
Linked Jira: PILOT-226 — status unavailable (Jira API not reachable from this worker)
Last activity: PR created by matthew-pilot at 2026-05-29T03:31:36Z (no operator activity yet)
Files changed: 1 file — package.json (+1/−1)

@matthew-pilot
Copy link
Copy Markdown
Collaborator Author

🤖 Change Walkthrough

package.json (line 75) — 1 change, +1/−1

-    "node": ">=20"
+    "node": ">=18"

What: Lowers the Node.js engine requirement floor from ≥20 to ≥18.

Why: The SDK contains no Node 20-exclusive runtime APIs. The Symbol.dispose references in src/client.ts degrade gracefully on Node 18 — .close() is the primary cleanup path, and the ESNext.Disposable lib import is type-only. Users on Node 18 LTS (still widely deployed, EOL April 2025) currently get npm install engine warnings unnecessarily.

Impact: Zero runtime behavior change. Build (tsc) and tests (vitest, 174/174) pass cleanly. Node 18 users can install without warnings; ≥20 users are unaffected.

Tier: Small — single file, single line, no logic change.

@TeoSlayer TeoSlayer merged commit c0f4f8e into main May 29, 2026
2 checks passed
@matthew-pilot
Copy link
Copy Markdown
Collaborator Author

Merged cleanup complete.

🤖 matthew-pilot — merged-cleanup handler

@matthew-pilot matthew-pilot deleted the openclaw/pilot-226-20260529-032959 branch May 29, 2026 15:03
@matthew-pilot
Copy link
Copy Markdown
Collaborator Author

🧹 Matthew Cleanup — #5 PILOT-226

✅ Merged by TeoSlayer at 2026-05-29T14:32:41Z
✅ Branch openclaw/pilot-226-20260529-032959 deleted

This PR lowered the Node engine floor from >=20 to >=18. Task complete.

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.

2 participants