From e624f982ed9e83f76a4daa80d2f5f62263a5ce59 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Mon, 16 Feb 2026 22:37:27 +0900 Subject: [PATCH] feat: auto-enable full_session, thinking, and tool_results for running background tasks --- .../background-task/create-background-output.ts | 11 ++++++++--- .../background-task/modules/background-output.ts | 11 ++++++++--- src/tools/background-task/tools.test.ts | 16 +++++++++++++++- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/tools/background-task/create-background-output.ts b/src/tools/background-task/create-background-output.ts index 37c0f348..f1e19850 100644 --- a/src/tools/background-task/create-background-output.ts +++ b/src/tools/background-task/create-background-output.ts @@ -77,12 +77,17 @@ export function createBackgroundOutput(manager: BackgroundOutputManager, client: storeToolMetadata(ctx.sessionID, callID, meta) } - if (args.full_session === true) { + const isActive = task.status === "pending" || task.status === "running" + const fullSession = args.full_session ?? isActive + const includeThinking = args.include_thinking ?? isActive + const includeToolResults = args.include_tool_results ?? isActive + + if (fullSession) { return await formatFullSession(task, client, { - includeThinking: args.include_thinking === true, + includeThinking, messageLimit: args.message_limit, sinceMessageId: args.since_message_id, - includeToolResults: args.include_tool_results === true, + includeToolResults, thinkingMaxChars: args.thinking_max_chars, }) } diff --git a/src/tools/background-task/modules/background-output.ts b/src/tools/background-task/modules/background-output.ts index 38d4d3b9..509cf252 100644 --- a/src/tools/background-task/modules/background-output.ts +++ b/src/tools/background-task/modules/background-output.ts @@ -77,12 +77,17 @@ export function createBackgroundOutput(manager: BackgroundOutputManager, client: storeToolMetadata(ctx.sessionID, callID, meta) } - if (args.full_session === true) { + const isActive = task.status === "pending" || task.status === "running" + const fullSession = args.full_session ?? isActive + const includeThinking = args.include_thinking ?? isActive + const includeToolResults = args.include_tool_results ?? isActive + + if (fullSession) { return await formatFullSession(task, client, { - includeThinking: args.include_thinking === true, + includeThinking, messageLimit: args.message_limit, sinceMessageId: args.since_message_id, - includeToolResults: args.include_tool_results === true, + includeToolResults, thinkingMaxChars: args.thinking_max_chars, }) } diff --git a/src/tools/background-task/tools.test.ts b/src/tools/background-task/tools.test.ts index 2f1d6502..a74b2f19 100644 --- a/src/tools/background-task/tools.test.ts +++ b/src/tools/background-task/tools.test.ts @@ -232,7 +232,7 @@ describe("background_output full_session", () => { expect(output).toContain("Has more: true") }) - test("keeps legacy status output when full_session is false", async () => { + test("defaults to full_session when task is running", async () => { // #given const task = createTask({ status: "running" }) const manager = createMockManager(task) @@ -242,6 +242,20 @@ describe("background_output full_session", () => { // #when const output = await tool.execute({ task_id: "task-1" }, mockContext) + // #then + expect(output).toContain("# Full Session Output") + }) + + test("keeps legacy status output when full_session is explicitly false on running task", async () => { + // #given + const task = createTask({ status: "running" }) + const manager = createMockManager(task) + const client = createMockClient({}) + const tool = createBackgroundOutput(manager, client) + + // #when + const output = await tool.execute({ task_id: "task-1", full_session: false }, mockContext) + // #then expect(output).toContain("# Task Status") expect(output).toContain("Task ID")