Skip to content

chore: upstream reconcile through reference 99eaa993b #1372

chore: upstream reconcile through reference 99eaa993b

chore: upstream reconcile through reference 99eaa993b #1372

Triggered via pull request September 19, 2026 18:15
Status Failure
Total duration 7m 21s
Artifacts –

ci.yml

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

Annotations

52 errors, 20 warnings, and 11 notices
typecheck
Process completed with exit code 2.
typecheck: packages/agent-core-v2/src/agent/toolExecutor/toolExecutorService.ts#L509
Object literal may only specify known properties, and 'error' does not exist in type '{ readonly status: "rejected"; readonly index: number; readonly reason: unknown; }'.
typecheck: packages/agent-core-v2/src/agent/toolExecutor/toolExecutorService.ts#L272
Object literal may only specify known properties, and 'error' does not exist in type '{ readonly status: "rejected"; readonly reason: unknown; }'.
typecheck: packages/agent-core-v2/src/agent/toolExecutor/toolExecutorService.ts#L242
Object literal may only specify known properties, and 'error' does not exist in type '{ readonly type: "timedRejected"; readonly reason: unknown; }'.
build
Process completed with exit code 1.
build
Object literal may only specify known properties, and 'error' does not exist in type '{ readonly status: "rejected"; readonly index: number; readonly reason: unknown; }'.
build
Object literal may only specify known properties, and 'error' does not exist in type '{ readonly status: "rejected"; readonly reason: unknown; }'.
build
Object literal may only specify known properties, and 'error' does not exist in type '{ readonly type: "timedRejected"; readonly reason: unknown; }'.
[cli] test/tui/components/chrome/moon-loader.test.ts > MoonLoader > uses the shared Braille mark for the waiting state: apps/pythinker-code/test/tui/components/chrome/moon-loader.test.ts#L50
AssertionError: expected '⠋' to be '⣷' // Object.is equality Expected: "⣷" Received: "⠋" ❯ test/tui/components/chrome/moon-loader.test.ts:50:43
[cli] test/tui/commands/secondary-model.test.ts > handleSecondaryModelCommand > reports a persistence failure without a status message: apps/pythinker-code/test/tui/commands/secondary-model.test.ts#L232
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times Received: 1st vi.fn() call: Array [ "Skipped refreshing models: host.authFlow.refreshOAuthProviderModels is not a function", "warning", ] Number of calls: 1 ❯ test/tui/commands/secondary-model.test.ts:232:33
[cli] test/utils/process/fd-detect.test.ts > detectFdPath > does not download fd when no local binary is available: apps/pythinker-code/test/utils/process/fd-detect.test.ts#L56
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times Received: 1st vi.fn() call: Array [ "https://code.pythinker.com/pythinker-code/fd/fd-v10.4.2-x86_64-unknown-linux-musl.tar.gz", Object { "signal": AbortSignal { Symbol(kEvents): Map {}, Symbol(events.maxEventTargetListeners): 0, Symbol(events.maxEventTargetListenersWarned): false, Symbol(kHandlers): Map {}, Symbol(kAborted): false, Symbol(kReason): undefined, Symbol(kComposite): false, Symbol(kTimeout): true, }, }, ] Number of calls: 1 ❯ test/utils/process/fd-detect.test.ts:56:27
[cli] test/tui/pythinker-tui-startup.test.ts > PythinkerTUI startup > keeps the active session when logging out a different provider: apps/pythinker-code/test/tui/pythinker-tui-startup.test.ts#L2312
AssertionError: expected "vi.fn()" to be called with arguments: [ 'openai' ] Number of calls: 0 ❯ test/tui/pythinker-tui-startup.test.ts:2312:28
[cli] test/cli/export.test.ts > pythinker export > builds the v2 harness by default: apps/pythinker-code/test/cli/export.test.ts#L564
AssertionError: expected "vi.fn()" to be called 1 times, but got 0 times ❯ test/cli/export.test.ts:564:49
[klient] test/e2e/legacy/client.test.ts > DaemonClient session action helpers > model catalog helpers call the catalog and action-suffix routes: packages/klient/test/e2e/legacy/client.test.ts#L463
AssertionError: expected [ [ 'GET', …(1) ], …(4) ] to deeply equal [ [ 'GET', …(1) ], …(4) ] - Expected + Received @@ -7,11 +7,11 @@ "GET", "http://server.example.test/api/v1/models", ], [ "POST", - "http://server.example.test/api/v1/models/pythinker-code%2Fkimi-for-coding:set_default", + "http://server.example.test/api/v1/models/openai%2Fgpt-4o:set_default", ], [ "GET", "http://server.example.test/api/v1/providers", ], ❯ test/e2e/legacy/client.test.ts:463:63
[agent-gateway] test/workspaces.test.ts > server-v2 /api/v1/workspaces > adds a relative directory without persisting when persist is false (variant 2): packages/agent-gateway/test/workspaces.test.ts#L371
AssertionError: promise resolved "'[workspace]\nadditional_dir = [ "/tmp…'" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: "[workspace] additional_dir = [ \"/tmp/pythinker-server-v2-workspaces-G9Vibv/extra\" ] " ❯ test/workspaces.test.ts:371:57
[agent-gateway] test/workspaces.test.ts > server-v2 /api/v1/workspaces > adds an additional directory and persists it by default (variant 2): packages/agent-gateway/test/workspaces.test.ts#L339
Error: EEXIST: file already exists, mkdir '/tmp/pythinker-server-v2-workspaces-G9Vibv/extra' ❯ test/workspaces.test.ts:339:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -17, code: 'EEXIST', syscall: 'mkdir', path: '/tmp/pythinker-server-v2-workspaces-G9Vibv/extra' }
[agent-gateway] test/tasks.test.ts > server-v2 /api/v1/sessions/{sid}/tasks > lists registered tasks with mapped kind/status and wire-shaped fields: packages/agent-gateway/test/tasks.test.ts#L221
AssertionError: expected { id: 'test-gyuljg0t', …(12) } to match object { id: 'test-gyuljg0t', …(11) } (3 matching properties omitted from actual) - Expected + Received @@ -1,22 +1,11 @@ { "agent_id": "sub-1", - "current_routing_env_revision": "route-env:v1:aaa", "id": "test-gyuljg0t", "kind": "subagent", "model": "provider/secondary", "parent_tool_call_id": "call-parent-1", - "routing": { - "feature_source": "env", - "model_source": "policy-pool", - "operation": "spawn", - "policy_mode": "pool", - "policy_source": "config", - "profile_source": "requested", - "route_decision": "route-decision:v1:bbb", - "routing_env_revision": "route-env:v1:aaa", - }, "run_in_background": true, "session_id": "session_0028067a-a7cf-4ff4-974a-0aa5140fa574", "status": "running", "subagent_type": "explore", "thinking_effort": "low", ❯ test/tasks.test.ts:221:31
[agent-gateway] test/subagentRosterTracker.test.ts > SubagentRosterTracker > carries the routing provenance and current revision from subagent.spawned: packages/agent-gateway/test/subagentRosterTracker.test.ts#L44
AssertionError: expected [ { id: 'agent-r', …(14) } ] to deeply equal [ ObjectContaining{…} ] - Expected + Received [ { - "current_routing_env_revision": "route-env:v1:new", + "created_at": "2026-09-19T18:18:13.983Z", + "current_routing_env_revision": undefined, + "description": "task agent-r", + "dynamic_workflow_index": 0, "id": "agent-r", - "routing": { - "feature_source": "default", - "model_source": "resume-existing", - "operation": "resume", - "policy_mode": "inherit", - "policy_source": "default", - "profile_source": "resume-existing", - "route_decision": "route-decision:v1:x", - "routing_env_revision": "route-env:v1:old", - }, + "kind": "subagent", + "model": undefined, + "parent_tool_call_id": "tc_dynamic_workflow_1", + "routing": undefined, + "run_in_background": false, + "session_id": "sess_1", + "status": "running", + "subagent_phase": "queued", + "subagent_type": "pythinker-subagent", + "thinking_effort": undefined, }, ] ❯ test/subagentRosterTracker.test.ts:44:24
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > reports indexState building before the first full sync and ready after: packages/agent-gateway/test/search/searchService.test.ts#L446
AssertionError: expected 1 to be 2 // Object.is equality - Expected + Received - 2 + 1 ❯ test/search/searchService.test.ts:446:40
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > paginates with an opaque cursor and rejects changed conditions: packages/agent-gateway/test/search/searchService.test.ts#L416
AssertionError: promise resolved "{ items: [ { …(10) } ], …(5) }" instead of rejecting - Expected + Received - Error { - "message": "rejected promise", + { + "hasMore": false, + "incomplete": undefined, + "indexState": { + "degraded": undefined, + "documents": 3, + "indexedSessions": 1, + "stale": true, + "state": "ready", + "totalSessions": 1, + }, + "items": [ + { + "agentId": "main", + "role": "user", + "score": 0.5493061443340548, + "sessionId": "s1", + "sessionTitle": "", + "snippet": "zh three", + "stepId": undefined, + "time": 1700000200000, + "turn": 2, + "workspaceId": "ws_test", + }, + ], + "pageToken": undefined, + "source": "index", } ❯ test/search/searchService.test.ts:416:5
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > indexes user and assistant text and finds Chinese and English terms: packages/agent-gateway/test/search/searchService.test.ts#L300
AssertionError: expected '' to be 'zh' // Object.is equality - Expected + Received - zh ❯ test/search/searchService.test.ts:300:32
[agent-gateway] test/capabilities.test.ts > server-v2 /api/v1 capabilities > rejects pythinker-cu install on unsupported platforms with 40925: packages/agent-gateway/test/capabilities.test.ts#L82
AssertionError: expected 40418 to be 40925 // Object.is equality - Expected + Received - 40925 + 40418 ❯ test/capabilities.test.ts:82:25
[agent-gateway] test/capabilities.test.ts > server-v2 /api/v1 capabilities > gets a single capability and 40418s on an unknown id: packages/agent-gateway/test/capabilities.test.ts#L58
AssertionError: expected 40418 to be +0 // Object.is equality - Expected + Received - 0 + 40418 ❯ test/capabilities.test.ts:58:23
[agent-gateway] test/capabilities.test.ts > server-v2 /api/v1 capabilities > lists both built-in capabilities with the documented shape: packages/agent-gateway/test/capabilities.test.ts#L38
AssertionError: expected [] to deeply equal [ 'pythinker-cu', …(1) ] - Expected + Received - [ - "pythinker-cu", - "pythinker-webbridge", - ] + [] ❯ test/capabilities.test.ts:38:17
[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 (1)
Process completed with exit code 1.
[vis-web] test/renderers.test.ts > wire renderers > renders a tracked record with a missing entry without throwing: apps/vis/web/test/renderers.test.ts#L134
TypeError: Cannot read properties of undefined (reading 'headline') ❯ test/renderers.test.ts:134:31
[vis-web] test/renderers.test.ts > wire renderers > renders a checkpoint with array entries without throwing: apps/vis/web/test/renderers.test.ts#L113
TypeError: Cannot read properties of undefined (reading 'headline') ❯ test/renderers.test.ts:113:31
[vis-web] test/renderers.test.ts > wire renderers > renders a checkpoint with scalar entries without throwing: apps/vis/web/test/renderers.test.ts#L113
TypeError: Cannot read properties of undefined (reading 'headline') ❯ test/renderers.test.ts:113:31
[vis-web] test/renderers.test.ts > wire renderers > renders a checkpoint with null entries without throwing: apps/vis/web/test/renderers.test.ts#L113
TypeError: Cannot read properties of undefined (reading 'headline') ❯ test/renderers.test.ts:113:31
[vis-web] test/renderers.test.ts > wire renderers > renders a checkpoint with missing entries without throwing: apps/vis/web/test/renderers.test.ts#L113
TypeError: Cannot read properties of undefined (reading 'headline') ❯ test/renderers.test.ts:113:31
[vis-web] test/renderers.test.ts > wire renderers > distinguishes oversized snapshots from files that did not exist: apps/vis/web/test/renderers.test.ts#L85
TypeError: Cannot read properties of undefined (reading 'headline') ❯ test/renderers.test.ts:85:40
[vis-web] test/renderers.test.ts > wire renderers > covers every durable record in the current core-v2 wire manifest: apps/vis/web/test/renderers.test.ts#L77
AssertionError: expected [ 'config.update', …(56) ] to deeply equal [ 'config.update', …(58) ] - Expected + Received @@ -8,12 +8,10 @@ "cron.add", "cron.cursor", "cron.delete", "dynamic_workflow_mode.enter", "dynamic_workflow_mode.exit", - "file_history.checkpoint", - "file_history.tracked", "forked", "full_compaction.begin", "full_compaction.cancel", "full_compaction.complete", "goal.clear", ❯ test/renderers.test.ts:77:34
[agent-gateway] test/plugins.test.ts > server-v2 /api/v1 plugins > serves an empty marketplace when no URL is configured: packages/agent-gateway/test/plugins.test.ts#L454
AssertionError: expected [ { id: 'superpowers', …(7) } ] to deeply equal [] - Expected + Received - [] + [ + { + "description": "Planning, TDD, debugging, and delivery workflows for coding agents.", + "displayName": "Superpowers", + "homepage": "https://github.com/obra/superpowers", + "id": "superpowers", + "keywords": [ + "skills", + "planning", + "tdd", + "debugging", + "code-review", + ], + "source": "https://code.pythinker.com/pythinker-code/plugins/curated/superpowers.zip", + "tier": "curated", + "version": "6.2.0", + }, + ] ❯ test/plugins.test.ts:454:31
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > adopts a usable global default_model from a registry import on a fresh setup: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L618
AssertionError: expected null to be 'acme-claude/claude-opus' // Object.is equality - Expected: "acme-claude/claude-opus" + Received: null ❯ test/modelCatalogCatalog.test.ts:618:42
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > adopts a usable global default_model on a fresh setup: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L358
AssertionError: expected null to be 'openai/gpt-4.1' // Object.is equality - Expected: "openai/gpt-4.1" + Received: null ❯ test/modelCatalogCatalog.test.ts:358:42
[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/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > rejects replacing an OAuth-managed provider with 40003: packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L804
AssertionError: expected 40412 to be 40003 // Object.is equality - Expected + Received - 40003 + 40412 ❯ test/modelCatalogProviderWrite.test.ts:804:23
[agent-gateway] test/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > rejects deleting an OAuth-managed provider with 40003: packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L495
AssertionError: expected 40412 to be 40003 // Object.is equality - Expected + Received - 40003 + 40412 ❯ test/modelCatalogProviderWrite.test.ts:495:24
[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
test
Process completed with exit code 1.
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/
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-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/
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/
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(first): packages/agent-core-v2/src/_base/di/test.ts#L11
Import statements must come first
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-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/human/utils/watch.ts#L90
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)
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 (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 (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 (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 (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/
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"
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-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"
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"
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"
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 (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 (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 (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 (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
"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"