fix(server-version): drop the stale store version floor from /v1/version #1439
tests.yml
on: pull_request
Release actor guard
0s
UI E2E (WSREPL Lima matrix)
0s
Mobile E2E (Maestro) (android) (opt-in)
0s
Mobile E2E (Maestro) (ios) (opt-in)
0s
UI Tests (unit + integration)
24m 31s
Shared Package Unit Tests
10m 58s
Server Tests (unit + integration)
20m 15s
Server DB Contract (Postgres)
12m 32s
CLI Tests (unit + integration)
11m 52s
Stack Tests (unit + integration)
20m 16s
Release Contracts
12m 1s
Installer Smoke (Linux)
11m 56s
Installer Smoke (macOS)
7m 36s
Installer Smoke (Windows)
12m 5s
Binary Smoke (isolated cwd)
20m 46s
Release Validation — CLI Update Continuity (Linux)
0s
Release Validation — Daemon Continuity (Linux)
0s
Release Validation — Session Continuity (Linux)
0s
Release Assets Docker (Linux)
0s
Self-Host E2E (Linux systemd)
0s
Self-Host E2E (macOS launchd)
0s
Self-Host E2E (Windows schtasks)
0s
Typecheck
10m 51s
CLI + Server (light/sqlite) E2E
14m 6s
Core E2E (fast, packages/tests, server-light, sqlite)
24m 21s
Core E2E (slow, packages/tests, server-light, sqlite)
0s
Stress (repeat/chaos)
0s
Matrix: Self-Host + Daemon E2E
Matrix: ui-e2e
Providers (contract matrix)
Annotations
38 errors and 17 warnings
|
Installer Smoke (macOS)
Process completed with exit code 1.
|
|
Typecheck
Process completed with exit code 1.
|
|
CLI Tests (unit + integration)
Process completed with exit code 1.
|
|
Installer Smoke (Windows)
Process completed with exit code 1.
|
|
CLI + Server (light/sqlite) E2E
Process completed with exit code 1.
|
|
src/daemon/daemon.integration.test.ts > Daemon Integration Tests > should handle concurrent session operations:
apps/cli/src/daemon/daemon.integration.test.ts#L656
AssertionError: expected undefined to be defined
❯ src/daemon/daemon.integration.test.ts:656:29
❯ src/daemon/daemon.integration.test.ts:654:13
|
|
src/daemon/daemon.integration.test.ts > Daemon Integration Tests > should update session metadata when webhook is called:
apps/cli/src/testkit/async/waitFor.ts#L23
Error: Timed out waiting for session metadata webhook propagation after 30000ms
❯ waitForCondition src/testkit/async/waitFor.ts:23:11
❯ waitForSessionById src/daemon/daemon.integration.test.ts:297:3
❯ src/daemon/daemon.integration.test.ts:609:5
|
|
src/daemon/daemon.integration.test.ts > Daemon Integration Tests > should track both daemon-spawned and terminal sessions:
apps/cli/src/daemon/daemon.integration.test.ts#L585
AssertionError: expected undefined to be defined
❯ src/daemon/daemon.integration.test.ts:585:27
|
|
src/daemon/daemon.integration.test.ts > Daemon Integration Tests > should spawn & stop a session via HTTP (not testing RPC route, but similar enough):
apps/cli/src/daemon/daemon.integration.test.ts#L510
AssertionError: expected { success: true, …(4) } to have property "sessionId"
❯ src/daemon/daemon.integration.test.ts:510:22
|
|
Stack Tests (unit + integration)
The job has exceeded the maximum execution time of 20m0s
|
|
Stack Tests (unit + integration)
The operation was canceled.
|
|
Server Tests (unit + integration)
The job has exceeded the maximum execution time of 20m0s
|
|
Server Tests (unit + integration)
The operation was canceled.
|
|
Core E2E (fast, packages/tests, server-light, sqlite)
Process completed with exit code 1.
|
|
suites/core-e2e/sessionAgent.spawnActions.test.ts > core e2e: session-agent spawn actions > exposes session.spawn_new to session agents, honors Off settings, and forwards rich inherited spawn options:
packages/tests/suites/core-e2e/sessionAgent.spawnActions.test.ts#L249
AssertionError: expected last "spy" call to have been called with [ ObjectContaining{…} ]
- Expected
+ Received
@@ -1,7 +1,7 @@
[
- ObjectContaining {
+ {
"backendTarget": {
"agentId": "claude",
"kind": "builtInAgent",
},
"connectedServices": {
@@ -14,11 +14,10 @@
},
"v": 1,
},
"connectedServicesUpdatedAt": 1700000000003,
"directory": "/home/runner/work/happier/happier/.project/logs/e2e/2026-08-02T20-47-58-405Z-core-66bfe494/session-agent-spawn-actions-d4c80775-d46f-4338-b502-536e9a3f40cc/workspace",
- "initialPrompt": "Use inherited parent context.",
"machineId": "machine-local",
"mcpSelection": {
"forceExcludeServerIds": [
"secret-env-server",
],
@@ -27,10 +26,15 @@
],
"managedServersEnabled": false,
"v": 1,
},
"modelId": "claude-opus-parent",
+ "modelUpdatedAt": 1700000000002,
+ "pendingFirstInput": {
+ "localId": "spawn-first:c6880f454a5ab34b850cc5d59c031af1fd1be0cbdcc27890891bec950d86caa4",
+ "text": "Use inherited parent context.",
+ },
"permissionMode": "safe-yolo",
"permissionModeUpdatedAt": 1700000000001,
"profileId": "parent-profile",
"sessionConfigOptionOverrides": {
"overrides": {
@@ -44,7 +48,8 @@
},
},
"updatedAt": 1700000000100,
"v": 1,
},
+ "spawnNonce": "session.spawn_new:sess_parent_04eafe38-a29a-4744-a415-54e63c4ba6c3:3",
},
]
❯ suites/core-e2e/sessionAgent.spawnActions.test.ts:249:34
|
|
suites/core-e2e/pendingQueue.socket.pendingChanged.test.ts > core e2e: pending queue v2 emits pending-changed socket updates > broadcasts pending-changed on materialize-next via socket RPC:
packages/tests/suites/core-e2e/pendingQueue.socket.pendingChanged.test.ts#L165
AssertionError: expected false to be true // Object.is equality
- Expected
+ Received
- true
+ false
❯ suites/core-e2e/pendingQueue.socket.pendingChanged.test.ts:165:23
|
|
suites/core-e2e/pendingQueue.materialize.socketRpc.test.ts > core e2e: pending queue v2 materialize via socket RPC > materializes queued items in order and clears pendingCount:
packages/tests/suites/core-e2e/pendingQueue.materialize.socketRpc.test.ts#L90
Error: pending-materialize-next failed: invalid-params
❯ suites/core-e2e/pendingQueue.materialize.socketRpc.test.ts:90:17
|
|
suites/core-e2e/pendingQueue.materialize.idempotency.test.ts > core e2e: pending queue v2 materialize idempotency > de-dupes when transcript already contains pending localId (drains pending without duplicating message):
packages/tests/suites/core-e2e/pendingQueue.materialize.idempotency.test.ts#L74
AssertionError: expected 400 to be 200 // Object.is equality
- Expected
+ Received
- 200
+ 400
❯ suites/core-e2e/pendingQueue.materialize.idempotency.test.ts:74:30
|
|
suites/core-e2e/executionRuns.review.triage.feat.execution.runs.e2e.test.ts > core e2e: execution runs (review) supports triage updates > emits review_findings.v2 meta and allows review.triage action overlay:
packages/tests/src/testkit/timing.ts#L48
Error: Timed out waiting for condition
❯ waitFor src/testkit/timing.ts:48:9
❯ waitForFakeClaudeObservedPrompt suites/core-e2e/executionRuns.review.triage.feat.execution.runs.e2e.test.ts:42:3
❯ suites/core-e2e/executionRuns.review.triage.feat.execution.runs.e2e.test.ts:269:33
|
|
suites/core-e2e/encryption.plaintextStorage.pendingQueueV2.materialize.roundtrip.feat.encryption.plaintextStorage.feat.sharing.pendingQueueV2.e2e.test.ts > core e2e: plaintext pending queue v2 materialize-next > enqueues and materializes plaintext pending items into plaintext transcript messages:
packages/tests/suites/core-e2e/encryption.plaintextStorage.pendingQueueV2.materialize.roundtrip.feat.encryption.plaintextStorage.feat.sharing.pendingQueueV2.e2e.test.ts#L99
AssertionError: expected 400 to be 200 // Object.is equality
- Expected
+ Received
- 200
+ 400
❯ suites/core-e2e/encryption.plaintextStorage.pendingQueueV2.materialize.roundtrip.feat.encryption.plaintextStorage.feat.sharing.pendingQueueV2.e2e.test.ts:99:32
|
|
suites/core-e2e/directSessions.claude.browseTail.feat.sessions.direct.e2e.test.ts > core e2e: direct Claude sessions browse/link/tail > converts a linked direct Claude session to persisted mode and resumes it through the persisted runner:
packages/tests/src/testkit/fakeClaude.ts#L147
Error: Timed out waiting for fake Claude invocation | logPath=/home/runner/work/happier/happier/.project/logs/e2e/2026-08-02T20-45-52-643Z-core-b27fea26/direct-sessions-claude-takeover-persist/fake-claude.jsonl | exists=true | invocations=3 | matchesNow=false | last={"invocationId":"fake-claude-a45045b1-4166-4f97-94a4-b1ae9ffe0367","mode":"local","argvHead":["--output-format","stream-json","--verbose","--max-turns","1","--print","hello"],"argvHasSettings":false}
❯ waitForFakeClaudeInvocation src/testkit/fakeClaude.ts:147:9
❯ suites/core-e2e/directSessions.claude.browseTail.feat.sessions.direct.e2e.test.ts:443:35
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > keeps the original web prepend anchor through non-trusted restore scroll events:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L7865
AssertionError: expected "spy" to be called 1 times, but got 0 times
❯ __vi_import_1__.withRenderedFlashListChatListWebScroller.initialFill sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7865:58
❯ withFlashListChatListWebScrollerDom sources/dev/testkit/harness/chatListHarness.ts:922:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7847:13
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7796:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > keeps retrying web prepend index recovery until the original anchor remounts:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L7770
AssertionError: expected "spy" to be called 2 times, but got 0 times
❯ __vi_import_1__.withRenderedFlashListChatListWebScroller.initialFill sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7770:58
❯ withFlashListChatListWebScrollerDom sources/dev/testkit/harness/chatListHarness.ts:922:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7752:13
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7705:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > recovers the captured web prepend item when scrollHeight growth overshoots the original viewport anchor:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L7668
AssertionError: expected "spy" to be called with arguments: [ +0 ]
Number of calls: 0
❯ __vi_import_1__.withRenderedFlashListChatListWebScroller.initialFill sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7668:54
❯ withFlashListChatListWebScrollerDom sources/dev/testkit/harness/chatListHarness.ts:922:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7650:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > materializes the exact keyed web prepend row after grow-collapse commits without applying gross height growth:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L7547
AssertionError: expected "spy" to be called with arguments: [ { index: +0, animated: false } ]
Received:
1st spy call:
[
{
"animated": false,
"index": 0,
+ "viewOffset": 40,
+ "viewPosition": 0,
},
]
Number of calls: 1
❯ __vi_import_1__.withRenderedFlashListChatListWebScroller.initialFill sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7547:62
❯ withFlashListChatListWebScrollerDom sources/dev/testkit/harness/chatListHarness.ts:922:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7527:13
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:7488:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > preserves the web viewport when older messages prepend above the current scroll position:
apps/ui/sources/dev/testkit/transcript/viewportTelemetryAssertions.ts#L174
Error: WREG telemetry diagnostics missing required web pagination/restore fields:
- missing firstVisibleAnchorTestId :: t=1785703513467 restore-decision mode=follow-bottom reason=restored offset=0 session=session:1
- missing firstVisibleAnchorTestId :: t=1785703513469 restore-decision mode=restore-anchor reason=pending session=session:1
- missing firstVisibleAnchorTestId :: t=1785703513469 restore-decision mode=restore-distance reason=restored session=session:1
❯ Module.assertWebWregDiagnostics sources/dev/testkit/transcript/viewportTelemetryAssertions.ts:174:11
❯ __vi_import_1__.withFlashListChatListWebScrollerDom.document.getElementById sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6653:17
❯ Module.withFlashListChatListWebScrollerDom sources/dev/testkit/harness/chatListHarness.ts:922:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6611:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > shows the older-load spinner after the spinner delay while a user-triggered older load is in flight:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L6248
AssertionError: expected 2 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 2
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6248:59
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6209:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > keeps older-load progress out of scrollable header geometry during prepend loading:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L6202
AssertionError: expected 2 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 2
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6202:59
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6158:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > shows the older-load spinner when proactive prefetch is slow:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L6153
AssertionError: expected 2 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 2
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6153:59
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:6109:9
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > keeps web first-visible diagnostics when viewport telemetry is enabled:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L5505
AssertionError: expected "spy" to be called with arguments: [ ObjectContaining{…} ]
Received:
1st spy call:
[
- ObjectContaining {
- "firstVisibleAnchorTestId": "none",
+ {
+ "anchorCorrectionAttempt": undefined,
+ "anchorCorrectionTargetOffsetY": undefined,
+ "anchorDeltaPx": undefined,
+ "anchorIndex": undefined,
+ "anchorItemOffsetPx": undefined,
+ "anchorObservedItemOffsetPx": undefined,
+ "anchorRestoreViewOffset": undefined,
+ "coldCount": 1,
+ "contentHeight": 1200,
+ "distanceFromBottom": 0,
+ "domClientHeight": 600,
+ "domScrollHeight": 1200,
+ "domScrollTop": 600,
+ "flashListContentHeight": 1200,
+ "flashListLayoutHeight": 600,
+ "hotCount": 0,
+ "layoutHeight": 600,
+ "listImplementation": "flash_v2",
+ "mode": "follow-bottom",
+ "offsetY": 600,
+ "paginationPhase": "idle",
+ "paginationSuspendedReasons": [],
+ "pendingWebPrependAnchorKind": "none",
+ "platform": "web",
+ "programmaticWebWrite": false,
+ "reason": "observed",
+ "scrollable": false,
+ "sessionId": "session:1",
+ "timestampMs": 1785703481587,
+ "trigger": "scroll",
"type": "scroll-observed",
},
]
Number of calls: 1
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:5505:31
|
|
sources/components/sessions/transcript/ChatList.flashListV2.test.tsx > ChatList (FlashList v2) > restores a native unpinned session after many intervening session opens without leaking another viewport:
apps/ui/sources/components/sessions/transcript/ChatList.flashListV2.test.tsx#L3296
AssertionError: expected last "spy" call to have been called with [ { offset: 500, animated: false } ]
- Expected:
[
{
"animated": false,
"offset": 500,
},
]
+ Received:
undefined
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:3296:36
❯ withWebFlashListFakeTimers sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:239:16
❯ sources/components/sessions/transcript/ChatList.flashListV2.test.tsx:3226:9
|
|
UI E2E (Playwright) / shard 3/3
Canceling since a higher priority waiting request for CI — Tests-refs/pull/222/merge exists
|
|
UI E2E (Playwright) / shard 3/3
The operation was canceled.
|
|
UI E2E (Playwright) / shard 2/3
Canceling since a higher priority waiting request for CI — Tests-refs/pull/222/merge exists
|
|
UI E2E (Playwright) / shard 2/3
The operation was canceled.
|
|
CI — Tests
Canceling since a higher priority waiting request for CI — Tests-refs/pull/222/merge exists
|
|
UI E2E (Playwright) / shard 1/3
Canceling since a higher priority waiting request for CI — Tests-refs/pull/222/merge exists
|
|
UI E2E (Playwright) / shard 1/3
The operation was canceled.
|
|
Installer Smoke (macOS)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Shared Package Unit Tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
CLI Tests (unit + integration)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Installer Smoke (Linux)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Release Contracts
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Installer Smoke (Windows)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Server DB Contract (Postgres)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
CLI + Server (light/sqlite) E2E
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Stack Tests (unit + integration)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Server Tests (unit + integration)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Binary Smoke (isolated cwd)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Core E2E (fast, packages/tests, server-light, sqlite)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
UI Tests (unit + integration)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
UI E2E (Playwright) / shard 3/3
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, dorny/paths-filter@v3. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
UI E2E (Playwright) / shard 2/3
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, dorny/paths-filter@v3. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
UI E2E (Playwright) / shard 1/3
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, dorny/paths-filter@v3. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
core-e2e-artifacts-fast-sqlite
|
212 MB |
sha256:f3189ecddc72c6dc251b0b33d16354e036202e4742e65ebb3b705e812564d6dc
|
|