feat(background-agent): adapt idle event handler for team-mode sessions

This commit is contained in:
YeonGyu-Kim
2026-04-28 10:48:06 +09:00
parent ce461b8d8f
commit e2d379032a
2 changed files with 29 additions and 0 deletions

View File

@@ -247,6 +247,27 @@ describe("handleSessionIdleBackgroundEvent", () => {
expect(tryCompleteTask).toHaveBeenCalledWith(task, "session.idle event")
})
it("#when task belongs to a team run #then should not auto-complete on idle", async () => {
//#given
const task = createRunningTask({ teamRunId: "team-run-1" })
const tryCompleteTask = mock(() => Promise.resolve(true))
//#when
handleSessionIdleBackgroundEvent({
properties: { sessionID: task.sessionID! },
findBySession: () => task,
idleDeferralTimers: new Map(),
validateSessionHasOutput: () => Promise.resolve(true),
checkSessionTodos: () => Promise.resolve(false),
tryCompleteTask,
emitIdleEvent: () => {},
})
//#then
await new Promise((resolve) => setTimeout(resolve, 10))
expect(tryCompleteTask).not.toHaveBeenCalled()
})
it("#when session has no valid output #then should not complete task", async () => {
//#given
const task = createRunningTask()

View File

@@ -85,6 +85,14 @@ export function handleSessionIdleBackgroundEvent(args: {
return
}
if (task.teamRunId) {
log("[background-agent] Team member session went idle; skipping background auto-complete:", {
taskId: task.id,
teamRunId: task.teamRunId,
})
return
}
await tryCompleteTask(task, "session.idle event")
})
.catch((err) => {