Fix reviewer-to-owner follow-up race

This commit is contained in:
ejclaw
2026-04-07 01:22:27 +09:00
parent 48592d97ed
commit 9d8c97a8e2
5 changed files with 265 additions and 17 deletions

View File

@@ -47,6 +47,7 @@ import {
executeBotOnlyPairedFollowUpAction,
executePendingPairedTurn,
resolveBotOnlyPairedFollowUpAction,
resolveLastDeliveredBotRole,
shouldSkipGenericFollowUpAfterDeliveryRetry,
} from './message-runtime-flow.js';
import { MessageTurnController } from './message-turn-controller.js';
@@ -858,6 +859,7 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
chatJid,
getRecentChatMessages(chatJid, 20),
),
lastDeliveredMessages: labelPairedSenders(chatJid, missedMessages),
resolveChannel,
})
: null;
@@ -1217,22 +1219,20 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
pendingMessages.length > 0
? pendingMessages
: processableGroupMessages;
const labeledMessagesToSend = labelPairedSenders(
chatJid,
messagesToSend,
);
const formatted = loopPendingTask
? buildPairedTurnPrompt({
taskId: loopPendingTask.id,
chatJid,
timezone: deps.timezone,
missedMessages: messagesToSend,
labeledFallbackMessages: labelPairedSenders(
chatJid,
messagesToSend,
),
labeledFallbackMessages: labeledMessagesToSend,
turnOutputs: getPairedTurnOutputs(loopPendingTask.id),
})
: formatMessages(
labelPairedSenders(chatJid, messagesToSend),
deps.timezone,
);
: formatMessages(labeledMessagesToSend, deps.timezone);
const isBotOnlyPairedFollowUp = isBotOnlyPairedRoomTurn(
chatJid,
messagesToSend,
@@ -1245,6 +1245,7 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
chatJid,
task: loopPendingTask,
isBotOnlyPairedFollowUp,
lastDeliveredMessages: labeledMessagesToSend,
pendingCursorSource,
});
if (