From 7938316a61a193e2052c0f3d6565a0c1c250e09f Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sun, 14 Dec 2025 10:44:54 +0900 Subject: [PATCH] fix(background-task): return result instead of status for completed tasks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix background_output to check completion status before block flag - Update call_omo_agent return message to correctly indicate block=false as default - Add system notification guidance in return message 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) --- src/tools/background-task/tools.ts | 12 ++++++------ src/tools/call-omo-agent/tools.ts | 7 ++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/tools/background-task/tools.ts b/src/tools/background-task/tools.ts index 57236ff..98eba74 100644 --- a/src/tools/background-task/tools.ts +++ b/src/tools/background-task/tools.ts @@ -211,12 +211,7 @@ export function createBackgroundOutput(manager: BackgroundManager, client: Openc const shouldBlock = args.block === true const timeoutMs = Math.min(args.timeout ?? 60000, 600000) - // Non-blocking: return status immediately - if (!shouldBlock) { - return formatTaskStatus(task) - } - - // Already completed: return result immediately + // Already completed: return result immediately (regardless of block flag) if (task.status === "completed") { return await formatTaskResult(task, client) } @@ -226,6 +221,11 @@ export function createBackgroundOutput(manager: BackgroundManager, client: Openc return formatTaskStatus(task) } + // Non-blocking and still running: return status + if (!shouldBlock) { + return formatTaskStatus(task) + } + // Blocking: poll until completion or timeout const startTime = Date.now() diff --git a/src/tools/call-omo-agent/tools.ts b/src/tools/call-omo-agent/tools.ts index e423fb6..570042b 100644 --- a/src/tools/call-omo-agent/tools.ts +++ b/src/tools/call-omo-agent/tools.ts @@ -67,9 +67,10 @@ Description: ${task.description} Agent: ${task.agent} (subagent) Status: ${task.status} -Use \`background_output\` tool with task_id="${task.id}" to check progress or retrieve results. -- block=false: Check status without waiting -- block=true (default): Wait for completion and get result` +The system will notify you when the task completes. +Use \`background_output\` tool with task_id="${task.id}" to check progress: +- block=false (default): Check status immediately - returns full status info +- block=true: Wait for completion (rarely needed since system notifies)` } catch (error) { const message = error instanceof Error ? error.message : String(error) return `Failed to launch background agent task: ${message}`