Merge pull request #1451 from pikasTech/fix/1422-live-snapshot-message-text
fix: 回填 Workbench live trace assistant 文本
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user