Skip to content

chore: upstream reconcile through reference 99eaa993b #1347

chore: upstream reconcile through reference 99eaa993b

chore: upstream reconcile through reference 99eaa993b #1347

Triggered via pull request September 19, 2026 16:11
Status Failure
Total duration 7m 26s
Artifacts –

ci.yml

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

Annotations

63 errors, 20 warnings, and 11 notices
typecheck
Process completed with exit code 1.
build
Process completed with exit code 1.
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 '_'.
[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' }
[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' }
[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/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-3ixgjo/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-3ixgjo/extra' ❯ test/workspaces.test.ts:339:5 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -17, code: 'EEXIST', syscall: 'mkdir', path: '/tmp/pythinker-server-v2-workspaces-3ixgjo/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-5qlaiz0q', …(12) } to match object { id: 'test-5qlaiz0q', …(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-5qlaiz0q", "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_6971442e-a15e-4dc3-88e0-b79d5f0b6fd1", "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:15:30.431Z", + "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' }
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-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-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-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(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-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 (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 (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 (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/
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-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-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 (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 (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 (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
"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"