feat: failover reviewer to codex when Claude reviewer is unavailable
When the reviewer is Claude and hits auth/429/overloaded errors, hand off the review turn to codex-review instead of swapping owner/reviewer roles (which is the owner failover path).
This commit is contained in:
@@ -192,6 +192,27 @@ export async function runAgentForGroup(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (reviewerMode) {
|
||||||
|
// Reviewer failed (e.g. Claude 401/429) — re-trigger review with codex
|
||||||
|
// instead of swapping owner/reviewer roles.
|
||||||
|
createServiceHandoff({
|
||||||
|
chat_jid: chatJid,
|
||||||
|
group_folder: group.folder,
|
||||||
|
source_service_id: SERVICE_SESSION_SCOPE,
|
||||||
|
target_service_id: CODEX_REVIEW_SERVICE_ID,
|
||||||
|
target_agent_type: 'codex',
|
||||||
|
prompt,
|
||||||
|
start_seq: startSeq ?? null,
|
||||||
|
end_seq: endSeq ?? null,
|
||||||
|
reason: `reviewer-claude-${reason}`,
|
||||||
|
});
|
||||||
|
logger.warn(
|
||||||
|
{ chatJid, group: group.name, runId, reason },
|
||||||
|
'Claude reviewer unavailable, handed off review turn to codex-review',
|
||||||
|
);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
activateCodexFailover(chatJid, `claude-${reason}`);
|
activateCodexFailover(chatJid, `claude-${reason}`);
|
||||||
createServiceHandoff({
|
createServiceHandoff({
|
||||||
chat_jid: chatJid,
|
chat_jid: chatJid,
|
||||||
|
|||||||
Reference in New Issue
Block a user