fix: run reviewer turn on review_ready status even without new messages

This commit is contained in:
Eyejoker
2026-03-29 19:19:47 +09:00
parent 4ec7b55105
commit a8bf6b806d

View File

@@ -13,6 +13,7 @@ import {
markWorkItemDeliveryRetry,
getLastBotFinalMessage,
isPairedRoomJid,
getLatestOpenPairedTaskForChat,
type ServiceHandoff,
type WorkItem,
} from './db.js';
@@ -496,6 +497,30 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
);
if (missedMessages.length === 0) {
// Check if a paired review is pending — run reviewer even without new messages
const pendingReviewTask = isPairedRoomJid(chatJid)
? getLatestOpenPairedTaskForChat(chatJid)
: null;
if (
pendingReviewTask &&
(pendingReviewTask.status === 'review_ready' ||
pendingReviewTask.status === 'in_review')
) {
// Synthesize a prompt for the reviewer turn
const reviewPrompt =
'Review the latest owner changes. Provide feedback or approve.';
const { deliverySucceeded } = await executeTurn({
group,
prompt: reviewPrompt,
chatJid,
runId,
channel,
startSeq: null,
endSeq: null,
});
return deliverySucceeded;
}
const lastIgnored = rawMissedMessages[rawMissedMessages.length - 1];
if (lastIgnored) {
advanceLastAgentCursor(