Merge pull request #1451 from pikasTech/fix/1422-live-snapshot-message-text

fix: 回填 Workbench live trace assistant 文本
This commit is contained in:
Lyon
2026-06-18 01:46:54 +08:00
committed by GitHub
+10 -1
View File
@@ -883,11 +883,20 @@ export const useWorkbenchStore = defineStore("workbench", () => {
const trace = snapshotToRunnerTrace(snapshot);
rememberTurnStatus(traceId, snapshot);
const status = statusFromResult(snapshot.status);
const terminal = isTerminalMessageStatus(status);
messages.value = messages.value.map((message) => {
if (message.traceId !== traceId) return message;
const runnerTrace = mergeRunnerTrace(message.runnerTrace, trace);
rememberTraceAuthority(runnerTrace);
return { ...message, status, traceAutoLifecycle: "running", runnerTrace, updatedAt: new Date().toISOString() };
const traceAssistantText = message.role === "agent" ? assistantTextFromTraceEvents(Array.isArray(runnerTrace.events) ? runnerTrace.events : []) : null;
const error = message.role === "agent" ? normalizeAgentError(runnerTrace.error ?? message.error) : normalizeAgentError(message.error);
const errorText = message.role === "agent" ? agentErrorDisplayText(error) : null;
const nextText = message.role === "agent" && terminal
? firstNonEmptyString(finalResponseText(runnerTrace.finalResponse), traceAssistantText, errorText, message.text) ?? message.text
: message.role === "agent" && !firstNonEmptyString(message.text)
? firstNonEmptyString(traceAssistantText, finalResponseText(runnerTrace.finalResponse), errorText, message.text) ?? message.text
: message.text;
return { ...message, status, text: nextText, traceAutoLifecycle: terminal ? "terminal" : "running", runnerTrace, error: error ?? message.error ?? null, updatedAt: new Date().toISOString() };
});
markWorkbenchTraceProjected(traceId);
void refreshSessionStatusById(trace.sessionId ?? selectedSessionId.value);