Skip to content

chore: upstream reconcile through reference 99eaa993b #1352

chore: upstream reconcile through reference 99eaa993b

chore: upstream reconcile through reference 99eaa993b #1352

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

ci.yml

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

Annotations

62 errors, 20 warnings, and 11 notices
typecheck
Parameter 'subtitleLines' implicitly has an 'any' type.
typecheck
Parameter 'platformName' implicitly has an 'any' type.
typecheck
Binding element 'label' implicitly has an 'any' type.
typecheck
Binding element 'ok' implicitly has an 'any' type.
typecheck
Module '"@pymodel/pythinker-code-sdk"' has no exported member 'LoginUi'.
typecheck
Module '"@pymodel/pythinker-code-sdk"' has no exported member 'LoginProgressSpinnerHandle'.
typecheck
Module '"@pymodel/pythinker-code-sdk"' has no exported member 'LoginPlatformModelInfo'.
typecheck
Module '"@pymodel/pythinker-code-sdk"' has no exported member 'ApiKeyPromptOptions'.
typecheck
Module '"@pymodel/pythinker-code-sdk"' has no exported member 'formatErrorMessage'.
typecheck
Property 'setPermissionModeForActiveSessions' does not exist on type 'PythinkerRuntime'. Did you mean 'setYoloModeForActiveSessions'?
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-EAVa7J", - }, - ], } ❯ 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
[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
[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' } }
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(no-console): packages/agent-core-v2/src/human/utils/watch.ts#L90
Unexpected console statement.
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-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)
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 (3)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test (2)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test-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 (3)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test (2)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
test
"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"