add one-shot reviewer mode for single rooms

This commit is contained in:
Codex
2026-05-27 10:57:57 +09:00
parent 1509108e04
commit 51512c9aeb
4 changed files with 246 additions and 0 deletions

View File

@@ -45,6 +45,10 @@ import {
enqueuePairedFollowUpAfterEvent,
schedulePairedFollowUpWithMessageCheck,
} from './message-runtime-follow-up.js';
import {
clearOneShotReviewLeaseIfIdle,
maybeActivateOneShotReviewLease,
} from './one-shot-review.js';
import { type ScheduledPairedFollowUpIntentKind } from './paired-follow-up-scheduler.js';
import { transitionPairedTaskStatus } from './paired-execution-context-shared.js';
import {
@@ -338,6 +342,7 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
: 'Skipped duplicate paired follow-up after successful reviewer/arbiter delivery while task state was unchanged',
);
}
clearOneShotReviewLeaseIfIdle(chatJid);
},
});
@@ -416,6 +421,7 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
'Paired room reviewer/arbiter channel resolution',
);
}
clearOneShotReviewLeaseIfIdle(chatJid);
// Delivery retries can come from forced fallback runs whose agent_type
// differs from the room owner's registered agent type.
@@ -649,6 +655,12 @@ export function createMessageRuntime(deps: MessageRuntimeDeps): {
return gateResult.success;
}
maybeActivateOneShotReviewLease({
chatJid,
group,
messages: missedMessages,
});
return runQueuedGroupTurn({
chatJid,
group,