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,
|
STUCK_THRESHOLD_SECONDS: 120,
|
||||||
MEMBER_MAX_RUNNING_SECONDS: 1800,
|
MEMBER_MAX_RUNNING_SECONDS: 1800,
|
||||||
ARCHIVE_ID_BYTES: 8,
|
ARCHIVE_ID_BYTES: 8,
|
||||||
|
COUNCIL_MEMBER_TTL_MS: 2 * 60 * 60 * 1000,
|
||||||
} as const
|
} as const
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import type { BackgroundTask } from "../../features/background-agent/types"
|
|||||||
import type { CouncilMemberConfig } from "../../config/schema/athena"
|
import type { CouncilMemberConfig } from "../../config/schema/athena"
|
||||||
import { parseModelString } from "../delegate-task/model-string-parser"
|
import { parseModelString } from "../delegate-task/model-string-parser"
|
||||||
import { COUNCIL_MEMBER_KEY_PREFIX } from "../../agents/builtin-agents/council-member-agents"
|
import { COUNCIL_MEMBER_KEY_PREFIX } from "../../agents/builtin-agents/council-member-agents"
|
||||||
|
import { COUNCIL_DEFAULTS } from "../../agents/athena"
|
||||||
|
|
||||||
export interface CouncilLaunchContext {
|
export interface CouncilLaunchContext {
|
||||||
parentSessionID: string
|
parentSessionID: string
|
||||||
@@ -46,6 +47,7 @@ export async function launchCouncilMember(
|
|||||||
modelID: parsed.modelID,
|
modelID: parsed.modelID,
|
||||||
...(member.variant ? { variant: member.variant } : {}),
|
...(member.variant ? { variant: member.variant } : {}),
|
||||||
},
|
},
|
||||||
|
ttl: COUNCIL_DEFAULTS.COUNCIL_MEMBER_TTL_MS,
|
||||||
})
|
})
|
||||||
|
|
||||||
return { member, task }
|
return { member, task }
|
||||||
|
|||||||
Reference in New Issue
Block a user