fix(agent): bound SCADA presentation continuations
This commit is contained in:
@@ -45,7 +45,7 @@ import {
|
||||
clearOperationalTaskLease,
|
||||
operationalTaskClient,
|
||||
releaseOperationalTaskCredential,
|
||||
scadaPresentationContinuation,
|
||||
createScadaPresentationContinuation,
|
||||
} from "../product/operational-task-client.js";
|
||||
import { type SessionTranscriptStore } from "../sessions/transcriptStore.js";
|
||||
import { type SessionUiStateStore } from "../sessions/uiStateStore.js";
|
||||
@@ -692,6 +692,7 @@ export const registerChatStreamRoute = (
|
||||
let taskHeartbeatPromise: Promise<void> | undefined;
|
||||
let taskLeaseFailure: Error | undefined;
|
||||
let taskRunFinalized = false;
|
||||
const continueScadaPresentation = createScadaPresentationContinuation();
|
||||
const stopTaskHeartbeat = async () => {
|
||||
taskHeartbeatActive = false;
|
||||
if (taskHeartbeat) clearInterval(taskHeartbeat);
|
||||
@@ -819,7 +820,7 @@ export const registerChatStreamRoute = (
|
||||
if (task.lifecycle_status === "failed") throw new Error("Server rejected incomplete investigation artifacts");
|
||||
return true;
|
||||
} catch (error) {
|
||||
const continuation = scadaPresentationContinuation(error);
|
||||
const continuation = continueScadaPresentation(error);
|
||||
if (continuation) return continuation;
|
||||
if (error && typeof error === "object" && "code" in error && error.code === "PENDING_AGENT_MESSAGES") {
|
||||
await messaging?.flush(binding.sessionId);
|
||||
|
||||
Reference in New Issue
Block a user