From de0f79c3ce1d8c952bb4c386eeb6f20aed3c1a0a Mon Sep 17 00:00:00 2001 From: Lyon <88232613+pikasTech@users.noreply.github.com> Date: Thu, 4 Jun 2026 22:31:44 +0800 Subject: [PATCH] fix(v02): replay empty loaded traces (#865) Co-authored-by: Codex Agent --- .../src/components/conversation/ConversationPanel.test.ts | 3 ++- .../src/components/conversation/ConversationPanel.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.test.ts b/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.test.ts index 4500b386..4c701860 100644 --- a/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.test.ts +++ b/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.test.ts @@ -23,6 +23,7 @@ const baseAgentMessage: ChatMessage = { test("conversation panel auto replays compact historical traces", () => { assert.equal(shouldAutoReplayTrace(baseAgentMessage), true); + assert.equal(shouldAutoReplayTrace({ ...baseAgentMessage, runnerTrace: { ...baseAgentMessage.runnerTrace, fullTraceLoaded: true, events: [] } }), true); }); test("conversation panel does not auto replay loaded, empty, or running traces", () => { @@ -30,5 +31,5 @@ test("conversation panel does not auto replay loaded, empty, or running traces", assert.equal(shouldAutoReplayTrace({ ...baseAgentMessage, runnerTrace: { ...baseAgentMessage.runnerTrace, eventCount: 0 } }), false); assert.equal(shouldAutoReplayTrace({ ...baseAgentMessage, status: "running" }), false); assert.equal(shouldAutoReplayTrace({ ...baseAgentMessage, traceReplayStatus: "完整 trace 已回放:49 个原始 event" }), false); - assert.equal(shouldAutoReplayTrace({ ...baseAgentMessage, runnerTrace: { ...baseAgentMessage.runnerTrace, fullTraceLoaded: true } }), false); + assert.equal(shouldAutoReplayTrace({ ...baseAgentMessage, runnerTrace: { ...baseAgentMessage.runnerTrace, fullTraceLoaded: true, events: [{ seq: 1, label: "assistant:message" }] } }), false); }); diff --git a/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.tsx b/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.tsx index d57b5d64..76b6dc6b 100644 --- a/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.tsx +++ b/web/hwlab-cloud-web/src/components/conversation/ConversationPanel.tsx @@ -107,8 +107,8 @@ export function shouldAutoReplayTrace(message: ChatMessage): boolean { if (!traceId) return false; if (message.status === "running" || trace?.status === "running") return false; if (message.traceReplayStatus) return false; - if (trace?.fullTraceLoaded === true) return false; const events = Array.isArray(trace?.events) ? trace.events : []; + if (trace?.fullTraceLoaded === true && events.length > 0) return false; const declaredCount = Number(trace?.eventCount ?? 0); return events.length === 0 && declaredCount > 0; }