Skip to content

chore: upstream reconcile through reference 99eaa993b #1389

chore: upstream reconcile through reference 99eaa993b

chore: upstream reconcile through reference 99eaa993b #1389

Triggered via pull request September 19, 2026 19:05
Status Failure
Total duration 14m 5s
Artifacts –

ci.yml

on: pull_request
Matrix: test
Fit to window
Zoom out
Zoom in

Annotations

44 errors, 20 warnings, and 11 notices
test (1)
Process completed with exit code 1.
[cli] test/cli/upgrade.test.ts > handleUpgrade > prints the manual update command without prompting when not interactive, and installs directly with yes: apps/pythinker-code/test/cli/upgrade.test.ts#L220
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times Received: 1st vi.fn() call: Array [ "npm-global", "0.5.0", "darwin", ] Number of calls: 1 ❯ test/cli/upgrade.test.ts:220:36
[cli] test/cli/run-shell.test.ts > runShell > tracks exit and prints resume instructions from the TUI exit handler: apps/pythinker-code/test/cli/run-shell.test.ts#L839
AssertionError: expected "vi.fn()" to be called with arguments: [ [ Socket{ …(22), …(15) }, …(1) ] ] Number of calls: 0 ❯ test/cli/run-shell.test.ts:839:32
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > removes stored stdio environment variables when the structured edit omits them: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:816:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > removes stored stdio arguments when the structured edit omits them: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:786:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > preserves existing HTTP MCP headers when the released form updates the server: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:757:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > replaces a stdio credential when the Webview submits a new literal value: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:727:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > replaces an HTTP credential when the Webview submits a new literal value: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:697:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > preserves an unchanged masked stdio credential in the host configuration: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:648:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > preserves an unchanged masked HTTP credential without exposing it in the response or broadcast: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:596:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > keeps project-layer servers in the list refreshed after every mutation: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.listGlobalMcpServers ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2511:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > passes the management-plane tags through to the Webview payload: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:509:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > masks credential-valued MCP fields at the Webview list boundary while leaving ordinary values visible: packages/node-sdk/src/sdk-rpc-client-v2.ts#L2829
PythinkerError: MCP management is disabled; enable the mcp-management experimental flag ❯ restateEngineError ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2829:10 ❯ SDKRpcClientV2.mcpManagement ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2504:13 ❯ SDKRpcClientV2.addGlobalMcpServer ../../packages/node-sdk/src/sdk-rpc-client-v2.ts:2554:21 ❯ test/pythinker-harness.integration.test.ts:459:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'request.invalid', details: undefined }
[agent-gateway] test/prompts.test.ts > server-v2 /api/v1 prompts > attaches a server-local file by path without copying it: packages/agent-gateway/test/prompts.test.ts#L1451
AssertionError: expected { type: 'text', …(1) } to deeply equal { type: 'text', …(1) } - Expected + Received { - "text": "Attached file \"notes.txt\" (application/octet-stream, 20 bytes): /tmp/pythinker-attach-path-TRRwu6/notes.txt open it with the Read tool", + "text": "Attached file \"notes.txt\" (application/octet-stream, 20 bytes): /tmp/pythinker-attach-path-TRRwu6/notes.txt — open it with the Read tool", "type": "text", } ❯ test/prompts.test.ts:1451:26
[agent-gateway] test/prompts.test.ts > server-v2 /api/v1 prompts > sanitizes an attachment file name before materializing it: packages/agent-gateway/test/prompts.test.ts#L1320
AssertionError: expected null not to be null ❯ attachedPathFrom test/prompts.test.ts:1320:23 ❯ test/prompts.test.ts:1425:26
[agent-gateway] test/prompts.test.ts > server-v2 /api/v1 prompts > persists an inline base64 image in an unsupported format as a path-referenced attachment: packages/agent-gateway/test/prompts.test.ts#L1320
AssertionError: expected null not to be null ❯ attachedPathFrom test/prompts.test.ts:1320:23 ❯ test/prompts.test.ts:1404:26
[agent-gateway] test/prompts.test.ts > server-v2 /api/v1 prompts > materializes an uploaded SVG image as a path-referenced attachment: packages/agent-gateway/test/prompts.test.ts#L1320
AssertionError: expected null not to be null ❯ attachedPathFrom test/prompts.test.ts:1320:23 ❯ test/prompts.test.ts:1371:26
[agent-gateway] test/prompts.test.ts > server-v2 /api/v1 prompts > materializes an arbitrary file attachment into the session attachments dir: packages/agent-gateway/test/prompts.test.ts#L1320
AssertionError: expected null not to be null ❯ attachedPathFrom test/prompts.test.ts:1320:23 ❯ test/prompts.test.ts:1346:26
[agent-gateway] test/codex-login.test.ts > Codex login routes > maps invalid input and unknown login ids to stable wire codes: packages/agent-gateway/test/codex-login.test.ts#L129
AssertionError: expected { …(3) } to match object { code: 40001 } (3 matching properties omitted from actual) - Expected + Received { - "code": 40001, + "error": "Not Found", + "message": "Route POST:/api/v1/auth/codex/login-1:submit_code not found", + "statusCode": 404, } ❯ test/codex-login.test.ts:129:28
[agent-gateway] test/codex-login.test.ts > Codex login routes > matches the web start, poll, submit, and cancel contract: packages/agent-gateway/test/codex-login.test.ts#L86
AssertionError: expected { …(3) } to match object { code: +0, data: { …(2) } } (3 matching properties omitted from actual) - Expected + Received { - "code": 0, - "data": { - "login_id": "login-1", - "loopback": true, - }, + "error": "Not Found", + "message": "Route POST:/api/v1/auth/codex:start not found", + "statusCode": 404, } ❯ test/codex-login.test.ts:86:26
[agent-gateway] test/boot.test.ts > server-v2 boot > seeds default Pythinker identity headers from hostIdentity that opts.seeds can override: packages/agent-gateway/test/boot.test.ts#L136
AssertionError: expected undefined to be '0.0.0-test' // Object.is equality - Expected: "0.0.0-test" + Received: undefined ❯ test/boot.test.ts:136:47
[agent-gateway] test/boot.test.ts > server-v2 boot > boots agent-core-v2 and serves the basic /api/v1 routes: packages/agent-gateway/test/boot.test.ts#L84
AssertionError: expected 404 to be 200 // Object.is equality - Expected + Received - 200 + 404 ❯ test/boot.test.ts:84:30
[pythinker-sdk] test/sdk-rpc-client-v2.test.ts > SDKRpcClientV2 (agent-core-v2 wiring) > seeds the host request headers (User-Agent + X-Msh-*) into the engine: packages/node-sdk/test/sdk-rpc-client-v2.test.ts#L355
AssertionError: expected undefined to be 'pythinker_code_cli' // Object.is equality - Expected: "pythinker_code_cli" + Received: undefined ❯ test/sdk-rpc-client-v2.test.ts:355:41
[cli] test/tui/pythinker-tui-message-flow.test.ts > PythinkerTUI message flow > uploads session logs when codebase scanning fails but the session directory is available: apps/pythinker-code/test/tui/pythinker-tui-message-flow.test.ts#L2466
AssertionError: expected "vi.fn()" to be called with arguments: [ ObjectContaining{…} ] Number of calls: 0 ❯ test/tui/pythinker-tui-message-flow.test.ts:2466:35
[cli] test/tui/pythinker-tui-message-flow.test.ts > PythinkerTUI message flow > waits for the codebase upload to finish before returning: apps/pythinker-code/test/tui/pythinker-tui-message-flow.test.ts#L2420
AssertionError: expected "vi.fn()" to be called 2 times, but got 0 times ❯ test/tui/pythinker-tui-message-flow.test.ts:2420:29
[cli] test/tui/pythinker-tui-message-flow.test.ts > PythinkerTUI message flow > submits text feedback before preparing requested attachments: apps/pythinker-code/test/tui/pythinker-tui-message-flow.test.ts#L2350
AssertionError: expected "vi.fn()" to be called with arguments: [ ObjectContaining{…} ] Number of calls: 0 ❯ test/tui/pythinker-tui-message-flow.test.ts:2350:37
[cli] test/tui/pythinker-tui-message-flow.test.ts > PythinkerTUI message flow > prints the sign-up page and GitHub Issues links when not signed in: apps/pythinker-code/test/tui/pythinker-tui-message-flow.test.ts#L2250
AssertionError: expected ' You\'re not signed in. Sign up or …' to contain 'https://www.code.pythinker.com' - Expected + Received - https://www.code.pythinker.com + You're not signed in. Sign up or leave feedback on GitHub: + https://www.pythinker.com/code + https://github.com/PyModel/pythinker-code/issues ❯ test/tui/pythinker-tui-message-flow.test.ts:2250:24
[cli] test/migration/migration-screen.test.ts > MigrationScreenComponent — result phase > lists sibling-file contents in the config-fallback warning so the user knows what to merge: apps/pythinker-code/test/migration/migration-screen.test.ts#L515
AssertionError: expected '─────────────────────────────────────…' to contain 'config.migrated-from-pythinker-cli.to…' - Expected + Received - config.migrated-from-pythinker-cli.toml + ──────────────────────────────────────────────────────────────────────────────── + Migration complete + + ✓ 50 sessions migrated + ✓ config · REPL history + ⚠ 2 pythinker-cli plugins — not yet supported for migration + ⚠ config.toml could not be parsed — review config.migrated-from-pythinker-c... + contains: 2 providers, 1 model, 3 hooks + + Old data kept at /x/.pythinker — pythinker-cli still works. + + ⏎ continue to pythinker-code + ──────────────────────────────────────────────────────────────────────────────── ❯ test/migration/migration-screen.test.ts:515:17
[cli] test/migration/migration-screen.test.ts > MigrationScreenComponent — result phase > surfaces conflict and failure warnings on the result screen: apps/pythinker-code/test/migration/migration-screen.test.ts#L470
AssertionError: expected '─────────────────────────────────────…' to contain 'config.migrated-from-pythinker-cli.to…' - Expected + Received - config.migrated-from-pythinker-cli.toml + ──────────────────────────────────────────────────────────────────────────────── + Migration complete + + ✓ 50 sessions migrated + ✓ config · MCP · REPL history + ⚠ 2 pythinker-cli plugins — not yet supported for migration + ⚠ config.toml could not be parsed — review config.migrated-from-pythinker-c... + ⚠ mcp.json unreadable — review mcp.migrated-from-pythinker-cli.json + ⚠ 1 sessions failed to migrate + + Old data kept at /x/.pythinker — pythinker-cli still works. + + ⏎ continue to pythinker-code + ──────────────────────────────────────────────────────────────────────────────── ❯ test/migration/migration-screen.test.ts:470:17
[cli] test/cli/options.test.ts > CLI options parsing > sub-commands > registers the visible sub-commands: apps/pythinker-code/test/cli/options.test.ts#L583
AssertionError: expected [ 'export', 'fork', 'provider', …(11) ] to deeply equal [ 'export', 'fork', 'provider', …(11) ] - Expected + Received @@ -3,12 +3,12 @@ "fork", "provider", "session", "acp", "web", - "server", "rc", + "server", "login", "doctor", "vis", "install-app", "migrate", ❯ test/cli/options.test.ts:583:28
[agent-gateway] test/apiSurface.snapshot.test.ts > API surface snapshot > matches the documented v2 route table and meta endpoints: packages/agent-gateway/test/apiSurface.snapshot.test.ts#L82
Error: Snapshot `API surface snapshot > matches the documented v2 route table and meta endpoints 1` mismatched - Expected + Received @@ -21,14 +21,10 @@ "DELETE", "/api/v1/files/{file_id}", ], [ "DELETE", - "/api/v1/auth/login", - ], - [ - "DELETE", "/api/v1/providers/{provider_id}", ], [ "DELETE", "/api/v1/workspaces/{workspace_id}", @@ -137,26 +133,10 @@ "GET", "/api/v1/models", ], [ "GET", - "/api/v1/auth/login", - ], - [ - "GET", - "/api/v1/oauth/region", - ], - [ - "GET", - "/api/v1/auth/status", - ], - [ - "GET", - "/api/v1/auth/status", - ], - [ - "GET", "/api/v1/plugins", ], [ "GET", "/api/v1/plugins/marketplace", @@ -377,18 +357,10 @@ "POST", "/api/v1/models/{tail}", ], [ "POST", - "/api/v1/auth/login", - ], - [ - "POST", - "/api/v1/auth/logout", - ], - [ - "POST", "/api/v1/plugins", ], [ "POST", "/api/v1/plugins/{tail}", ❯ test/apiSurface.snapshot.test.ts:82:30
[pyaos] test/local.test.ts > LocalPyaos > readText errors parameter (Python compat) > drops invalid bytes with errors="ignore": packages/pyaos/test/local.test.ts#L375
AssertionError: expected '中文' to be 'zh' // Object.is equality Expected: "zh" Received: "中文" ❯ test/local.test.ts:375:23
[pyaos] test/local.test.ts > LocalPyaos > readText errors parameter (Python compat) > returns U+FFFD replacement characters with errors="replace": packages/pyaos/test/local.test.ts#L366
AssertionError: expected '中\ufffd文' to contain 'zh' Expected: "zh" Received: "中�文" ❯ test/local.test.ts:366:23
test
Process completed with exit code 1.
test-pi-tui
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
lint
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
eslint-plugin-import(no-duplicates): packages/agent-core-v2/src/_base/di/scope.ts#L3
Module './instantiation' is imported more than once in this file
eslint-plugin-unicorn(catch-error-name): packages/agent-core-v2/src/_base/errors/unexpectedError.ts#L28
The catch parameter "err" should be named "error"
eslint-plugin-unicorn(catch-error-name): packages/agent-core-v2/src/_base/errors/unexpectedError.ts#L20
The catch parameter "handlerErr" should be named "error"
eslint(no-console): packages/agent-core-v2/src/_base/di/lifecycle.ts#L640
Unexpected console statement.
eslint(no-console): packages/agent-core-v2/src/_base/di/lifecycle.ts#L558
Unexpected console statement.
eslint(no-loop-func): packages/agent-core-v2/src/_base/event.ts#L211
Function declared in a loop contains unsafe references to variable(s)
eslint(no-loop-func): packages/agent-core-v2/src/_base/event.ts#L206
Function declared in a loop contains unsafe references to variable(s)
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
build
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (1)
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test-minidb
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (4)
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (5)
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (2)
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. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test-pi-tui
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
lint
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
typecheck
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
build
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (1)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test-minidb
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (4)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (3)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (5)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (2)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"