Skip to content

chore: upstream reconcile through reference 99eaa993b #1351

chore: upstream reconcile through reference 99eaa993b

chore: upstream reconcile through reference 99eaa993b #1351

Triggered via pull request September 19, 2026 16:32
Status Failure
Total duration 3m 31s
Artifacts –

ci.yml

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

Annotations

53 errors, 20 warnings, and 11 notices
typecheck
Process completed with exit code 1.
build
Process completed with exit code 1.
[agent-gateway] test/modelCatalog.test.ts > server-v2 /api/v1 model/provider catalog > refreshes a single provider through POST /providers/{id}:refresh: packages/agent-gateway/test/modelCatalog.test.ts#L378
AssertionError: expected "vi.fn()" to be called with arguments: [ { providerId: 'openai' } ] Received: 1st vi.fn() call: [ { - "providerId": "openai", + "providerId": "managed:pythinker-code", }, ] Number of calls: 1 ❯ test/modelCatalog.test.ts:378:35
[agent-gateway] test/modelCatalog.test.ts > server-v2 /api/v1 model/provider catalog > refreshes all provider models through POST /providers:refresh: packages/agent-gateway/test/modelCatalog.test.ts#L363
AssertionError: expected "vi.fn()" to be called with arguments: [ { scope: 'all' } ] Received: 1st vi.fn() call: [ - { - "scope": "all", - }, + {}, ] Number of calls: 1 ❯ test/modelCatalog.test.ts:363:35
[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/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' }
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > never touches the global default pointers on registry import: packages/agent-gateway/test/modelCatalogCatalog.test.ts#L603
AssertionError: expected 200 to be 201 // Object.is equality - Expected + Received - 201 + 200 ❯ test/modelCatalogCatalog.test.ts:603:20
[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/bridge-handler.test.ts > Webview RPC boundary (validates requests before host dispatch) > returns a readable error when persisted session state is corrupt without wedging the bridge: apps/vscode/test/bridge-handler.test.ts#L477
AssertionError: expected { id: 'rpc-1', …(1) } to deeply equal { id: 'rpc-1', …(1) } - Expected + Received { - "error": "Session state is invalid JSON at line 4", + "error": "Invalid bridge request: method must be a non-empty string.", "id": "rpc-1", } ❯ test/bridge-handler.test.ts:477:20
[extension] test/bridge-handler.test.ts > Webview RPC boundary (validates requests before host dispatch) > keeps conversation history available when its baseline snapshot disappears: apps/vscode/test/bridge-handler.test.ts#L450
AssertionError: expected { id: 'rpc-1', …(1) } to deeply equal { id: 'rpc-1', …(1) } - Expected + Received { + "error": "Invalid bridge request: method must be a non-empty string.", "id": "rpc-1", - "result": ArrayContaining [ - ObjectContaining { - "_sessionId": "session-1", - "type": "StatusUpdate", - }, - ], } ❯ test/bridge-handler.test.ts:450:20
[extension] test/bridge-handler.test.ts > Webview RPC boundary (validates requests before host dispatch) > closes and removes a fork when its baseline cannot be materialized: apps/vscode/test/bridge-handler.test.ts#L416
AssertionError: expected { id: 'rpc-1', …(1) } to deeply equal { id: 'rpc-1', …(1) } - Expected + Received { - "error": "baseline unavailable", + "error": "Invalid bridge request: method must be a non-empty string.", "id": "rpc-1", } ❯ test/bridge-handler.test.ts:416:20
[extension] test/bridge-handler.test.ts > Webview RPC boundary (validates requests before host dispatch) > runs a fork through the active session cancellation boundary: apps/vscode/test/bridge-handler.test.ts#L391
AssertionError: expected { id: 'rpc-1', …(1) } to deeply equal { id: 'rpc-1', …(1) } - Expected + Received { + "error": "Invalid bridge request: method must be a non-empty string.", "id": "rpc-1", - "result": { - "sessionId": "session-2", - }, } ❯ test/bridge-handler.test.ts:391:20
[extension] test/bridge-handler.test.ts > Webview RPC boundary (validates requests before host dispatch) > does not expose the session storage path when forking a session: apps/vscode/test/bridge-handler.test.ts#L358
AssertionError: expected { id: 'rpc-1', …(1) } to deeply equal { id: 'rpc-1', …(1) } - Expected + Received { + "error": "Invalid bridge request: method must be a non-empty string.", "id": "rpc-1", - "result": { - "sessionId": "session-2", - }, } ❯ test/bridge-handler.test.ts:358:20
[extension] test/bridge-handler.test.ts > Webview RPC boundary (validates requests before host dispatch) > does not expose the session storage path when listing sessions: apps/vscode/test/bridge-handler.test.ts#L326
AssertionError: expected { id: 'rpc-1', …(1) } to deeply equal { id: 'rpc-1', result: [ { …(4) } ] } - Expected + Received { + "error": "Invalid bridge request: method must be a non-empty string.", "id": "rpc-1", - "result": [ - { - "brief": "Visible title", - "id": "session-1", - "updatedAt": 123, - "workDir": "/tmp/pythinker-vscode-bridge-uASiqF", - }, - ], } ❯ test/bridge-handler.test.ts:326:20
[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
[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' } }
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > keeps /yolo and /afk independent when they are combined: apps/vscode/test/pythinker-harness.integration.test.ts#L1302
AssertionError: expected { yolo: false, afk: false } to deeply equal { yolo: true, afk: false } - Expected + Received { "afk": false, - "yolo": true, + "yolo": false, } ❯ test/pythinker-harness.integration.test.ts:1302:41
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > keeps the host action busy until manual compaction completes: apps/vscode/test/pythinker-harness.integration.test.ts#L1286
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/pythinker-harness.integration.test.ts:1286:28
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > stops a running manual compaction through the compaction cancellation API: apps/vscode/test/pythinker-harness.integration.test.ts#L1264
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ test/pythinker-harness.integration.test.ts:1264:3
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > stops a running init command without surfacing its late result: apps/vscode/test/pythinker-harness.integration.test.ts#L1249
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ test/pythinker-harness.integration.test.ts:1249:3
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > rejects an invalid plan subcommand without leaving the runtime busy: apps/vscode/test/pythinker-harness.integration.test.ts#L1222
AssertionError: promise resolved "true" instead of rejecting - Expected: Error { "message": "rejected promise", } + Received: true ❯ test/pythinker-harness.integration.test.ts:1222:53
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > toggles plan mode through the public session without calling the model: apps/vscode/test/pythinker-harness.integration.test.ts#L1198
AssertionError: expected { model: 'vscode-test', …(9) } to match object { planMode: true } (9 matching properties omitted from actual) - Expected + Received { - "planMode": true, + "planMode": false, } ❯ test/pythinker-harness.integration.test.ts:1198:45
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > clears imported context without replacing the current session: apps/vscode/test/pythinker-harness.integration.test.ts#L1173
AssertionError: expected { history: [ { …(4) } ], …(1) } to deeply equal { history: [], tokenCount: +0 } - Expected + Received { - "history": [], - "tokenCount": 0, + "history": [ + { + "content": [ + { + "text": "<system>The user has imported context from file 'prior.md'. This is a prior conversation history that may be relevant to the current session. Please review this context and use it to inform your responses.</system>", + "type": "text", + }, + { + "text": "<imported_context source=\"file 'prior.md'\"> + Prior context. + </imported_context>", + "type": "text", + }, + ], + "origin": { + "kind": "user", + }, + "role": "user", + "toolCalls": [], + }, + ], + "tokenCount": 75, } ❯ test/pythinker-harness.integration.test.ts:1173:46
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > imports a UTF-8 text file into the same session without calling the model: apps/vscode/test/pythinker-harness.integration.test.ts#L1143
AssertionError: expected { history: [], tokenCount: +0 } to match object { history: [ { role: 'user', …(1) } ] } (1 matching property omitted from actual) - Expected + Received { - "history": [ - { - "content": ArrayContaining [ - ObjectContaining { - "text": StringContaining "Keep the public API stable.", - "type": "text", - }, - ], - "role": "user", - }, - ], + "history": [], } ❯ test/pythinker-harness.integration.test.ts:1143:46
[extension] test/pythinker-harness.integration.test.ts > VS Code Pythinker harness integration (shares one in-process SDK home) > only intercepts released slash commands and user-invoked skills: apps/vscode/test/pythinker-harness.integration.test.ts#L368
AssertionError: expected Promise{…} to deeply equal { name: 'plan', args: 'on', …(1) } - Expected + Received - { - "args": "on", - "name": "plan", - "raw": "/plan on", - } + Promise {} ❯ test/pythinker-harness.integration.test.ts:368:47
test
Process completed with exit code 1.
test-pi-tui
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
eslint-plugin-import(no-duplicates): packages/agent-core-v2/src/_base/di/scope.ts#L3
Module './instantiation' is imported more than once in this file
eslint(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-loop-func): packages/agent-core-v2/src/_base/event.ts#L211
Function declared in a loop contains unsafe references to variable(s)
eslint(no-loop-func): packages/agent-core-v2/src/_base/event.ts#L206
Function declared in a loop contains unsafe references to variable(s)
typecheck
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
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/
build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (1)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (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/
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 (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-pi-tui
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
lint
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
typecheck
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
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"
build
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (1)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (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 (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 (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"