From b5a6757211971b52ee9069741e3d5e2fe6f11a63 Mon Sep 17 00:00:00 2001 From: Gavriel Cohen Date: Fri, 13 Feb 2026 12:18:16 +0200 Subject: [PATCH] fix: pass requiresTrigger through IPC and auto-discover additional directories - IPC register_group handler now passes requiresTrigger field to registerGroup(), fixing groups silently defaulting to trigger-required mode - Agent runner scans /workspace/extra/* and passes them as additionalDirectories to the SDK query, so CLAUDE.md files in mounted dirs are loaded automatically Co-Authored-By: Claude Opus 4.6 --- container/agent-runner/src/index.ts | 17 +++++++++++++++++ src/ipc.ts | 2 ++ 2 files changed, 19 insertions(+) diff --git a/container/agent-runner/src/index.ts b/container/agent-runner/src/index.ts index 1d3d334..c41cb60 100644 --- a/container/agent-runner/src/index.ts +++ b/container/agent-runner/src/index.ts @@ -371,10 +371,27 @@ async function runQuery( globalClaudeMd = fs.readFileSync(globalClaudeMdPath, 'utf-8'); } + // Discover additional directories mounted at /workspace/extra/* + // These are passed to the SDK so their CLAUDE.md files are loaded automatically + const extraDirs: string[] = []; + const extraBase = '/workspace/extra'; + if (fs.existsSync(extraBase)) { + for (const entry of fs.readdirSync(extraBase)) { + const fullPath = path.join(extraBase, entry); + if (fs.statSync(fullPath).isDirectory()) { + extraDirs.push(fullPath); + } + } + } + if (extraDirs.length > 0) { + log(`Additional directories: ${extraDirs.join(', ')}`); + } + for await (const message of query({ prompt: stream, options: { cwd: '/workspace/group', + additionalDirectories: extraDirs.length > 0 ? extraDirs : undefined, resume: sessionId, resumeSessionAt: resumeAt, systemPrompt: globalClaudeMd diff --git a/src/ipc.ts b/src/ipc.ts index 23c2917..53556c9 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -171,6 +171,7 @@ export async function processTaskIpc( name?: string; folder?: string; trigger?: string; + requiresTrigger?: boolean; containerConfig?: RegisteredGroup['containerConfig']; }, sourceGroup: string, // Verified identity from IPC directory @@ -366,6 +367,7 @@ export async function processTaskIpc( trigger: data.trigger, added_at: new Date().toISOString(), containerConfig: data.containerConfig, + requiresTrigger: data.requiresTrigger, }); } else { logger.warn(