fix: clear container SDK sessions on stale session recovery

This commit is contained in:
Eyejoker
2026-04-04 22:06:23 +09:00
parent 4dceb9e678
commit 9ff8024bf5

View File

@@ -1,3 +1,6 @@
import fs from 'fs';
import path from 'path';
import { getErrorMessage } from './utils.js';
import {
@@ -802,6 +805,22 @@ export async function runAgentForGroup(
if (isRetryableClaudeSessionFailure(primaryAttempt)) {
deps.clearSession(sessionFolder);
// Also clear SDK session state inside the reviewer/arbiter config dir
// so the persistent container doesn't resume the same stale session.
const configDir =
pairedExecutionContext?.envOverrides?.CLAUDE_CONFIG_DIR;
if (configDir) {
for (const sdkDir of ['.claude', '.codex']) {
const sessionsDir = path.join(configDir, sdkDir, 'sessions');
if (fs.existsSync(sessionsDir)) {
fs.rmSync(sessionsDir, { recursive: true, force: true });
log.info(
{ sessionsDir },
'Cleared container SDK sessions for stale session recovery',
);
}
}
}
log.warn(
'Cleared poisoned Claude session before visible output, retrying fresh session',
);