Skip to content

chore: upstream reconcile through reference 99eaa993b #1349

chore: upstream reconcile through reference 99eaa993b

chore: upstream reconcile through reference 99eaa993b #1349

Triggered via pull request September 19, 2026 16:15
Status Failure
Total duration 5m 22s
Artifacts –

ci.yml

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

Annotations

63 errors, 20 warnings, and 11 notices
eslint(no-unused-vars): apps/pythinker-code/src/tui/components/messages/expert-talk-panel.ts#L7
Type 'ExpertTalkStatusV1' is imported but never used.
eslint(no-unused-vars): apps/pythinker-code/src/tui/components/messages/expert-talk-panel.ts#L4
Type 'ExpertTalkRunV1' is imported but never used.
eslint(no-unused-vars): apps/pythinker-code/src/tui/components/panes/btw-panel.ts#L8
Type 'PythinkerMarkdownTheme' is imported but never used.
eslint(no-unused-vars): apps/pythinker-code/src/tui/commands/auth.ts#L2
Function 'platformValue' is declared but never used.
eslint(no-unused-vars): packages/agent-gateway/src/transport/ws/v1/subagentRosterTracker.ts#L3
Identifier 'toRoutingWire' is imported but never used.
eslint(no-unused-vars): apps/pythinker-code/src/cli/telemetry.ts#L23
Identifier 'createPythinkerCodeHostIdentity' is imported but never used.
eslint(no-unused-vars): apps/pythinker-code/src/cli/telemetry.ts#L3
Identifier 'PythinkerAuthFacade' is imported but never used.
eslint(no-unused-vars): apps/pythinker-code/src/tui/components/messages/agent-dynamic-workflow-progress.ts#L827
Variable 'estimate' is declared but never used. Unused variables should start with a '_'.
eslint(no-unused-vars): apps/pythinker-code/src/tui/components/messages/agent-dynamic-workflow-progress.ts#L799
Variable 'progressEstimate' is declared but never used. Unused variables should start with a '_'.
build
Process completed with exit code 1.
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > persists only conversation through the selected turn across resume: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.agentFacade src/sdk-rpc-client-v2.ts:1779:5 ❯ SDKRpcClientV2.prompt src/sdk-rpc-client-v2.ts:2026:19 ❯ Session.prompt src/session.ts:213:5 ❯ runPrompt test/session-prompt-events.test.ts:801:3 ❯ test/session-prompt-events.test.ts:552:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > starts btw through RPC as a forked subagent without prompt metadata updates: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.agentFacade src/sdk-rpc-client-v2.ts:1779:5 ❯ SDKRpcClientV2.prompt src/sdk-rpc-client-v2.ts:2026:19 ❯ Session.prompt src/session.ts:213:5 ❯ test/session-prompt-events.test.ts:486:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > includes persisted subagent replay only when resume explicitly requests it: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.generateAgentsMd src/sdk-rpc-client-v2.ts:2135:5 ❯ Session.init src/session.ts:331:5 ❯ test/session-prompt-events.test.ts:444:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > carries the prompt on the public turn.started event for subagent system triggers: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.generateAgentsMd src/sdk-rpc-client-v2.ts:2135:5 ❯ Session.init src/session.ts:331:5 ❯ test/session-prompt-events.test.ts:416:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > runs init through generateAgentsMd RPC as a subagent system trigger without prompt metadata updates: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.generateAgentsMd src/sdk-rpc-client-v2.ts:2135:5 ❯ Session.init src/session.ts:331:5 ❯ test/session-prompt-events.test.ts:370:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > supports onEvent unsubscribe without touching runtime wire directly: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.agentFacade src/sdk-rpc-client-v2.ts:1779:5 ❯ SDKRpcClientV2.prompt src/sdk-rpc-client-v2.ts:2026:19 ❯ Session.prompt src/session.ts:213:5 ❯ test/session-prompt-events.test.ts:345:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > emits mapped turn events through Session.onEvent: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.agentFacade src/sdk-rpc-client-v2.ts:1779:5 ❯ SDKRpcClientV2.prompt src/sdk-rpc-client-v2.ts:2026:19 ❯ Session.prompt src/session.ts:213:5 ❯ test/session-prompt-events.test.ts:299:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > persists sanitized prompt metadata without marking the title custom: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.agentFacade src/sdk-rpc-client-v2.ts:1779:5 ❯ SDKRpcClientV2.prompt src/sdk-rpc-client-v2.ts:2026:19 ❯ Session.prompt src/session.ts:213:5 ❯ test/session-prompt-events.test.ts:235:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > preserves existing custom metadata when an SDK metadata patch is resumed: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.createGoal src/sdk-rpc-client-v2.ts:2253:19 ❯ test/session-prompt-events.test.ts:198:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[pythinker-sdk] test/session-prompt-events.test.ts > Session.prompt events > continues notifying sessions after disabling and restarting with identical prompt and tools: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "fake-model" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ SDKRpcClientV2.materializeMainAgent src/sdk-rpc-client-v2.ts:1741:9 ❯ SDKRpcClientV2.agentFacade src/sdk-rpc-client-v2.ts:1779:5 ❯ SDKRpcClientV2.prompt src/sdk-rpc-client-v2.ts:2026:19 ❯ Session.prompt src/session.ts:213:5 ❯ test/session-prompt-events.test.ts:162:9 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'fake-model' } }
[agent-gateway] test/modelCatalog.test.ts > server-v2 /api/v1 model/provider catalog > refreshes OAuth provider models through POST /providers:refresh: packages/agent-gateway/test/modelCatalog.test.ts#L339
AssertionError: expected { changed: [], unchanged: [], …(1) } to deeply equal { changed: [ { …(4) } ], …(2) } - Expected + Received { - "changed": [ - { - "added": 1, - "provider_id": "openai", - "provider_name": "Pythinker Code", - "removed": 0, - }, - ], + "changed": [], "failed": [], "unchanged": [], } ❯ test/modelCatalog.test.ts:339:23
[agent-gateway] test/modelCatalog.test.ts > server-v2 /api/v1 model/provider catalog > sets the global default model and reflects it in /config: packages/agent-gateway/test/modelCatalog.test.ts#L237
AssertionError: expected 40413 to be +0 // Object.is equality - Expected + Received - 0 + 40413 ❯ test/modelCatalog.test.ts:237:23
[agent-gateway] test/modelCatalog.test.ts > server-v2 /api/v1 model/provider catalog > lists providers and returns a single provider by id: packages/agent-gateway/test/modelCatalog.test.ts#L197
AssertionError: expected [ { id: 'pythinker', …(5) }, …(1) ] to deeply equal [ { id: 'pythinker', …(6) }, …(1) ] - Expected + Received [ { "base_url": "https://api.example.test/v1", - "default_model": "k2", "has_api_key": true, "id": "pythinker", - "models": [ - "k2", - "turbo", - ], + "models": [], "status": "connected", "type": "pythinker", }, { "has_api_key": false, "id": "openai", - "models": [ - "gpt4o", - ], + "models": [], "status": "unconfigured", "type": "openai", }, ] ❯ test/modelCatalog.test.ts:197:34
[agent-gateway] test/modelCatalog.test.ts > server-v2 /api/v1 model/provider catalog > lists configured models as selectable aliases: packages/agent-gateway/test/modelCatalog.test.ts#L151
AssertionError: expected [] to deeply equal [ …(3) ] - Expected + Received - [ - { - "capabilities": [ - "thinking", - ], - "display_name": "Kimi K2", - "max_context_size": 131072, - "model": "k2", - "provider": "pythinker", - }, - { - "display_name": "Pythinker Turbo", - "max_context_size": 32768, - "model": "turbo", - "provider": "pythinker", - }, - { - "display_name": "gpt-4o", - "max_context_size": 128000, - "model": "gpt4o", - "provider": "openai", - }, - ] + [] ❯ test/modelCatalog.test.ts:151:29
[agent-gateway] test/auth.test.ts > server-v2 GET /api/v1/auth > returns models_ready=true for a providerless flat default model: packages/agent-gateway/test/auth.test.ts#L148
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/auth.test.ts:148:34
[agent-gateway] test/auth.test.ts > server-v2 GET /api/v1/auth > returns models_ready=true when the default model resolves to a configured provider: packages/agent-gateway/test/auth.test.ts#L86
AssertionError: expected { ready: false, …(3) } to deeply equal { models_ready: true, …(2) } - Expected + Received { - "managed_provider": null, - "models_ready": true, + "default_model": "x", + "models_ready": false, "providers_count": 1, + "ready": false, } ❯ test/auth.test.ts:86:29
[agent-gateway] test/auth.test.ts > server-v2 GET /api/v1/auth > returns models_ready=false with an empty snapshot on empty config: packages/agent-gateway/test/auth.test.ts#L63
AssertionError: expected { ready: false, …(3) } to deeply equal { models_ready: false, …(2) } - Expected + Received { - "managed_provider": null, + "default_model": null, "models_ready": false, "providers_count": 0, + "ready": false, } ❯ test/auth.test.ts:63:29
[extension] test/workspace-paths.test.ts: apps/vscode/src/runtime/pythinker-runtime.ts#L11
Error: Cannot find module './legacy-approval' imported from /home/runner/work/pythinker-code/pythinker-code/apps/vscode/src/runtime/pythinker-runtime.ts ❯ src/runtime/pythinker-runtime.ts:11:1 ❯ src/handlers/chat.handler.ts:11:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
[extension] test/session-runtime.test.ts: apps/vscode/src/runtime/session-runtime.ts#L20
Error: Cannot find module './legacy-approval' imported from /home/runner/work/pythinker-code/pythinker-code/apps/vscode/src/runtime/session-runtime.ts ❯ src/runtime/session-runtime.ts:20:1 ❯ test/session-runtime.test.ts:24:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
[extension] test/legacy-migration.manager.test.ts: apps/vscode/test/legacy-migration.manager.test.ts#L14
Error: Cannot find module '../src/migration' imported from /home/runner/work/pythinker-code/pythinker-code/apps/vscode/test/legacy-migration.manager.test.ts ❯ test/legacy-migration.manager.test.ts:14:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
typecheck
Process completed with exit code 1.
[agent-gateway] test/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > creates a provider with model aliases and persists them to config.toml: packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L208
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogProviderWrite.test.ts:208:20
[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
[extension] test/bridge-handler.test.ts: apps/vscode/src/runtime/pythinker-runtime.ts#L11
Error: Cannot find module './legacy-approval' imported from /home/runner/work/pythinker-code/pythinker-code/apps/vscode/src/runtime/pythinker-runtime.ts ❯ src/runtime/pythinker-runtime.ts:11:1 ❯ src/handlers/chat.handler.ts:11:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
[pythinker-sdk] test/sdk-rpc-client-v2.test.ts > SDKRpcClientV2 (agent-core-v2 wiring) > gates NotifyUser for all profiles and preserves fork prompts: {"enabled":true,"panel":true}: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "stub" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ AgentLifecycleService.bindBootstrap ../agent-core-v2/src/session/agentLifecycle/agentLifecycleService.ts:398:7 ❯ AgentLifecycleService.buildAgentScope ../agent-core-v2/src/session/agentLifecycle/agentLifecycleService.ts:348:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'stub' } }
[pythinker-sdk] test/sdk-rpc-client-v2.test.ts > SDKRpcClientV2 (agent-core-v2 wiring) > gates NotifyUser for all profiles and preserves fork prompts: {"enabled":true,"panel":false}: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "stub" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ AgentLifecycleService.bindBootstrap ../agent-core-v2/src/session/agentLifecycle/agentLifecycleService.ts:398:7 ❯ AgentLifecycleService.buildAgentScope ../agent-core-v2/src/session/agentLifecycle/agentLifecycleService.ts:348:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'stub' } }
[pythinker-sdk] test/sdk-rpc-client-v2.test.ts > SDKRpcClientV2 (agent-core-v2 wiring) > gates NotifyUser for all profiles and preserves fork prompts: {"enabled":false,"panel":true}: packages/agent-core-v2/src/llm-adapter/model/catalog-service.ts#L307
Error2: Model "stub" is not configured in config.toml. ❯ ModelCatalog.buildModel ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:307:13 ❯ ModelCatalog.entry ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:136:24 ❯ ModelCatalog.get ../agent-core-v2/src/llm-adapter/model/catalog-service.ts:112:17 ❯ AgentProfileService.bind ../agent-core-v2/src/agent/profile/profileService.ts:296:37 ❯ AgentLifecycleService.bindBootstrap ../agent-core-v2/src/session/agentLifecycle/agentLifecycleService.ts:398:7 ❯ AgentLifecycleService.buildAgentScope ../agent-core-v2/src/session/agentLifecycle/agentLifecycleService.ts:348:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'config.invalid', details: { model: 'stub' } }
[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/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: 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-3M97UU/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: packages/agent-gateway/test/workspaces.test.ts#L339
Error: EEXIST: file already exists, mkdir '/tmp/pythinker-server-v2-workspaces-3M97UU/extra' ❯ test/workspaces.test.ts:339:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -17, code: 'EEXIST', syscall: 'mkdir', path: '/tmp/pythinker-server-v2-workspaces-3M97UU/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-b80y92rx', …(12) } to match object { id: 'test-b80y92rx', …(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-b80y92rx", "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_943f3647-ec43-4cb1-b686-3ccfd75a6ff6", "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-19T16:20:04.283Z", + "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
[extension] test/telemetry.test.ts > extension telemetry composition root > resolves the endpoint through the region resolver per flush: apps/vscode/test/telemetry.test.ts#L145
AssertionError: expected "vi.fn()" to be called with arguments: [ ObjectContaining{…} ] Received: 1st vi.fn() call: [ - ObjectContaining { - "configuredOAuthHost": "https://auth.kimi.ai", - "configuredOAuthKey": "oauth/pythinker-code-global", + { "homeDir": "/pythinker-home", + "readMarker": true, }, ] Number of calls: 1 ❯ test/telemetry.test.ts:145:41
[extension] test/telemetry.test.ts > extension telemetry composition root > initializes the shared stack with extension identity and the config gate: apps/vscode/test/telemetry.test.ts#L126
AssertionError: expected undefined to be type of 'function' Expected: "function" Received: "undefined" ❯ test/telemetry.test.ts:126:39
[extension] test/settings-store.test.ts > Webview MCP update bridge > sends a lossless structured MCP edit request to the extension host: apps/vscode/webview-ui/src/services/bridge.ts#L52
TypeError: Cannot read properties of undefined (reading 'webviewid') ❯ new Bridge webview-ui/src/services/bridge.ts:52:44 ❯ webview-ui/src/services/bridge.ts:341:23 ❯ test/settings-store.test.ts:221:24
[extension] test/pythinker-harness.integration.test.ts: apps/vscode/src/runtime/pythinker-runtime.ts#L11
Error: Cannot find module './legacy-approval' imported from /home/runner/work/pythinker-code/pythinker-code/apps/vscode/src/runtime/pythinker-runtime.ts ❯ src/runtime/pythinker-runtime.ts:11:1 ❯ src/handlers/chat.handler.ts:11:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > replaces an explicit OAuth credential during catalog import: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L482
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogCatalog.test.ts:482:20
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > honors the id override for the local provider id: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L429
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogCatalog.test.ts:429:20
[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#L356
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogCatalog.test.ts:356:20
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > never touches the global default pointers on import: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L344
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogCatalog.test.ts:344:20
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > imports a catalog entry as a provider with all model aliases: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L308
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogCatalog.test.ts:308:20
[extension] test/pythinker-runtime.test.ts: apps/vscode/src/runtime/pythinker-runtime.ts#L11
Error: Cannot find module './legacy-approval' imported from /home/runner/work/pythinker-code/pythinker-code/apps/vscode/src/runtime/pythinker-runtime.ts ❯ src/runtime/pythinker-runtime.ts:11:1 ❯ test/pythinker-runtime.test.ts:27:1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
test
Process completed with exit code 1.
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(no-console): packages/agent-core-v2/src/human/utils/watch.ts#L90
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-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-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/
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/
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 (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 (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 (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/
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-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"
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"
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 (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 (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 (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
"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"