feat: upgrade investigation and presentation runtime
Generic Container CI/CD / test-build-publish (push) Successful in 1m6s
Agent CI/CD / build-test-publish-and-deploy (push) Successful in 1m7s

This commit is contained in:
2026-10-30 17:30:19 +08:00
parent 3b52a0ddab
commit 6336157ff4
104 changed files with 6541 additions and 961 deletions
+3 -4
View File
@@ -875,7 +875,7 @@ export const registerChatStreamRoute = (
});
};
const unregisterFrontendActionSink = parsed.data.capabilities.includes("frontend-action@1")
const unregisterFrontendActionSink = parsed.data.capabilities.includes("frontend-action@2")
? frontendActionCoordinator.registerSink(clientSessionId, (request) => publish("frontend_action", request as unknown as Record<string, unknown>))
: undefined;
let credentialFailure: Error | undefined;
@@ -995,13 +995,12 @@ export const registerChatStreamRoute = (
traceId: requestContext.traceId,
projectId: requestContext.projectId,
signal: abortController.signal,
suppressLegacyFrontendActions: parsed.data.capabilities.includes("frontend-action@1"),
suppressAnswerUi: sessionPurpose === "task_execution",
beforePrompt: async () => { await inputTracker.restore(); await messaging?.flush(binding.sessionId); },
onPromptDispatched: () => inputTracker.markReady(),
onInboxEvent: (type, data) => inputTracker.observe(type, data),
waitForUserInput: async () => !await inputTracker.canClose(),
beforeRichAnswerClose: async () => {
beforeAnswerClose: async () => {
// A consumed input may still be awaiting its model step. Let the
// native runner drain it instead of interrupting on an older answer.
if (inputTracker.hasAdditionalInput) return false;
@@ -1160,7 +1159,7 @@ export const registerChatStreamRoute = (
title: sessionTitle,
});
await stopTaskHeartbeat();
await persistQueue.catch((error) => {
await persistQueue.catch((error) => {
logger.warn({ err: error, sessionId: clientSessionId }, "failed to persist chat stream state");
});
}