fix: resume incomplete SCADA presentations
This commit is contained in:
@@ -45,6 +45,7 @@ import {
|
||||
clearOperationalTaskLease,
|
||||
operationalTaskClient,
|
||||
releaseOperationalTaskCredential,
|
||||
scadaPresentationContinuation,
|
||||
} from "../product/operational-task-client.js";
|
||||
import { type SessionTranscriptStore } from "../sessions/transcriptStore.js";
|
||||
import { type SessionUiStateStore } from "../sessions/uiStateStore.js";
|
||||
@@ -798,7 +799,7 @@ export const registerChatStreamRoute = (
|
||||
if (messaging && (messaging.hasInputThisTurn(binding.sessionId) || !await messaging.closeInteractive(activeSessionRecord))) return false;
|
||||
return inputTracker.canClose();
|
||||
},
|
||||
beforeIdle: messaging || (sessionPurpose === "task_execution" && waitTaskCalculations) ? async () => {
|
||||
beforeIdle: messaging || sessionPurpose === "task_execution" ? async () => {
|
||||
if (sessionPurpose !== "task_execution") return messaging ? messaging.closeInteractive(activeSessionRecord) : true;
|
||||
if (await messaging?.flush(binding.sessionId)) return false;
|
||||
const calculationResume = await waitTaskCalculations?.(binding.sessionId, abortController.signal);
|
||||
@@ -818,6 +819,8 @@ export const registerChatStreamRoute = (
|
||||
if (task.lifecycle_status === "failed") throw new Error("Server rejected incomplete investigation artifacts");
|
||||
return true;
|
||||
} catch (error) {
|
||||
const continuation = scadaPresentationContinuation(error);
|
||||
if (continuation) return continuation;
|
||||
if (error && typeof error === "object" && "code" in error && error.code === "PENDING_AGENT_MESSAGES") {
|
||||
await messaging?.flush(binding.sessionId);
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user