Merge pull request #1783 from pikasTech/fix/1770-clear-terminal-transient-diagnostics-20260621051510
fix: clear transient workbench diagnostics on terminal turn
This commit is contained in:
@@ -503,15 +503,24 @@ export const useWorkbenchStore = defineStore("workbench", () => {
|
||||
function syncTurnStatusToMessage(traceId: string, result: AgentChatResultResponse | TraceSnapshot): void {
|
||||
const authoritySessionId = traceResultSessionId(result);
|
||||
updateTraceMessages(traceId, authoritySessionId, (message) => {
|
||||
const runnerTrace = mergeTerminalResultTrace(message.runnerTrace, result as AgentChatResultResponse);
|
||||
const resultStatus = normalizedStatusText((result as AgentChatResultResponse).status) ?? null;
|
||||
const terminal = (result as AgentChatResultResponse).terminal === true || isTerminalMessageStatus(resultStatus);
|
||||
const resultError = normalizeAgentError((result as AgentChatResultResponse).error ?? null);
|
||||
const resultProjection = projectionFromResult(result as AgentChatResultResponse);
|
||||
const mergedRunnerTrace = mergeTerminalResultTrace(message.runnerTrace, result as AgentChatResultResponse);
|
||||
const runnerTrace = terminal && !resultError && !resultProjection ? clearRunnerTraceTransientDiagnostics(mergedRunnerTrace) : mergedRunnerTrace;
|
||||
rememberTraceAuthority(runnerTrace);
|
||||
const error = normalizeAgentError((result as AgentChatResultResponse).error ?? runnerTrace?.error ?? message.error);
|
||||
const error = resultError ?? (terminal ? null : normalizeAgentError(runnerTrace?.error ?? message.error));
|
||||
const agentRun = agentRunFromResult(result as AgentChatResultResponse, runnerTrace) ?? agentRunFromMessage(message);
|
||||
const projection = projectionFromResult(result as AgentChatResultResponse) ?? runnerTrace.projection ?? message.projection ?? null;
|
||||
return { ...message, ...messageTimingPatch(result), runnerTrace, error: error ?? message.error ?? null, projection, projectionStatus: projection?.projectionStatus ?? null, projectionHealth: projection?.projectionHealth ?? null, blocker: projection?.blocker ?? null, agentRun: agentRun ?? undefined, updatedAt: new Date().toISOString() };
|
||||
const projection = resultProjection ?? (terminal ? null : runnerTrace.projection ?? message.projection ?? null);
|
||||
return { ...message, ...messageTimingPatch(result), runnerTrace, error, projection, projectionStatus: projection?.projectionStatus ?? null, projectionHealth: projection?.projectionHealth ?? null, blocker: projection?.blocker ?? null, agentRun: agentRun ?? undefined, updatedAt: new Date().toISOString() };
|
||||
});
|
||||
}
|
||||
|
||||
function clearRunnerTraceTransientDiagnostics(trace: NonNullable<ChatMessage["runnerTrace"]>): NonNullable<ChatMessage["runnerTrace"]> {
|
||||
return { ...trace, error: undefined, projection: null, projectionStatus: null, projectionHealth: null, staleMs: null, blocker: null };
|
||||
}
|
||||
|
||||
async function submitMessage(text: string): Promise<boolean> {
|
||||
const value = text.trim();
|
||||
if (!value) return false;
|
||||
|
||||
Reference in New Issue
Block a user