From 4810d0f1bd9feea863c786ad6450b987d82ee322 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Mon, 20 Apr 2026 15:35:45 +0900 Subject: [PATCH] fix(delegate-task): apply load_skills content to continuation prompts Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/tools/delegate-task/background-continuation.ts | 11 ++++++++--- src/tools/delegate-task/sync-continuation.ts | 8 +++++--- src/tools/delegate-task/tools.ts | 11 +++++++++-- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/tools/delegate-task/background-continuation.ts b/src/tools/delegate-task/background-continuation.ts index 0af49757e..1d0aa94f6 100644 --- a/src/tools/delegate-task/background-continuation.ts +++ b/src/tools/delegate-task/background-continuation.ts @@ -11,7 +11,8 @@ export async function executeBackgroundContinuation( args: DelegateTaskArgs, ctx: ToolContextWithMetadata, executorCtx: ExecutorContext, - parentContext: ParentContext + parentContext: ParentContext, + systemContent?: string ): Promise { const { manager } = executorCtx const taskID = getTaskID(args) @@ -21,9 +22,13 @@ export async function executeBackgroundContinuation( throw new Error("task_id is required to continue a background task") } + const effectivePrompt = systemContent + ? `${systemContent}\n\n${args.prompt}` + : args.prompt + const task = await manager.resume({ sessionId: taskID, - prompt: args.prompt, + prompt: effectivePrompt, parentSessionID: parentContext.sessionID, parentMessageID: parentContext.messageID, parentModel: parentContext.model, @@ -70,12 +75,12 @@ ${buildTaskMetadataBlock({ taskId: sessionId, backgroundTaskId, agent: task.agent, + category: task.category, })}` } catch (error) { return formatDetailedError(error, { operation: "Continue background task", args, - category: task.category, sessionID: taskID, }) } diff --git a/src/tools/delegate-task/sync-continuation.ts b/src/tools/delegate-task/sync-continuation.ts index fdd05cddf..17edcb058 100644 --- a/src/tools/delegate-task/sync-continuation.ts +++ b/src/tools/delegate-task/sync-continuation.ts @@ -20,7 +20,8 @@ export async function executeSyncContinuation( ctx: ToolContextWithMetadata, executorCtx: ExecutorContext, parentContext: ParentContext, - deps: SyncContinuationDeps = syncContinuationDeps + deps: SyncContinuationDeps = syncContinuationDeps, + systemContent?: string ): Promise { const { client, syncPollTimeoutMs, sisyphusAgentConfig } = executorCtx const toastManager = getTaskToastManager() @@ -73,11 +74,11 @@ export async function executeSyncContinuation( resumeVariant = resumeMessageModel?.variant } - const syncContMeta = { const resumeModelForMetadata = resumeModel && resumeVariant !== undefined ? { ...resumeModel, variant: resumeVariant } : resumeModel + const syncContMeta = { title: `Continue: ${args.description}`, metadata: { prompt: args.prompt, @@ -113,6 +114,7 @@ export async function executeSyncContinuation( ...(resumeAgent !== undefined ? { agent: resumeAgent } : {}), ...(resumeModel !== undefined ? { model: resumeModel } : {}), ...(resumeVariant !== undefined ? { variant: resumeVariant } : {}), + system: systemContent, tools, parts: [{ type: "text", text: effectivePrompt }], }, @@ -154,9 +156,9 @@ ${buildTaskMetadataBlock({ sessionId: continuationID, taskId: continuationID, agent: resumeAgent, + category: args.category, })}` } finally { - category: args.category, if (toastManager) { toastManager.removeTask(taskId) } diff --git a/src/tools/delegate-task/tools.ts b/src/tools/delegate-task/tools.ts index b0820f73b..268c455ca 100644 --- a/src/tools/delegate-task/tools.ts +++ b/src/tools/delegate-task/tools.ts @@ -53,13 +53,20 @@ export function createDelegateTask(options: DelegateTaskToolOptions): ToolDefini return skillError } + const continuationSystemContent = buildSystemContent({ + skillContent, + skillContents, + availableCategories, + availableSkills, + }) + const parentContext = await resolveParentContext(ctx, options.client) if (delegateTaskArgs.task_id) { if (runInBackground) { - return executeBackgroundContinuation(delegateTaskArgs, ctx, options, parentContext) + return executeBackgroundContinuation(delegateTaskArgs, ctx, options, parentContext, continuationSystemContent) } - return executeSyncContinuation(delegateTaskArgs, ctx, options, parentContext) + return executeSyncContinuation(delegateTaskArgs, ctx, options, parentContext, undefined, continuationSystemContent) } if (!delegateTaskArgs.category && !delegateTaskArgs.subagent_type) {