fix(v02): replay empty loaded traces (#865)

Co-authored-by: Codex Agent <codex@hwlab.local>
This commit is contained in:
Lyon
2026-06-04 22:31:44 +08:00
committed by GitHub
parent ffae1c12e0
commit de0f79c3ce
2 changed files with 3 additions and 2 deletions
@@ -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);
});
@@ -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;
}