diff --git a/src/features/background-agent/constants.ts b/src/features/background-agent/constants.ts index 6d5b97498..7f5b1492d 100644 --- a/src/features/background-agent/constants.ts +++ b/src/features/background-agent/constants.ts @@ -4,7 +4,7 @@ import type { BackgroundTask, LaunchInput } from "./types" export const TASK_TTL_MS = 30 * 60 * 1000 export const TERMINAL_TASK_TTL_MS = 30 * 60 * 1000 export const MIN_STABILITY_TIME_MS = 10 * 1000 -export const DEFAULT_STALE_TIMEOUT_MS = 180_000 +export const DEFAULT_STALE_TIMEOUT_MS = 1_200_000 export const DEFAULT_MESSAGE_STALENESS_TIMEOUT_MS = 1_800_000 export const DEFAULT_MAX_TOOL_CALLS = 200 export const DEFAULT_CIRCUIT_BREAKER_WINDOW_SIZE = 20 diff --git a/src/features/background-agent/default-stale-timeout.test.ts b/src/features/background-agent/default-stale-timeout.test.ts new file mode 100644 index 000000000..704a530c9 --- /dev/null +++ b/src/features/background-agent/default-stale-timeout.test.ts @@ -0,0 +1,17 @@ +declare const require: (name: string) => any +const { describe, expect, test } = require("bun:test") + +import { DEFAULT_STALE_TIMEOUT_MS } from "./constants" + +describe("DEFAULT_STALE_TIMEOUT_MS", () => { + test("uses a 20 minute default", () => { + // #given + const expectedTimeout = 20 * 60 * 1000 + + // #when + const timeout = DEFAULT_STALE_TIMEOUT_MS + + // #then + expect(timeout).toBe(expectedTimeout) + }) +}) diff --git a/src/features/background-agent/manager.test.ts b/src/features/background-agent/manager.test.ts index 8fd3e2133..bef56a647 100644 --- a/src/features/background-agent/manager.test.ts +++ b/src/features/background-agent/manager.test.ts @@ -3027,10 +3027,10 @@ describe("BackgroundManager.checkAndInterruptStaleTasks", () => { prompt: "Test", agent: "test-agent", status: "running", - startedAt: new Date(Date.now() - 300_000), + startedAt: new Date(Date.now() - 25 * 60 * 1000), progress: { toolCalls: 1, - lastUpdate: new Date(Date.now() - 200_000), + lastUpdate: new Date(Date.now() - 21 * 60 * 1000), }, } diff --git a/src/tools/delegate-task/timing.test.ts b/src/tools/delegate-task/timing.test.ts index 39d8e5d75..a4ca252ba 100644 --- a/src/tools/delegate-task/timing.test.ts +++ b/src/tools/delegate-task/timing.test.ts @@ -1,6 +1,6 @@ declare const require: (name: string) => any const { describe, expect, test } = require("bun:test") -import { __resetTimingConfig, __setTimingConfig, getDefaultSyncPollTimeoutMs } from "./timing" +import { __resetTimingConfig, __setTimingConfig, getDefaultSyncPollTimeoutMs, getTimingConfig } from "./timing" describe("timing sync poll timeout defaults", () => { test("default sync timeout is 30 minutes", () => { @@ -27,3 +27,16 @@ describe("timing sync poll timeout defaults", () => { __resetTimingConfig() }) }) + + describe("WAIT_FOR_SESSION_TIMEOUT_MS default", () => { + test("default wait for session timeout is 1 minute", () => { + // #given + __resetTimingConfig() + + // #when + const config = getTimingConfig() + + // #then + expect(config.WAIT_FOR_SESSION_TIMEOUT_MS).toBe(60_000) + }) +}) diff --git a/src/tools/delegate-task/timing.ts b/src/tools/delegate-task/timing.ts index 7e7a155ac..585372f66 100644 --- a/src/tools/delegate-task/timing.ts +++ b/src/tools/delegate-task/timing.ts @@ -2,7 +2,7 @@ let POLL_INTERVAL_MS = 1000 let MIN_STABILITY_TIME_MS = 10000 let STABILITY_POLLS_REQUIRED = 3 let WAIT_FOR_SESSION_INTERVAL_MS = 100 -let WAIT_FOR_SESSION_TIMEOUT_MS = 30000 +let WAIT_FOR_SESSION_TIMEOUT_MS = 60000 const DEFAULT_POLL_TIMEOUT_MS = 30 * 60 * 1000 let MAX_POLL_TIME_MS = DEFAULT_POLL_TIMEOUT_MS let SESSION_CONTINUATION_STABILITY_MS = 5000 @@ -30,7 +30,7 @@ export function __resetTimingConfig(): void { MIN_STABILITY_TIME_MS = 10000 STABILITY_POLLS_REQUIRED = 3 WAIT_FOR_SESSION_INTERVAL_MS = 100 - WAIT_FOR_SESSION_TIMEOUT_MS = 30000 + WAIT_FOR_SESSION_TIMEOUT_MS = 60000 MAX_POLL_TIME_MS = DEFAULT_POLL_TIMEOUT_MS SESSION_CONTINUATION_STABILITY_MS = 5000 }