From 9ff8024bf53787441d0699893d1b62c2034bf814 Mon Sep 17 00:00:00 2001 From: Eyejoker Date: Sat, 4 Apr 2026 22:06:23 +0900 Subject: [PATCH] fix: clear container SDK sessions on stale session recovery --- src/message-agent-executor.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/message-agent-executor.ts b/src/message-agent-executor.ts index fb45f32..66220b6 100644 --- a/src/message-agent-executor.ts +++ b/src/message-agent-executor.ts @@ -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', );