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)
}
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,
})
}

View File

@@ -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,
})
}

View File

@@ -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")