refactor(background-task): stop cancelling launched tasks during session wait

This commit is contained in:
YeonGyu-Kim
2026-03-31 15:11:05 -07:00
parent e2e57bb2dd
commit 56cf16c4c5
7 changed files with 384 additions and 19 deletions
@@ -61,15 +61,18 @@ export async function executeBackground(
const waitStart = Date.now()
let sessionId = task.sessionID
while (!sessionId && Date.now() - waitStart < WAIT_FOR_SESSION_TIMEOUT_MS) {
if (toolContext.abort?.aborted) {
return `Task aborted while waiting for session to start.\n\nTask ID: ${task.id}`
}
const updated = manager.getTask(task.id)
if (updated?.status === "error" || updated?.status === "cancelled" || updated?.status === "interrupt") {
return `Task failed to start (status: ${updated.status}).\n\nTask ID: ${task.id}`
}
sessionId = updated?.sessionID
if (sessionId) {
break
}
if (toolContext.abort?.aborted) {
break
}
await new Promise(resolve => setTimeout(resolve, WAIT_FOR_SESSION_INTERVAL_MS))
sessionId = manager.getTask(task.id)?.sessionID
}
await toolContext.metadata?.({