Skip to content

Commit 0988a0d

Browse files
JuliaEdomclaude
andcommitted
fix(sdk-ts): raise engines floor to Node >=20 (audit F-11)
The new sdk-ts-compat lane immediately proved the declared >=18 floor untestable: Vitest 4 imports util.styleText, which Node 18 does not provide. Node 18 is end-of-life, so the floor rises honestly instead of pinning an older toolchain; the required sdk-ts job covers Node 20 and the compat lane covers 22. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 2673f42 commit 0988a0d

3 files changed

Lines changed: 14 additions & 6 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -522,17 +522,19 @@ jobs:
522522
- name: Verify package is publishable
523523
run: npm pack --dry-run
524524

525-
# Audit F-11: package.json declares engines.node >=18 but CI exercised only
526-
# Node 20. This lane backs the declared floor (18) and the next LTS (22)
527-
# without touching the required "sdk-ts" context above — a matrix inside
528-
# that job would rename its check context and break branch protection.
525+
# Audit F-11: CI must exercise every Node version the package claims. The
526+
# first run of this lane proved the old ">=18" engines floor untestable
527+
# (Vitest 4 needs util.styleText, absent on Node 18), so the floor was
528+
# honestly raised to ">=20": the required "sdk-ts" job covers 20, this lane
529+
# covers the next LTS. A matrix inside the required job would rename its
530+
# check context and break branch protection.
529531
sdk-ts-compat:
530532
runs-on: ubuntu-latest
531533
timeout-minutes: 15
532534
strategy:
533535
fail-fast: false
534536
matrix:
535-
node-version: ["18", "22"]
537+
node-version: ["22"]
536538
defaults:
537539
run:
538540
working-directory: sdk-ts

‎sdk-ts/CHANGELOG.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ Deprecation policy:
1313

1414
## [Unreleased]
1515

16+
### Changed
17+
- `engines.node` floor raised from `>=18` to `>=20` (audit F-11). Node 18 is
18+
end-of-life and the SDK toolchain (Vitest 4) needs `util.styleText`, which
19+
Node 18 lacks — CI proved the declared 18 floor was untestable. CI now
20+
exercises Node 20 (required lane) and 22 (compat lane).
21+
1622
### Added
1723
- `RetryPolicy` with exponential backoff, jitter, and `Retry-After` support for transient SDK failures
1824
- `CircuitBreaker`, `CircuitState`, and `CircuitOpenError` exports for repeated backend failure protection

‎sdk-ts/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"directory": "sdk-ts"
4040
},
4141
"engines": {
42-
"node": ">=18"
42+
"node": ">=20"
4343
},
4444
"devDependencies": {
4545
"typescript": "^7.0.2",

0 commit comments

Comments
 (0)