Skip to content

feat(kap-server): add the WS v2 realtime protocol stack (transcript-v3) #10038

feat(kap-server): add the WS v2 realtime protocol stack (transcript-v3)

feat(kap-server): add the WS v2 realtime protocol stack (transcript-v3) #10038

Triggered via pull request September 4, 2026 10:17
Status Failure
Total duration 9m 50s
Artifacts

ci.yml

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

Annotations

26 errors and 20 warnings
typecheck
Process completed with exit code 2.
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L662
Property 'input' comes from an index signature, so it must be accessed with ['input'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L576
Property 'raw' comes from an index signature, so it must be accessed with ['raw'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L575
Property 'sourceAgentId' comes from an index signature, so it must be accessed with ['sourceAgentId'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L573
Property 'sourceKind' comes from an index signature, so it must be accessed with ['sourceKind'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L572
Property 'notificationType' comes from an index signature, so it must be accessed with ['notificationType'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L571
Property 'severity' comes from an index signature, so it must be accessed with ['severity'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L567
Property 'sourceId' comes from an index signature, so it must be accessed with ['sourceId'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L566
Property 'body' comes from an index signature, so it must be accessed with ['body'].
typecheck: packages/kap-server/src/services/v2Projection/agentProjector.ts#L565
Property 'title' comes from an index signature, so it must be accessed with ['title'].
test (1)
Process completed with exit code 1.
[kap-server] test/v2Projection.test.ts > WS v2 全消息面 > system 剩余 subtype:hook / skill / notice / clear / swarm: packages/kap-server/test/v2Projection.test.ts#L4039
AssertionError: expected [ [ 'system', 'hook' ], …(4) ] to deeply equal [ [ 'system', 'hook' ], …(5) ] - Expected + Received @@ -3,14 +3,10 @@ "system", "hook", ], [ "system", - "skill", - ], - [ - "system", "notice", ], [ "system", "clear", ❯ test/v2Projection.test.ts:4039:59
[kap-server] test/v2Projection.test.ts > WS v2 传输层 > subagent:子代理通道按需订阅: packages/kap-server/test/v2Projection.test.ts#L3859
AssertionError: expected [ { type: 'turn', …(9) }, …(14) ] to deeply equal [ { type: 'turn', …(8) }, …(13) ] - Expected + Received @@ -10,13 +10,29 @@ "started_at": "2026-09-03T17:30:01.600Z", "state": "running", "timestamp": "2026-09-03T17:30:01.600Z", "turn_id": "r1", "type": "turn", + "user_message_id": "r1.u0", }, { "agent_id": "review_01", + "created_at": "2026-09-03T17:30:01.600Z", + "message_id": "r1.u0", + "origin": { + "kind": "task", + "task_id": "task_01", + }, + "session_id": "s_16", + "status": "running", + "text": "", + "timestamp": "2026-09-03T17:30:01.600Z", + "turn_id": "r1", + "type": "user", + }, + { + "agent_id": "review_01", "ordinal": 0, "session_id": "s_16", "started_at": "2026-09-03T17:30:01.620Z", "state": "running", "step_id": "r1.0", @@ -171,7 +187,8 @@ "type": "turn", "usage": { "input_tokens": 2200, "output_tokens": 64, }, + "user_message_id": "r1.u0", }, ] ❯ test/v2Projection.test.ts:3859:26
[kap-server] test/v2Projection.test.ts > v2Projection × REST 历史冷重建 > background-task REST 历史: packages/kap-server/test/v2Projection.test.ts#L3106
AssertionError: expected { session_id: 's_11', …(3) } to deeply equal { session_id: 's_11', …(3) } - Expected + Received @@ -30,10 +30,11 @@ "session_id": "s_11", "started_at": "2026-09-03T16:00:00.020Z", "state": "completed", "step_id": "t1.0", "timestamp": "2026-09-03T16:00:04.100Z", + "timing": undefined, "turn_id": "t1", "type": "step", "usage": { "input_cache_creation": 0, "input_cache_read": 9200, @@ -44,12 +45,16 @@ { "agent_id": "main", "created_at": "2026-09-03T16:00:00.000Z", "finished_at": "2026-09-03T16:00:04.895Z", "message_id": "t1.u0", + "notification": undefined, + "origin": undefined, "session_id": "s_11", + "skill_activations": undefined, "status": "completed", + "steered_at": undefined, "text": "跑一下完整构建", "timestamp": "2026-09-03T16:00:00.010Z", "turn_id": "t1", "type": "user", }, @@ -75,10 +80,14 @@ "turn_id": "t1", "type": "assistant", }, { "agent_id": "main", + "agent_refs": undefined, + "approval_id": undefined, + "display": undefined, + "error": undefined, "input": { "command": "pnpm build", }, "name": "Bash", "output": { @@ -87,10 +96,11 @@ }, "session_id": "s_11", "state": "done", "step_id": "t1.0", "timestamp": "2026-09-03T16:00:04.010Z", + "todo_id": undefined, "tool_call_id": "call_01", "turn_id": "t1", "type": "tool_call", }, { @@ -101,10 +111,11 @@ "session_id": "s_11", "started_at": "2026-09-03T16:00:04.145Z", "state": "completed", "step_id": "t1.1", "timestamp": "2026-09-03T16:00:04.800Z", + "timing": undefined, "turn_id": "t1", "type": "step", "usage": { "input_cache_creation": 0, "input_cache_read": 10100, @@ -123,22 +134,28 @@ "turn_id": "t1", "type": "assistant", }, { "agent_id": "main", + "child_agent_id": undefined, "description": "pnpm build", "detached": true, "ended_at": "2026-09-03T16:07:58.495Z", + "error": undefined, "kind": "shell", + "model": undefined, "output_tail": "… build finished successfully in 7m 56s …", "result_summary": "构建成功:8 个包全部编译通过", "session_id": "s_11", "started_at": "2026-09-03T16:00:01.500Z", "state": "completed", + "state_reason": undefined, "task_id": "task_01", + "thinking_effort": undefined, "timestamp": "2026-09-03T16:07:58.500Z", "type": "task", + "usage": undefined, }, { "agent_id": "main", "duration_ms": 797, "ended_at": "2026-09-03T16:07:59.395Z", @@ -167,10 +184,11 @@ "session_id": "s_11", "started_at": "2026-09-03T16:07:58.618Z", "state": "completed", "step_id": "t2.0", "timestamp": "2026-09-03T16:07:59.300Z", + "timing": undefined, "turn_id": "t2", "type": "step", "usage": { "input_cache_creation": 0, "input_cache_read": 12000, @@ -182,11 +200,17 @@ "agent_id": "main", "created_at": "2026-09-03T16:07:58.598Z", "finished_at": "2026-09-03T16:07:59.395Z", "message_id": "t2.u0", "notification": { + "agent_id": undefined, "body": "构建成功:8 个包全部编译通过", + "raw": "<notification id=\"task:task_01:completed\" category=\"task\" type=\"task.completed\" source_kind=\"background_task\" source_id=\"task_01\"> + Title: 后台构建完成 + Severity: info + 构建成功:8 个包全部编译通过 + </notification>", "severity": "info", "source_id": "task_01", "source_kind": "background_task", "title": "后台构建完成",
[kap-server] test/v2Projection.test.ts > v2Projection × 实例对拍 > subagent 四场景: packages/kap-server/test/v2Projection.test.ts#L76
AssertionError: expected [ { type: 'user', …(14) }, …(32) ] to deeply equal [ { type: 'user', …(8) }, …(31) ] - Expected + Received @@ -1,19 +1,26 @@ [ { "agent_id": "main", + "attachment_ids": undefined, "created_at": "2026-09-03T17:30:00.000Z", + "finished_at": undefined, "message_id": "t1.u0", + "notification": undefined, + "origin": undefined, "session_id": "s_16", + "skill_activations": undefined, "status": "running", + "steered_at": undefined, "text": "白屏修好了,帮我审查一下改动", "timestamp": "2026-09-03T17:30:00.010Z", "turn_id": "t1", "type": "user", }, { "agent_id": "main", + "attachment_ids": undefined, "ordinal": 0, "origin": { "kind": "user", }, "session_id": "s_16", @@ -26,44 +33,57 @@ }, { "activity": "turn", "busy": true, "context_tokens": 1820, + "goal": undefined, + "last_turn_reason": undefined, "main_turn_active": true, "max_context_tokens": 262144, "model": "kimi-k3-highspeed", + "modes": undefined, "pending_interaction": "none", "permission": "manual", "phase": { "kind": "running", "since": 1788456600015, "step": 0, "step_id": "t1.0", "turn_id": 0, }, "session_id": "s_16", + "thinking_effort": undefined, "timestamp": "2026-09-03T17:30:00.020Z", "type": "session.state", "usage": { + "by_model": undefined, + "current_turn": undefined, "total": { "input_cache_creation": 0, "input_cache_read": 0, "input_other": 0, "output": 0, }, }, }, { "agent_id": "main", + "end_message": undefined, + "end_reason": undefined, + "ended_at": undefined, + "finish_reason": undefined, "ordinal": 0, + "retry": undefined, "session_id": "s_16", "started_at": "2026-09-03T17:30:00.022Z", "state": "running", "step_id": "t1.0", "timestamp": "2026-09-03T17:30:00.022Z", + "timing": undefined, "turn_id": "t1", "type": "step", + "usage": undefined, }, { "agent_id": "main", "message_id": "t1.0.h0", "session_id": "s_16", @@ -137,20 +157,27 @@ { "agent_id": "review_01", "role": "child", }, ], + "approval_id": undefined, + "display": undefined, + "error": undefined, "input": { "agent_type": "reviewer", "description": "审查 LoginView 的白屏修复", "run_in_background": true, }, "name": "Agent", + "output": undefined, + "progress": undefined, "session_id": "s_16", "state": "running", "step_id": "t1.0", + "task_id": undefined, "timestamp": "2026-09-03T17:30:01.500Z", + "todo_id": undefined, "tool_call_id": "call_01", "turn_id": "t1", "type": "tool_call", }, { @@ -159,38 +186,46 @@ { "agent_id": "review_01", "role": "child", }, ], + "approval_id": undefined, + "display": undefined, + "error": undefined, "input": { "agent_type": "reviewer", "description": "审查 LoginView 的白屏修复", "run_in_background": true, }, "name": "Agent", "output": { "task_id": "task_01", }, + "progress": undefined, "session_id": "s_16", "state": "done", "step_id": "t1.0", + "task_id": undefined, "timestamp": "2026-09-03T17:30:01.600Z", + "todo_id": undefined, "tool_call_id": "call_01", "turn_id": "t1", "type": "tool_call", }, { "agent_id": "main", "child_agent_id": "review_01", "description": "审查 LoginView 的白屏修复", "detached": true, "kind": "subagent", + "model": undefined, "output_tail": "", "session_id": "s_16", "started_at": "2026-09-03T17:30:01.610Z", "state":
test (2)
Process completed with exit code 1.
[agent-core-v2] test/features/plan/plan.test.ts > Plan service > plan mode Bash ordinary permission behavior > allows Bash through ordinary yolo permission behavior: packages/agent-core-v2/test/features/plan/plan.test.ts#L794
Error: Snapshot `Plan service > plan mode Bash ordinary permission behavior > allows Bash through ordinary yolo permission behavior 1` mismatched - Expected + Received @@ -1,11 +1,11 @@ [wire] permission.set_mode { "agentId": "main", "mode": "yolo", "time": "<time>" } [wire] plan_mode.enter { "agentId": "main", "id": "test-plan", "time": "<time>" } [emit] agent.status.updated { "time": "<time>", "agentId": "main", "planMode": true } [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Remove forbidden.txt" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Remove forbidden.txt" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Remove forbidden.txt" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Remove forbidden.txt" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Remove forbidden.txt" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Remove forbidden.txt" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Remove forbidden.txt" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/features/plan/plan.test.ts:794:40
[agent-core-v2] test/features/plan/plan.test.ts > Plan service > plan allows safe tool flow > allows read-only Bash to continue through permission and execution: packages/agent-core-v2/test/features/plan/plan.test.ts#L711
Error: Snapshot `Plan service > plan allows safe tool flow > allows read-only Bash to continue through permission and execution 1` mismatched - Expected + Received @@ -1,11 +1,11 @@ [wire] permission.set_mode { "agentId": "main", "mode": "yolo", "time": "<time>" } [wire] plan_mode.enter { "agentId": "main", "id": "test-plan", "time": "<time>" } [emit] agent.status.updated { "time": "<time>", "agentId": "main", "planMode": true } [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Inspect without mutating files" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Inspect without mutating files" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Inspect without mutating files" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Inspect without mutating files" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Inspect without mutating files" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Inspect without mutating files" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Inspect without mutating files" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/features/plan/plan.test.ts:711:40
[agent-core-v2] test/agent/loop/loop.test.ts > Agent loop > runs an agent turn through registered tool approval and execution: packages/agent-core-v2/test/agent/loop/loop.test.ts#L386
Error: Snapshot `Agent loop > runs an agent turn through registered tool approval and execution 1` mismatched - Expected + Received @@ -1,9 +1,9 @@ [wire] tools.set_active_tools { "agentId": "main", "names": [ "Lookup" ], "time": "<time>" } [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Look up moon" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Look up moon" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Look up moon" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Look up moon" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Look up moon" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Look up moon" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Look up moon" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/agent/loop/loop.test.ts:386:43
[agent-core-v2] test/agent/loop/loop.test.ts > Agent loop > fails the turn after a filtered step completes: packages/agent-core-v2/test/agent/loop/loop.test.ts#L132
Error: Snapshot `Agent loop > fails the turn after a filtered step completes 1` mismatched - Expected + Received @@ -1,8 +1,8 @@ [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Hello" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Hello" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Hello" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Hello" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Hello" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Hello" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Hello" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/agent/loop/loop.test.ts:132:38
[agent-core-v2] test/agent/loop/loop.test.ts > Agent loop > runs a text-only agent turn from prompt to completion: packages/agent-core-v2/test/agent/loop/loop.test.ts#L71
Error: Snapshot `Agent loop > runs a text-only agent turn from prompt to completion 1` mismatched - Expected + Received @@ -1,9 +1,9 @@ [wire] tools.set_active_tools { "agentId": "main", "names": [], "time": "<time>" } [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Hello" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Hello" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Hello" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Hello" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Hello" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Hello" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Hello" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/agent/loop/loop.test.ts:71:38
[agent-core-v2] test/tool/tool.test.ts > Agent tools > registered user tools > routes registered user tools through tool.call request/response: packages/agent-core-v2/test/tool/tool.test.ts#L4303
Error: Snapshot `Agent tools > registered user tools > routes registered user tools through tool.call request/response 1` mismatched - Expected + Received @@ -1,10 +1,10 @@ [wire] permission.set_mode { "agentId": "main", "mode": "auto", "time": "<time>" } [wire] tools.register_user_tool { "name": "Lookup", "description": "Look up a short test value.", "parameters": { "type": "object", "properties": { "query": { "type": "string" } }, "required": [ "query" ], "additionalProperties": false }, "agentId": "main", "time": "<time>" } [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Look up moon" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Look up moon" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Look up moon" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Look up moon" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Look up moon" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Look up moon" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Look up moon" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/tool/tool.test.ts:4303:9
[kap-server] test/v2Engine.e2e.test.ts > v2 stack 真实引擎 e2e > (c) manual 权限 approval:interaction 全链路: packages/kap-server/test/v2Engine.e2e.test.ts#L342
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ test/v2Engine.e2e.test.ts:342:143
[kap-server] test/v2Engine.e2e.test.ts > v2 stack 真实引擎 e2e: packages/kap-server/test/v2Engine.e2e.test.ts#L254
Error: Hook timed out in 60000ms. If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout". ❯ test/v2Engine.e2e.test.ts:254:3
test (4)
Process completed with exit code 1.
[agent-core-v2] test/app/config/config.test.ts > Agent config > keeps turn-start config for later steps and applies updates to the next turn: packages/agent-core-v2/test/app/config/config.test.ts#L336
Error: Snapshot `Agent config > keeps turn-start config for later steps and applies updates to the next turn 1` mismatched - Expected + Received @@ -1,8 +1,8 @@ [wire] prompt.accepted { "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Look up before config changes" } ], "time": "<time>" } [emit] prompt.accepted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "content": [ { "type": "text", "text": "Look up before config changes" } ] } - [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Look up before config changes" } ], "createdAt": "<time>" } + [emit] prompt.submitted { "time": "<time>", "agentId": "main", "promptId": "<msg-1>", "userMessageId": "<msg-1>", "status": "running", "content": [ { "type": "text", "text": "Look up before config changes" } ], "createdAt": "<time>", "origin": { "kind": "user" } } [wire] turn.prompt { "agentId": "main", "input": [ { "type": "text", "text": "Look up before config changes" } ], "origin": { "kind": "user" }, "promptId": "<msg-1>", "time": "<time>" } [emit] turn.started { "time": "<time>", "agentId": "main", "turnId": 0, "promptId": "<msg-1>", "origin": { "kind": "user" }, "prompt": "Look up before config changes" } [emit] agent.activity.updated { "time": "<time>", "lifecycle": "ready", "turn": { "turnId": 0, "origin": { "kind": "user" }, "phase": "running", "step": 0, "ending": false, "pendingApprovals": [], "activeToolCalls": [], "since": "<time>" }, "background": [], "agentId": "main" } [emit] context.spliced { "time": "<time>", "agentId": "main", "start": 0, "deleteCount": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Look up before config changes" } ], "toolCalls": [], "origin": { "kind": "user" }, "id": "<msg-1>" } ] } [emit] prompt.started { "time": "<time>", "agentId": "main", "promptId": "<msg-1>" } ❯ test/app/config/config.test.ts:336:43
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/
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-vscode-legacy
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(first): packages/agent-core-v2/src/_base/di/test.ts#L11
Import statements must come first
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-plugin-unicorn(catch-error-name): packages/agent-core-v2/src/_base/errors/unexpectedError.ts#L28
The catch parameter "err" should be named "error"
eslint-plugin-unicorn(catch-error-name): packages/agent-core-v2/src/_base/errors/unexpectedError.ts#L20
The catch parameter "handlerErr" should be named "error"
eslint(no-console): packages/agent-core-v2/src/_base/di/lifecycle.ts#L640
Unexpected console statement.
eslint(no-console): packages/agent-core-v2/src/_base/di/lifecycle.ts#L558
Unexpected console statement.
eslint(no-loop-func): packages/agent-core-v2/src/_base/event.ts#L211
Function declared in a loop contains unsafe references to variable(s)
eslint(no-loop-func): packages/agent-core-v2/src/_base/event.ts#L206
Function declared in a loop contains unsafe references to variable(s)
test (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 (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/
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 (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/