From d0a00abfce8c904381d0d6e2cc895a54a385cce7 Mon Sep 17 00:00:00 2001 From: Lyon <88232613+pikasTech@users.noreply.github.com> Date: Wed, 24 Jun 2026 05:02:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(workbench):=20=E7=94=A8=20agent=20session?= =?UTF-8?q?=20=E4=B8=8A=E4=B8=8B=E6=96=87=E8=A1=A5=E9=BD=90=20durable=20?= =?UTF-8?q?=E6=8A=95=E5=BD=B1=20sessionId=20(#2013)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(workbench): pass projection context to message writer * fix(workbench): resolve session id from agent session context --- internal/cloud/code-agent-trace-store.test.ts | 2 +- internal/cloud/code-agent-trace-store.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/cloud/code-agent-trace-store.test.ts b/internal/cloud/code-agent-trace-store.test.ts index 85c6440d..920b75dd 100644 --- a/internal/cloud/code-agent-trace-store.test.ts +++ b/internal/cloud/code-agent-trace-store.test.ts @@ -64,7 +64,7 @@ test("durable code agent trace store projects appended events without counting a }); const traceId = "trc_trace-store-durable-projection"; - traceStore.append(traceId, { type: "request", status: "accepted", label: "request:accepted", sessionId: "ses_trace_store_durable" }); + traceStore.append(traceId, { type: "request", status: "accepted", label: "request:accepted" }, { agentSessionId: "ses_trace_store_durable" }); traceStore.appendAssistantDelta(traceId, { itemId: "assistant", chunk: "hello" }); await Promise.resolve(); await Promise.resolve(); diff --git a/internal/cloud/code-agent-trace-store.ts b/internal/cloud/code-agent-trace-store.ts index f1d0e594..59943573 100644 --- a/internal/cloud/code-agent-trace-store.ts +++ b/internal/cloud/code-agent-trace-store.ts @@ -253,10 +253,12 @@ function persistTraceEvent(traceEventStore, event, meta = {}, workbenchEventWrit async function persistTraceEventAsync(traceEventStore, event, meta = {}, workbenchEventWriter = null) { try { + const resolvedAgentSessionId = event.agentSessionId ?? event.sessionId ?? meta.agentSessionId ?? meta.sessionId; + const resolvedSessionId = event.sessionId ?? meta.sessionId ?? resolvedAgentSessionId; const projectionContext = { traceId: event.traceId, - agentSessionId: event.agentSessionId ?? event.sessionId ?? meta.agentSessionId ?? meta.sessionId, - sessionId: event.sessionId ?? meta.sessionId + agentSessionId: resolvedAgentSessionId, + sessionId: resolvedSessionId }; try { await traceEventStore.writeAgentTraceEvent({ event }, projectionContext);