refactor(background-agent): normalize task ID field naming

Rename BackgroundTask and attempt ID fields to camelCase across background-agent consumers while moving BackgroundManager construction to a single config object.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-05-02 03:01:03 +09:00
parent 054ade9ced
commit da251c9b30
57 changed files with 1299 additions and 1327 deletions
+17 -17
View File
@@ -58,8 +58,8 @@ export function createTask(input: LaunchInput): BackgroundTask {
description: input.description,
prompt: input.prompt,
agent: input.agent,
parentSessionID: input.parentSessionID,
parentMessageID: input.parentMessageID,
parentSessionId: input.parentSessionId,
parentMessageId: input.parentMessageId,
parentModel: input.parentModel,
parentAgent: input.parentAgent,
model: input.model,
@@ -84,7 +84,7 @@ export async function startTask(
: input.agent
const parentSession = await client.session.get({
path: { id: input.parentSessionID },
path: { id: input.parentSessionId },
query: { directory },
}).catch((err) => {
log(`[background-agent] Failed to get parent session: ${err}`)
@@ -95,7 +95,7 @@ export async function startTask(
const createResult = await client.session.create({
body: {
parentID: input.parentSessionID,
parentID: input.parentSessionId,
...(input.sessionPermission ? { permission: input.sessionPermission } : {}),
} as Record<string, unknown>,
query: {
@@ -116,7 +116,7 @@ export async function startTask(
task.status = "running"
task.startedAt = new Date()
task.sessionID = sessionID
task.sessionId = sessionID
task.progress = {
toolCalls: 0,
lastUpdate: new Date(),
@@ -199,14 +199,14 @@ export async function startTask(
tmuxEnabled,
isInsideTmux: isInsideTmux(),
sessionID,
parentID: input.parentSessionID,
parentID: input.parentSessionId,
})
if (onSubagentSessionCreated && tmuxEnabled && isInsideTmux()) {
log("[background-agent] Invoking tmux callback (fire-and-forget)", { sessionID })
void onSubagentSessionCreated({
sessionID,
parentID: input.parentSessionID,
parentID: input.parentSessionId,
title: input.description,
}).catch((err) => {
log("[background-agent] Failed to spawn tmux pane:", err)
@@ -223,14 +223,14 @@ export async function resumeTask(
): Promise<void> {
const { client, concurrencyManager, onTaskError } = ctx
if (!task.sessionID) {
if (!task.sessionId) {
throw new Error(`Task has no sessionID: ${task.id}`)
}
if (task.status === "running") {
log("[background-agent] Resume skipped - task already running:", {
taskId: task.id,
sessionID: task.sessionID,
sessionID: task.sessionId,
})
return
}
@@ -243,8 +243,8 @@ export async function resumeTask(
task.status = "running"
task.completedAt = undefined
task.error = undefined
task.parentSessionID = input.parentSessionID
task.parentMessageID = input.parentMessageID
task.parentSessionId = input.parentSessionId
task.parentMessageId = input.parentMessageId
task.parentModel = input.parentModel
task.parentAgent = input.parentAgent
task.startedAt = new Date()
@@ -254,7 +254,7 @@ export async function resumeTask(
lastUpdate: new Date(),
}
subagentSessions.add(task.sessionID)
subagentSessions.add(task.sessionId)
const toastManager = getTaskToastManager()
if (toastManager) {
@@ -266,10 +266,10 @@ export async function resumeTask(
})
}
log("[background-agent] Resuming task:", { taskId: task.id, sessionID: task.sessionID })
log("[background-agent] Resuming task:", { taskId: task.id, sessionID: task.sessionId })
log("[background-agent] Resuming task - calling prompt (fire-and-forget) with:", {
sessionID: task.sessionID,
sessionID: task.sessionId,
agent: task.agent,
model: task.model,
promptLength: input.prompt.length,
@@ -283,7 +283,7 @@ export async function resumeTask(
: undefined
const resumeVariant = task.model?.variant
applySessionPromptParams(task.sessionID, task.model)
applySessionPromptParams(task.sessionId, task.model)
const resumeBody = {
agent: task.agent,
@@ -299,7 +299,7 @@ export async function resumeTask(
}
client.session.promptAsync({
path: { id: task.sessionID },
path: { id: task.sessionId },
body: resumeBody,
}).catch(async (error) => {
if (isAgentNotFoundError(error) && task.agent !== FALLBACK_AGENT) {
@@ -310,7 +310,7 @@ export async function resumeTask(
})
try {
await promptWithModelSuggestionRetry(client, {
path: { id: task.sessionID! },
path: { id: task.sessionId! },
body: buildFallbackBody(resumeBody, FALLBACK_AGENT),
})
task.agent = FALLBACK_AGENT