From d162ba98a9b6894ea8f3f24e49015e4c31d795af Mon Sep 17 00:00:00 2001 From: Jiayuan Zhang Date: Sun, 15 Feb 2026 19:53:03 +0800 Subject: [PATCH] fix(agent): pass sessionId to tools for sub-agent session tracking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit toolsOptions spread `options` which had sessionId undefined for auto-generated sessions. This caused sessions_list and sessions_spawn to fail with "No session ID available" — breaking sub-agent orchestration. Co-Authored-By: Claude Opus 4.6 --- packages/core/src/agent/runner.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/core/src/agent/runner.ts b/packages/core/src/agent/runner.ts index c9f81f03..48bc355d 100644 --- a/packages/core/src/agent/runner.ts +++ b/packages/core/src/agent/runner.ts @@ -393,9 +393,12 @@ export class Agent { const profileToolsConfig = this.profile?.getToolsConfig(); const mergedToolsConfig = mergeToolsConfig(profileToolsConfig, options.tools); const profileDir = this.profile?.getProfileDir(); + // Use this.sessionId (which may be auto-generated) instead of options.sessionId + // (which may be undefined). Without this, sessions_list and sessions_spawn + // can't find sub-agent runs because they have no session context. this.toolsOptions = mergedToolsConfig - ? { ...options, cwd: effectiveCwd, tools: mergedToolsConfig, profileDir, provider: this.resolvedProvider } - : { ...options, cwd: effectiveCwd, profileDir, provider: this.resolvedProvider }; + ? { ...options, sessionId: this.sessionId, cwd: effectiveCwd, tools: mergedToolsConfig, profileDir, provider: this.resolvedProvider } + : { ...options, sessionId: this.sessionId, cwd: effectiveCwd, profileDir, provider: this.resolvedProvider }; const tools = resolveTools(this.toolsOptions); if (this.debug) {