fix: run reviewer turn on review_ready status even without new messages
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
|||||||
markWorkItemDeliveryRetry,
|
markWorkItemDeliveryRetry,
|
||||||
getLastBotFinalMessage,
|
getLastBotFinalMessage,
|
||||||
isPairedRoomJid,
|
isPairedRoomJid,
|
||||||
|
getLatestOpenPairedTaskForChat,
|
||||||
type ServiceHandoff,
|
type ServiceHandoff,
|
||||||
type WorkItem,
|
type WorkItem,
|
||||||
} from './db.js';
|
} from './db.js';
|
||||||
@@ -496,6 +497,30 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (missedMessages.length === 0) {
|
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];
|
const lastIgnored = rawMissedMessages[rawMissedMessages.length - 1];
|
||||||
if (lastIgnored) {
|
if (lastIgnored) {
|
||||||
advanceLastAgentCursor(
|
advanceLastAgentCursor(
|
||||||
|
|||||||
Reference in New Issue
Block a user