Skip to content

Commit 5ecd7b3

Browse files
chore: Move to PNPM v11 (#602)
* chore: Move to PNPM v11 * fix: pin terser-webpack-plugin to version 5.4.0 to avoid issues with swc-minify options * chore: pin node version to 24 in workflows to avoid issues with localStorage in tests
1 parent 1bf5338 commit 5ecd7b3

17 files changed

Lines changed: 2360 additions & 2050 deletions

File tree

.github/workflows/changeset.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Install Node.js
3131
uses: actions/setup-node@v6
3232
with:
33-
node-version: ">=24.0.0"
33+
node-version: "24"
3434
check-latest: true
3535
cache: pnpm
3636
cache-dependency-path: pnpm-lock.yaml
@@ -45,10 +45,10 @@ jobs:
4545
# Using SHA will usually provide cache hit on subsequent commits in a PR
4646
# but will not provide cache hits between PRs, meaning the first run of a PR
4747
# will usually only be cache misses.
48-
key: ${{ runner.os }}-turbo-changeset-${{ github.sha }}
48+
key: ${{ runner.os }}-turbo-changeset-v11-${{ github.sha }}
4949
restore-keys: |
50-
${{ runner.os }}-turbo-changeset-
51-
${{ runner.os }}-turbo-
50+
${{ runner.os }}-turbo-changeset-v11-
51+
${{ runner.os }}-turbo-v11-
5252
path: .turbo
5353

5454
- name: Build packages

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
- name: Install Node.js
3535
uses: actions/setup-node@v6
3636
with:
37-
node-version: ">=24.0.0"
37+
node-version: "24"
3838
check-latest: true
3939
cache: pnpm
4040
cache-dependency-path: pnpm-lock.yaml
@@ -49,10 +49,10 @@ jobs:
4949
# Using SHA will usually provide cache hit on subsequent commits in a PR
5050
# but will not provide cache hits between PRs, meaning the first run of a PR
5151
# will usually only be cache misses.
52-
key: ${{ runner.os }}-turbo-ci-${{ github.sha }}
52+
key: ${{ runner.os }}-turbo-ci-v11-${{ github.sha }}
5353
restore-keys: |
54-
${{ runner.os }}-turbo-ci-
55-
${{ runner.os }}-turbo-
54+
${{ runner.os }}-turbo-ci-v11-
55+
${{ runner.os }}-turbo-v11-
5656
path: .turbo
5757

5858
- name: Build packages

.github/workflows/claude.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
- name: Install Node.js
3939
uses: actions/setup-node@v6
4040
with:
41-
node-version: ">=24.0.0"
41+
node-version: "24"
4242
check-latest: true
4343
cache: pnpm
4444
cache-dependency-path: pnpm-lock.yaml
@@ -50,10 +50,10 @@ jobs:
5050
id: cache-turborepo-restore
5151
uses: actions/cache/restore@v5
5252
with:
53-
key: ${{ runner.os }}-turbo-claude-${{ github.sha }}
53+
key: ${{ runner.os }}-turbo-claude-v11-${{ github.sha }}
5454
restore-keys: |
55-
${{ runner.os }}-turbo-claude-
56-
${{ runner.os }}-turbo-
55+
${{ runner.os }}-turbo-claude-v11-
56+
${{ runner.os }}-turbo-v11-
5757
path: .turbo
5858

5959
- name: Run Claude

.github/workflows/dogfood.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Install Node.js
3131
uses: actions/setup-node@v6
3232
with:
33-
node-version: ">=24.0.0"
33+
node-version: "24"
3434
check-latest: true
3535
cache: pnpm
3636
cache-dependency-path: pnpm-lock.yaml

.github/workflows/pr-pkg.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Install Node.js
3232
uses: actions/setup-node@v6
3333
with:
34-
node-version: ">=24.0.0"
34+
node-version: "24"
3535
check-latest: true
3636
cache: pnpm
3737
cache-dependency-path: pnpm-lock.yaml
@@ -46,10 +46,10 @@ jobs:
4646
# Using SHA will usually provide cache hit on subsequent commits in a PR
4747
# but will not provide cache hits between PRs, meaning the first run of a PR
4848
# will usually only be cache misses.
49-
key: ${{ runner.os }}-turbo-pr-pkg-${{ github.sha }}
49+
key: ${{ runner.os }}-turbo-pr-pkg-v11-${{ github.sha }}
5050
restore-keys: |
51-
${{ runner.os }}-turbo-pr-pkg-
52-
${{ runner.os }}-turbo-
51+
${{ runner.os }}-turbo-pr-pkg-v11-
52+
${{ runner.os }}-turbo-v11-
5353
path: .turbo
5454

5555
- name: Build packages

.github/workflows/smoke-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Install Node.js
3737
uses: actions/setup-node@v6
3838
with:
39-
node-version: ">=24.0.0"
39+
node-version: "24"
4040
check-latest: true
4141
cache: pnpm
4242
cache-dependency-path: pnpm-lock.yaml

.github/workflows/sync-agent-skill.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
- name: Install Node.js
6363
uses: actions/setup-node@v6
6464
with:
65-
node-version: ">=24.0.0"
65+
node-version: "24"
6666
check-latest: true
6767
cache: 'pnpm'
6868

.github/workflows/update-agent-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
- name: Install Node.js
8787
uses: actions/setup-node@v6
8888
with:
89-
node-version: ">=24.0.0"
89+
node-version: "24"
9090
check-latest: true
9191
cache: 'pnpm'
9292

.github/workflows/update-dependencies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Install Node.js
3232
uses: actions/setup-node@v6
3333
with:
34-
node-version: ">=24.0.0"
34+
node-version: "24"
3535
check-latest: true
3636
cache: pnpm
3737
cache-dependency-path: pnpm-lock.yaml

agent-docs/references/ci-cd.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ The main CI workflow (`ci.yml`) runs on `ubuntu-latest` with:
4242
- Incremental builds on PRs (only diverging packages)
4343
- Full builds on main branch pushes
4444

45+
## Node version pin
46+
47+
All workflows pin `node-version: "24"` (not `">=24.0.0"`). Reason: Node 26 exposes a native global `localStorage` that returns `undefined` unless `--localstorage-file` is provided. happy-dom 20.x does not override Node's native getter, so vitest tests touching `localStorage` (e.g. `localStorage.clear()` in `beforeEach`) crash with `Cannot read properties of undefined (reading 'clear')` when CI's `setup-node` picks the latest. Revisit once happy-dom handles Node's native `localStorage` (see PR #602 / commit 51037089b for the discovery).
48+
4549
## Concurrency
4650

4751
- CI uses `ci-${{ github.ref }}` group with cancel-in-progress

0 commit comments

Comments
 (0)