Recover Codex compaction failures in paired owner flow

This commit is contained in:
ejclaw
2026-04-15 03:11:14 +09:00
parent c76902a84b
commit 2ab3bddc0e
20 changed files with 449 additions and 18 deletions

View File

@@ -17,6 +17,11 @@ const SESSION_RETRY_PATTERNS = [
/invalid[^\n]*signature[^\n]*thinking/i,
];
const CODEX_SESSION_RESET_PATTERNS = [
/Error running remote compact task/i,
/prompt_cache_retention/i,
];
function toText(value: string | object | null | undefined): string[] {
if (!value) return [];
if (typeof value === 'string') return [value];
@@ -51,3 +56,21 @@ export function shouldRetryFreshSessionOnAgentFailure(
SESSION_RETRY_PATTERNS.some((pattern) => pattern.test(text)),
);
}
export function shouldResetCodexSessionOnAgentFailure(
output: Pick<AgentOutput, 'result' | 'output' | 'error'>,
): boolean {
const texts = [
...toText(getAgentOutputText(output)),
...toText(output.error),
];
return texts.some((text) =>
CODEX_SESSION_RESET_PATTERNS.some((pattern) => pattern.test(text)),
);
}
export function shouldRetryFreshCodexSessionOnAgentFailure(
output: Pick<AgentOutput, 'result' | 'output' | 'error'>,
): boolean {
return shouldResetCodexSessionOnAgentFailure(output);
}