fix(workbench): bound turn status polling to active request (#2027)

This commit is contained in:
Lyon
2026-06-24 08:19:12 +08:00
committed by GitHub
parent 1018f1ef37
commit b22fd72119
+2 -1
View File
@@ -651,6 +651,7 @@ export const useWorkbenchStore = defineStore("workbench", () => {
for (const message of [...source].reverse()) { for (const message of [...source].reverse()) {
const traceId = firstNonEmptyString(message.traceId, message.runnerTrace?.traceId); const traceId = firstNonEmptyString(message.traceId, message.runnerTrace?.traceId);
if (!traceId || traceIds.has(traceId)) continue; if (!traceId || traceIds.has(traceId)) continue;
if (traceId !== requestTraceId) continue;
if (!messageHasActiveTurnStatusEvidence(message, traceId)) continue; if (!messageHasActiveTurnStatusEvidence(message, traceId)) continue;
if (traceNeedsTurnStatusRefresh(traceId, source)) traceIds.add(traceId); if (traceNeedsTurnStatusRefresh(traceId, source)) traceIds.add(traceId);
if (traceIds.size >= 3) break; if (traceIds.size >= 3) break;
@@ -670,7 +671,7 @@ export const useWorkbenchStore = defineStore("workbench", () => {
if (turn?.terminal === true || isTerminalMessageStatus(turn?.status)) return false; if (turn?.terminal === true || isTerminalMessageStatus(turn?.status)) return false;
const message = [...source].reverse().find((item) => firstNonEmptyString(item.traceId, item.runnerTrace?.traceId) === id) ?? null; const message = [...source].reverse().find((item) => firstNonEmptyString(item.traceId, item.runnerTrace?.traceId) === id) ?? null;
if (isTerminalMessageStatus(message?.status) || isTerminalMessageStatus(message?.runnerTrace?.status)) return false; if (isTerminalMessageStatus(message?.status) || isTerminalMessageStatus(message?.runnerTrace?.status)) return false;
if (message?.runnerTrace && traceSnapshotHasTerminalEvidence(message.runnerTrace)) return true; if (message?.runnerTrace && traceSnapshotHasTerminalEvidence(message.runnerTrace)) return false;
return true; return true;
} }