Merge pull request #1788 from pikasTech/fix/1770-message-status-seal

fix(workbench): seal message status from turn projection
This commit is contained in:
Lyon
2026-06-21 07:53:49 +08:00
committed by GitHub
@@ -240,8 +240,10 @@ function buildWorkbenchProjectionFacts({ traceId = null, ownerUserId = null, own
const agentRun = payload?.agentRun ?? session?.agentRun ?? null;
const timestamp = timestampValue(payload?.updatedAt ?? session?.updatedAt ?? payload?.createdAt ?? session?.createdAt);
const normalizedStatus = normalizeWorkbenchStatus(payload?.status ?? session?.sessionStatus ?? status);
const terminal = TERMINAL_STATUSES.has(normalizedStatus);
const projection = createWorkbenchTurnProjection({ traceId: safeId, result: payload, session: { id: resolvedSessionId, status: normalizedStatus, session }, trace: payload?.runnerTrace ?? null });
const projectedStatus = normalizeWorkbenchStatus(projection.status ?? normalizedStatus);
const terminal = projection.terminal === true || TERMINAL_STATUSES.has(projectedStatus) || TERMINAL_STATUSES.has(normalizedStatus);
const terminalStatus = terminal ? (TERMINAL_STATUSES.has(projectedStatus) ? projectedStatus : normalizedStatus) : projectedStatus;
const timing = projectionTimingForStatus(projection.timing, terminal);
const diagnostic = projectionDiagnostics({ traceId: safeId, result: payload, trace: payload?.runnerTrace ?? null, projection });
const finalText = finalResponseTextValue(projection.finalResponse, payload?.finalResponse, session?.finalResponse, payload?.assistantText);
@@ -251,7 +253,7 @@ function buildWorkbenchProjectionFacts({ traceId = null, ownerUserId = null, own
conversationId: resolvedConversationId,
threadId: resolvedThreadId,
terminal,
terminalStatus: projection.status ?? normalizedStatus,
terminalStatus,
finalText,
timestamp,
timing
@@ -264,7 +266,7 @@ function buildWorkbenchProjectionFacts({ traceId = null, ownerUserId = null, own
projectId: projectId ?? session?.projectId ?? payload?.projectId ?? params?.projectId ?? null,
conversationId: resolvedConversationId,
threadId: resolvedThreadId,
status: terminal ? normalizedStatus : "running",
status: terminal ? terminalStatus : "running",
lastTraceId: safeId,
projectedSeq: nonNegativeInteger(projection.lastProjectedSeq),
sourceSeq: nonNegativeInteger(projection.lastProjectedSeq),