fix(athena): per-task TTL for council members instead of blanket exemption
Add optional ttl field to BackgroundTask/LaunchInput. Council launcher passes COUNCIL_MEMBER_TTL_MS (2 hours) per member. Task poller uses task.ttl ?? TASK_TTL_MS, replacing the blanket TTL_EXEMPT_AGENTS bypass for council members with a bounded timeout. Co-authored-by: Vacbo <2445>
This commit is contained in:
@@ -4,4 +4,5 @@ export const COUNCIL_DEFAULTS = {
|
||||
STUCK_THRESHOLD_SECONDS: 120,
|
||||
MEMBER_MAX_RUNNING_SECONDS: 1800,
|
||||
ARCHIVE_ID_BYTES: 8,
|
||||
COUNCIL_MEMBER_TTL_MS: 2 * 60 * 60 * 1000,
|
||||
} as const
|
||||
|
||||
@@ -3,6 +3,7 @@ import type { BackgroundTask } from "../../features/background-agent/types"
|
||||
import type { CouncilMemberConfig } from "../../config/schema/athena"
|
||||
import { parseModelString } from "../delegate-task/model-string-parser"
|
||||
import { COUNCIL_MEMBER_KEY_PREFIX } from "../../agents/builtin-agents/council-member-agents"
|
||||
import { COUNCIL_DEFAULTS } from "../../agents/athena"
|
||||
|
||||
export interface CouncilLaunchContext {
|
||||
parentSessionID: string
|
||||
@@ -46,6 +47,7 @@ export async function launchCouncilMember(
|
||||
modelID: parsed.modelID,
|
||||
...(member.variant ? { variant: member.variant } : {}),
|
||||
},
|
||||
ttl: COUNCIL_DEFAULTS.COUNCIL_MEMBER_TTL_MS,
|
||||
})
|
||||
|
||||
return { member, task }
|
||||
|
||||
Reference in New Issue
Block a user