Commit e47b342
Every published package declared engines.node ">=18.0.0". Node 18 reached
end-of-life on 2025-04-30 and Node 20 on 2026-04-30, so the compatibility
promise covered two runtimes nobody patches -- and, after #3830 moved CI to Node
22, two runtimes nothing in this repo verifies.
That left the promise and the evidence with no overlap at all:
CI validates every PR on ......................... 22
release.yml publishes from ....................... 22
every shipped Docker image runs ................... 22
engines.node promised users ...................... >=18
engines.node is now ">=22.0.0" across all 50 manifests -- the only runtime the
packages are built, tested and shipped on.
Node 24 (Active LTS since 2025-10-28) and Node 26 both satisfy the new range, so
anyone on 22+ is unaffected. npm/pnpm surface an unsatisfied engines as an
EBADENGINE warning rather than a hard failure, so existing installs on 18/20 do
not break the moment this lands -- but those runtimes are no longer tested, and
the failures are the kind that do not announce themselves (#3812: a native
dependency whose engines required a newer Node loaded anyway on the older one,
then killed the test worker at the process level with no JS error and a summary
that still said "passed").
The "Node 18+" prerequisite was restated in ten user-facing places (README,
CONTRIBUTING, the getting-started and deployment docs, the todo example, and the
objectstack-platform skill's compatibility field); all now say 22. A half-done
rename is worse than none. Changelogs and ADRs are historical records and were
left alone.
Shipped as a changesets `major`. The repo is in pre-release (rc) mode, where the
no-major guard stands aside by design -- accumulating breaking changes is what
the RC window is for -- so this does not block other PRs. Four other majors are
already pending in the same window.
Verified on Node 22: full build 71/71 and full test suite 129/129, both with
zero cache hits, 16921 tests declared and all 16921 accounted for.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
1 parent f35cdc5 commit e47b342
61 files changed
Lines changed: 114 additions & 60 deletions
File tree
- .changeset
- apps/docs
- content/docs
- deployment
- getting-started
- examples/app-todo
- packages
- adapters/hono
- apps
- account
- setup
- studio
- client-react
- client
- cli
- cloud-connection
- core
- create-objectstack
- lint
- mcp
- metadata-core
- metadata-fs
- metadata-protocol
- metadata
- objectql
- observability
- platform-objects
- plugins
- driver-memory
- driver-mongodb
- driver-sqlite-wasm
- driver-sql
- plugin-audit
- plugin-auth
- plugin-dev
- plugin-hono-server
- plugin-security
- rest
- runtime
- services
- service-analytics
- service-automation
- service-cache
- service-i18n
- service-job
- service-knowledge
- service-messaging
- service-package
- service-queue
- service-realtime
- service-settings
- service-storage
- spec
- triggers
- trigger-record-change
- trigger-schedule
- types
- verify
- vscode-objectstack
- skills/objectstack-platform
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
0 commit comments