From 59cf931b8275c45cfcce8cee65f0cadd244512c5 Mon Sep 17 00:00:00 2001 From: Eyejoker Date: Wed, 1 Apr 2026 13:34:46 +0900 Subject: [PATCH] fix: copy arbiter AGENTS.md to reviewer session for container mount Container's /home/node/.claude always mounts the reviewer session dir. When arbiter runs codex in the same container, CODEX_HOME reads from reviewer session's .codex/. Copy arbiter AGENTS.md there so codex gets arbiter prompts instead of reviewer prompts. --- src/agent-runner.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/agent-runner.ts b/src/agent-runner.ts index 76d5d5c..174a12b 100644 --- a/src/agent-runner.ts +++ b/src/agent-runner.ts @@ -97,6 +97,26 @@ export async function runAgentProcess( memoryBriefing: input.memoryBriefing, role: containerRole, }); + // For codex: also write AGENTS.md to the reviewer session dir, because + // the container's /home/node/.claude always mounts the reviewer session. + // Arbiter and reviewer never run simultaneously, so this is safe. + if (containerRole === 'arbiter') { + const reviewerSessionDir = path.join( + path.dirname(sessionDir), + `${group.folder}-reviewer`, + ); + const reviewerCodexDir = path.join(reviewerSessionDir, '.codex'); + if (fs.existsSync(reviewerSessionDir)) { + fs.mkdirSync(reviewerCodexDir, { recursive: true }); + const arbiterAgentsMd = path.join(sessionDir, '.codex', 'AGENTS.md'); + if (fs.existsSync(arbiterAgentsMd)) { + fs.copyFileSync( + arbiterAgentsMd, + path.join(reviewerCodexDir, 'AGENTS.md'), + ); + } + } + } } return runReviewerContainer({