Avoid duplicate final output in GUI

This commit is contained in:
武阳
2026-04-29 19:32:06 +08:00
parent 279f56386c
commit e3664f8843
+7 -5
View File
@@ -548,13 +548,15 @@ function renderRunResult(data) {
}
const tail = transcript.slice(lastUserIndex + 1);
renderTranscriptEntries(tail);
// Always show the canonical final output if it isn't already present.
const lastMsg = els.chat.querySelector(".message.assistant:last-of-type .body");
if (!lastMsg || lastMsg.textContent.trim() !== (data.final_output || "").trim()) {
if (data.final_output && data.final_output.trim()) {
// transcript 通常已经包含最终 assistant 消息;只有缺失时才用 final_output 兜底。
const finalOutput = (data.final_output || "").trim();
const lastAssistant = [...tail]
.reverse()
.find((entry) => entry?.role === "assistant" && (entry.content || "").trim());
const lastAssistantContent = (lastAssistant?.content || "").trim();
if (finalOutput && finalOutput !== lastAssistantContent) {
appendMessage({ role: "assistant", content: data.final_output });
}
}
}
// ---------------------------------------------------------------------------