feat: auto-enable full_session, thinking, and tool_results for running background tasks

This commit is contained in:
YeonGyu-Kim 2026-02-16 22:37:27 +09:00
parent 2eb4251b9a
commit e624f982ed
3 changed files with 31 additions and 7 deletions

View File

@ -77,12 +77,17 @@ export function createBackgroundOutput(manager: BackgroundOutputManager, client:
storeToolMetadata(ctx.sessionID, callID, meta) 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, { return await formatFullSession(task, client, {
includeThinking: args.include_thinking === true, includeThinking,
messageLimit: args.message_limit, messageLimit: args.message_limit,
sinceMessageId: args.since_message_id, sinceMessageId: args.since_message_id,
includeToolResults: args.include_tool_results === true, includeToolResults,
thinkingMaxChars: args.thinking_max_chars, thinkingMaxChars: args.thinking_max_chars,
}) })
} }

View File

@ -77,12 +77,17 @@ export function createBackgroundOutput(manager: BackgroundOutputManager, client:
storeToolMetadata(ctx.sessionID, callID, meta) 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, { return await formatFullSession(task, client, {
includeThinking: args.include_thinking === true, includeThinking,
messageLimit: args.message_limit, messageLimit: args.message_limit,
sinceMessageId: args.since_message_id, sinceMessageId: args.since_message_id,
includeToolResults: args.include_tool_results === true, includeToolResults,
thinkingMaxChars: args.thinking_max_chars, thinkingMaxChars: args.thinking_max_chars,
}) })
} }

View File

@ -232,7 +232,7 @@ describe("background_output full_session", () => {
expect(output).toContain("Has more: true") 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 // #given
const task = createTask({ status: "running" }) const task = createTask({ status: "running" })
const manager = createMockManager(task) const manager = createMockManager(task)
@ -242,6 +242,20 @@ describe("background_output full_session", () => {
// #when // #when
const output = await tool.execute({ task_id: "task-1" }, mockContext) 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 // #then
expect(output).toContain("# Task Status") expect(output).toContain("# Task Status")
expect(output).toContain("Task ID") expect(output).toContain("Task ID")