From 4979ab4593d539c2fa115d449ea7ac5a8ddda8c4 Mon Sep 17 00:00:00 2001 From: Dotta Date: Mon, 9 Nov 2026 04:11:42 -0600 Subject: [PATCH] fix(heartbeat): let recovery settle a held turn presented by its own card after merging #20204 Co-Authored-By: Claude Opus 5.5 --- server/src/services/native-runtime/native-run-finalizer.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/src/services/native-runtime/native-run-finalizer.ts b/server/src/services/native-runtime/native-run-finalizer.ts index c772096eef2..2b7ce585f10 100644 --- a/server/src/services/native-runtime/native-run-finalizer.ts +++ b/server/src/services/native-runtime/native-run-finalizer.ts @@ -1021,8 +1021,7 @@ async function recoverCommittedNativeChatResponseInScope( (!conversation && result.reportedWorkDisposition === "needs_review" && terminal.reportedWorkDisposition === "needs_review") || // A conversation turn can yield while an approval, an execution // stage or a blocker holds its task; it still answered the person. - (currentConversation && result.reportedWorkDisposition === "yielded" && terminal.reportedWorkDisposition === "yielded" - && !await hasChatRunOwnedProviderInteraction(tx, input))) && + (currentConversation && result.reportedWorkDisposition === "yielded" && terminal.reportedWorkDisposition === "yielded")) && (await resolveChatRunPresentationAuthorizationReason(tx, input)) === "internal_agent_write" ) { const rows = await tx.select({ seq: heartbeatRunEvents.seq, payload: heartbeatRunEvents.payload })