chore: upstream reconcile through reference 99eaa993b #1360
Triggered via pull request
September 19, 2026 17:10
Status
Failure
Total duration
8m 30s
Artifacts
–
ci.yml
on: pull_request
Matrix: test
test-minidb
1m 34s
build
1m 58s
test-pi-tui
42s
test-windows
lint
30s
typecheck
2m 28s
test
4s
Annotations
52 errors, 10 warnings, and 11 notices
|
lint
Process completed with exit code 1.
|
|
[agent-gateway] test/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > keeps an existing global default_model on create:
packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L319
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogProviderWrite.test.ts:319:20
|
|
[agent-gateway] test/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > seeds the first model when the create body names no provider default:
packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L310
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogProviderWrite.test.ts:310:20
|
|
[agent-gateway] test/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > seeds the global default_model on a fresh setup (the provider default wins):
packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L288
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogProviderWrite.test.ts:288:20
|
|
[agent-gateway] test/modelCatalogProviderWrite.test.ts > server-v2 /api/v1 provider write endpoints > creates a credential-less provider (env-resolved types may omit api_key):
packages/agent-gateway/test/modelCatalogProviderWrite.test.ts#L273
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogProviderWrite.test.ts:273:20
|
|
[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
|
|
[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/tui/create-tui-state.test.ts > createTUIState > uses the docked fullscreen renderer by default:
apps/pythinker-code/test/tui/create-tui-state.test.ts#L109
AssertionError: expected TuiMainScreen{ children: [], …(33) } to be an instance of TuiAltScreen
❯ test/tui/create-tui-state.test.ts:109:24
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 outbound buffer > caps the number of session subscriptions per connection:
packages/agent-gateway/test/wsConnectionV1.test.ts#L893
AssertionError: expected [ 's0', 's1', 's10', 's11', …(61) ] to have a length of 64 but got 65
- Expected
+ Received
- 64
+ 65
❯ test/wsConnectionV1.test.ts:893:41
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 outbound buffer > skips queued controls once the connection is closed:
packages/agent-gateway/test/wsConnectionV1.test.ts#L881
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times
Received:
1st vi.fn() call:
Array [
"s1",
WsConnectionV1 {
"backpressureRetryTimer": undefined,
"backpressureSince": undefined,
"broadcaster": Object {
"addGlobalTarget": [Function addGlobalTarget],
"getBufferedSince": [Function getBufferedSince],
"getCursor": [Function getCursor],
"removeGlobalTarget": [Function removeGlobalTarget],
"subscribe": [Function Mock],
"unsubscribe": [Function unsubscribe],
},
"clientId": "",
"closed": true,
"connectedAt": "2026-09-19T17:14:56.718Z",
"controlQueue": Promise {},
"flushIntervalMs": 16,
"flushTimer": undefined,
"gotClientHello": false,
"heartbeatIntervalMs": 10000,
"heartbeatTimer": Object {
"hasRef": [Function hasRef],
"ref": [Function ref],
"refed": false,
"refresh": [Function refresh],
"unref": [Function unref],
Symbol(Symbol.toPrimitive): [Function [Symbol.toPrimitive]],
},
"highWaterMarkBytes": 1048576,
"id": "conn_01M2XAKYAE4K1H4RFV0TX7TT7K",
"lastInboundAt": 1789838096718,
"logger": undefined,
"maxBatchSize": 64,
"maxBufferSize": 1000,
"outbound": Array [],
"remoteAddress": null,
"socket": FakeSocket {
"CLOSED": 3,
"OPEN": 1,
"bufferedAmount": 0,
"closeCalls": Array [],
"handlers": Map {
"message" => Array [
[Function anonymous],
],
"close" => Array [
[Function anonymous],
],
"error" => Array [
[Function anonymous],
],
},
"readyState": 1,
"sent": Array [
"{"type":"server_hello","timestamp":"2026-09-19T17:14:56.718Z","payload":{"ws_connection_id":"conn_01M2XAKYAE4K1H4RFV0TX7TT7K","protocol_version":2,"heartbeat_ms":10000,"max_event_buffer_size":1000,"capabilities":{"event_batching":false,"compression":false}}}",
],
},
"subscriptions": Map {
"s1" => Object {
"agentFilter": undefined,
"transcriptGrades": undefined,
},
},
"userAgent": null,
"validateCredential": undefined,
},
undefined,
undefined,
Object {
"deferTranscriptReset": false,
"transcriptSince": undefined,
},
]
Number of calls: 1
❯ test/wsConnectionV1.test.ts:881:27
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 outbound buffer > releases a subscription that completes after the connection closed:
packages/agent-gateway/test/wsConnectionV1.test.ts#L865
AssertionError: expected "vi.fn()" to be called with arguments: [ 's1', WsConnectionV1{ …(24) } ]
Number of calls: 0
❯ test/wsConnectionV1.test.ts:865:25
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 outbound buffer > disconnects a client that floods control frames faster than they drain:
packages/agent-gateway/test/wsConnectionV1.test.ts#L836
AssertionError: expected +0 to be 32 // Object.is equality
- Expected
+ Received
- 32
+ 0
❯ test/wsConnectionV1.test.ts:836:38
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 outbound buffer > disconnects when the outbound queue exceeds the advertised buffer size:
packages/agent-gateway/test/wsConnectionV1.test.ts#L817
AssertionError: expected [] to deeply equal [ { code: 1013, …(1) } ]
- Expected
+ Received
- [
- {
- "code": 1013,
- "reason": "outbound buffer overflow",
- },
- ]
+ []
❯ test/wsConnectionV1.test.ts:817:31
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 outbound buffer > disconnects a consumer whose socket buffer stays past the hard byte bound:
packages/agent-gateway/test/wsConnectionV1.test.ts#L798
AssertionError: expected [ Array(1) ] to deeply equal []
- Expected
+ Received
- []
+ [
+ "{\"type\":\"assistant.delta\",\"seq\":1,\"volatile\":true,\"offset\":0,\"session_id\":\"s1\",\"timestamp\":\"2026-01-01T00:00:00.000Z\",\"payload\":{\"type\":\"assistant.delta\",\"agentId\":\"main\",\"sessionId\":\"s1\",\"turnId\":1,\"delta\":\"Hello\"}}",
+ ]
❯ test/wsConnectionV1.test.ts:798:25
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 Expert Talk ownership > releases the client arm for every subscribed session on disconnect:
packages/agent-gateway/test/wsConnectionV1.test.ts#L257
AssertionError: expected "vi.fn()" to be called 2 times, but got 0 times
❯ test/wsConnectionV1.test.ts:257:50
|
|
[agent-gateway] test/wsConnectionV1.test.ts > WsConnectionV1 Expert Talk ownership > stores the client identity and releases its arm on full unsubscribe:
packages/agent-gateway/test/wsConnectionV1.test.ts#L231
AssertionError: expected '' to be 'client-a' // Object.is equality
- Expected
+ Received
- client-a
❯ test/wsConnectionV1.test.ts:231:27
|
|
[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', …(6) }, …(1) ] to deeply equal [ { id: 'pythinker', …(6) }, …(1) ]
- Expected
+ Received
@@ -7,11 +7,11 @@
"models": [
"k2",
"turbo",
],
"status": "connected",
- "type": "pythinker",
+ "type": "openai",
},
{
"has_api_key": false,
"id": "openai",
"models": [
❯ test/modelCatalog.test.ts:197:34
|
|
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > reports indexState building before the first full sync and ready after:
packages/agent-gateway/test/search/searchService.test.ts#L446
AssertionError: expected 1 to be 2 // Object.is equality
- Expected
+ Received
- 2
+ 1
❯ test/search/searchService.test.ts:446:40
|
|
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > paginates with an opaque cursor and rejects changed conditions:
packages/agent-gateway/test/search/searchService.test.ts#L416
AssertionError: promise resolved "{ items: [ { …(10) } ], …(5) }" instead of rejecting
- Expected
+ Received
- Error {
- "message": "rejected promise",
+ {
+ "hasMore": false,
+ "incomplete": undefined,
+ "indexState": {
+ "degraded": undefined,
+ "documents": 3,
+ "indexedSessions": 1,
+ "stale": true,
+ "state": "ready",
+ "totalSessions": 1,
+ },
+ "items": [
+ {
+ "agentId": "main",
+ "role": "user",
+ "score": 0.5493061443340548,
+ "sessionId": "s1",
+ "sessionTitle": "",
+ "snippet": "zh three",
+ "stepId": undefined,
+ "time": 1700000200000,
+ "turn": 2,
+ "workspaceId": "ws_test",
+ },
+ ],
+ "pageToken": undefined,
+ "source": "index",
}
❯ test/search/searchService.test.ts:416:5
|
|
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > hits session titles as title docs:
packages/agent-gateway/test/search/searchService.test.ts#L322
AssertionError: expected undefined to be defined
❯ test/search/searchService.test.ts:322:22
|
|
[agent-gateway] test/search/searchService.test.ts > GlobalSearchService > indexes user and assistant text and finds Chinese and English terms:
packages/agent-gateway/test/search/searchService.test.ts#L300
AssertionError: expected '' to be 'zh' // Object.is equality
- Expected
+ Received
- zh
❯ test/search/searchService.test.ts:300:32
|
|
[agent-gateway] test/capabilities.test.ts > server-v2 /api/v1 capabilities > rejects pythinker-cu install on unsupported platforms with 40925:
packages/agent-gateway/test/capabilities.test.ts#L82
AssertionError: expected 40418 to be 40925 // Object.is equality
- Expected
+ Received
- 40925
+ 40418
❯ test/capabilities.test.ts:82:25
|
|
[agent-gateway] test/capabilities.test.ts > server-v2 /api/v1 capabilities > gets a single capability and 40418s on an unknown id:
packages/agent-gateway/test/capabilities.test.ts#L58
AssertionError: expected 40418 to be +0 // Object.is equality
- Expected
+ Received
- 0
+ 40418
❯ test/capabilities.test.ts:58:23
|
|
[agent-gateway] test/capabilities.test.ts > server-v2 /api/v1 capabilities > lists both built-in capabilities with the documented shape:
packages/agent-gateway/test/capabilities.test.ts#L38
AssertionError: expected [] to deeply equal [ 'pythinker-cu', …(1) ]
- Expected
+ Received
- [
- "pythinker-cu",
- "pythinker-webbridge",
- ]
+ []
❯ test/capabilities.test.ts:38:17
|
|
[agent-gateway] test/apiSurface.snapshot.test.ts > API surface snapshot > matches the documented v2 route table and meta endpoints:
packages/agent-gateway/test/apiSurface.snapshot.test.ts#L82
Error: Snapshot `API surface snapshot > matches the documented v2 route table and meta endpoints 1` mismatched
- Expected
+ Received
@@ -21,14 +21,10 @@
"DELETE",
"/api/v1/files/{file_id}",
],
[
"DELETE",
- "/api/v1/auth/login",
- ],
- [
- "DELETE",
"/api/v1/providers/{provider_id}",
],
[
"DELETE",
"/api/v1/workspaces/{workspace_id}",
@@ -137,26 +133,10 @@
"GET",
"/api/v1/models",
],
[
"GET",
- "/api/v1/auth/login",
- ],
- [
- "GET",
- "/api/v1/oauth/region",
- ],
- [
- "GET",
- "/api/v1/auth/status",
- ],
- [
- "GET",
- "/api/v1/auth/status",
- ],
- [
- "GET",
"/api/v1/plugins",
],
[
"GET",
"/api/v1/plugins/marketplace",
@@ -377,18 +357,10 @@
"POST",
"/api/v1/models/{tail}",
],
[
"POST",
- "/api/v1/auth/login",
- ],
- [
- "POST",
- "/api/v1/auth/logout",
- ],
- [
- "POST",
"/api/v1/plugins",
],
[
"POST",
"/api/v1/plugins/{tail}",
❯ test/apiSurface.snapshot.test.ts:82:30
|
|
[pyaos] test/local.test.ts > LocalPyaos > readText errors parameter (Python compat) > drops invalid bytes with errors="ignore":
packages/pyaos/test/local.test.ts#L375
AssertionError: expected '中文' to be 'zh' // Object.is equality
Expected: "zh"
Received: "中文"
❯ test/local.test.ts:375:23
|
|
[pyaos] test/local.test.ts > LocalPyaos > readText errors parameter (Python compat) > returns U+FFFD replacement characters with errors="replace":
packages/pyaos/test/local.test.ts#L366
AssertionError: expected '中\ufffd文' to contain 'zh'
Expected: "zh"
Received: "中�文"
❯ test/local.test.ts:366:23
|
|
[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 > imports every valid registry entry with a source blob and full model metadata:
packages/agent-gateway/test/modelCatalogCatalog.test.ts#L561
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogCatalog.test.ts:561: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 > answers 40004 when a needs-base-url entry is imported without one, 201 with one:
packages/agent-gateway/test/modelCatalogCatalog.test.ts#L462
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogCatalog.test.ts:462:23
|
|
[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 > keeps the stored api_key when a re-import omits it (tri-state like PUT):
packages/agent-gateway/test/modelCatalogCatalog.test.ts#L401
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogCatalog.test.ts:401:26
|
|
[agent-gateway] test/modelCatalogCatalog.test.ts > server-v2 /api/v1 catalog browse + import endpoints > re-imports an existing id as a refresh: credentials replaced, stale aliases dropped:
packages/agent-gateway/test/modelCatalogCatalog.test.ts#L368
AssertionError: expected 200 to be 201 // Object.is equality
- Expected
+ Received
- 201
+ 200
❯ test/modelCatalogCatalog.test.ts:368:26
|
|
[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
|
|
[cli] test/tui/components/chrome/moon-loader.test.ts > MoonLoader > uses the shared Braille mark for the waiting state:
apps/pythinker-code/test/tui/components/chrome/moon-loader.test.ts#L50
AssertionError: expected '⠋' to be '⣷' // Object.is equality
Expected: "⣷"
Received: "⠋"
❯ test/tui/components/chrome/moon-loader.test.ts:50:43
|
|
[cli] test/tui/commands/secondary-model.test.ts > handleSecondaryModelCommand > reports a persistence failure without a status message:
apps/pythinker-code/test/tui/commands/secondary-model.test.ts#L232
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times
Received:
1st vi.fn() call:
Array [
"Skipped refreshing models: host.authFlow.refreshOAuthProviderModels is not a function",
"warning",
]
Number of calls: 1
❯ test/tui/commands/secondary-model.test.ts:232:33
|
|
[cli] test/utils/process/fd-detect.test.ts > detectFdPath > does not download fd when no local binary is available:
apps/pythinker-code/test/utils/process/fd-detect.test.ts#L56
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times
Received:
1st vi.fn() call:
Array [
"https://code.pythinker.com/pythinker-code/fd/fd-v10.4.2-x86_64-unknown-linux-musl.tar.gz",
Object {
"signal": AbortSignal {
Symbol(kEvents): Map {},
Symbol(events.maxEventTargetListeners): 0,
Symbol(events.maxEventTargetListenersWarned): false,
Symbol(kHandlers): Map {},
Symbol(kAborted): false,
Symbol(kReason): undefined,
Symbol(kComposite): false,
Symbol(kTimeout): true,
},
},
]
Number of calls: 1
❯ test/utils/process/fd-detect.test.ts:56:27
|
|
[cli] test/tui/pythinker-tui-startup.test.ts > PythinkerTUI startup > keeps the active session when logging out a different provider:
apps/pythinker-code/test/tui/pythinker-tui-startup.test.ts#L2312
AssertionError: expected "vi.fn()" to be called with arguments: [ 'openai' ]
Number of calls: 0
❯ test/tui/pythinker-tui-startup.test.ts:2312:28
|
|
[cli] test/cli/export.test.ts > pythinker export > builds the v2 harness by default:
apps/pythinker-code/test/cli/export.test.ts#L564
AssertionError: expected "vi.fn()" to be called 1 times, but got 0 times
❯ test/cli/export.test.ts:564:49
|
|
[klient] test/e2e/legacy/client.test.ts > DaemonClient session action helpers > model catalog helpers call the catalog and action-suffix routes:
packages/klient/test/e2e/legacy/client.test.ts#L463
AssertionError: expected [ [ 'GET', …(1) ], …(4) ] to deeply equal [ [ 'GET', …(1) ], …(4) ]
- Expected
+ Received
@@ -7,11 +7,11 @@
"GET",
"http://server.example.test/api/v1/models",
],
[
"POST",
- "http://server.example.test/api/v1/models/pythinker-code%2Fkimi-for-coding:set_default",
+ "http://server.example.test/api/v1/models/openai%2Fgpt-4o:set_default",
],
[
"GET",
"http://server.example.test/api/v1/providers",
],
❯ test/e2e/legacy/client.test.ts:463:63
|
|
[agent-gateway] test/workspaces.test.ts > server-v2 /api/v1/workspaces > adds a relative directory without persisting when persist is false (variant 2):
packages/agent-gateway/test/workspaces.test.ts#L371
AssertionError: promise resolved "'[workspace]\nadditional_dir = [ "/tmp…'" instead of rejecting
- Expected:
Error {
"message": "rejected promise",
}
+ Received:
"[workspace]
additional_dir = [ \"/tmp/pythinker-server-v2-workspaces-nZ7jsr/extra\" ]
"
❯ test/workspaces.test.ts:371:57
|
|
[agent-gateway] test/workspaces.test.ts > server-v2 /api/v1/workspaces > adds an additional directory and persists it by default (variant 2):
packages/agent-gateway/test/workspaces.test.ts#L339
Error: EEXIST: file already exists, mkdir '/tmp/pythinker-server-v2-workspaces-nZ7jsr/extra'
❯ test/workspaces.test.ts:339:5
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { errno: -17, code: 'EEXIST', syscall: 'mkdir', path: '/tmp/pythinker-server-v2-workspaces-nZ7jsr/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-s9dwddk0', …(12) } to match object { id: 'test-s9dwddk0', …(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-s9dwddk0",
"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_a192fcbc-a7f4-4ae0-b8be-7f702d2769cf",
"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-19T17:16:40.306Z",
+ "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
|
|
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/
|
|
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/
|
|
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 (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 (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/
|
|
build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test (2)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
test (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 (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"
|
|
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"
|
|
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 (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 (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"
|
|
build
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test (2)
"The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748"
|
|
test (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 (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"
|