fix: preserve model context across background agent handoffs (#229)
Fixes #191 This commit ensures that the user's selected model is preserved when background tasks complete and notify their parent sessions. Changes: - Add parentModel field to BackgroundTask and LaunchInput interfaces - Capture model context when launching background tasks - Pass model context when notifying parent sessions after task completion Impact: - Users with OAuth providers (Google, Anthropic) will now have their model selection preserved across background task continuations - Background agents no longer revert to hardcoded defaults Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
This commit is contained in:
@@ -99,6 +99,7 @@ export class BackgroundManager {
|
||||
toolCalls: 0,
|
||||
lastUpdate: new Date(),
|
||||
},
|
||||
parentModel: input.parentModel,
|
||||
}
|
||||
|
||||
this.tasks.set(task.id, task)
|
||||
@@ -322,10 +323,16 @@ export class BackgroundManager {
|
||||
const messageDir = getMessageDir(task.parentSessionID)
|
||||
const prevMessage = messageDir ? findNearestMessageWithFields(messageDir) : null
|
||||
|
||||
const modelContext = task.parentModel ?? prevMessage?.model
|
||||
const modelField = modelContext?.providerID && modelContext?.modelID
|
||||
? { providerID: modelContext.providerID, modelID: modelContext.modelID }
|
||||
: undefined
|
||||
|
||||
await this.client.session.prompt({
|
||||
path: { id: task.parentSessionID },
|
||||
body: {
|
||||
agent: prevMessage?.agent,
|
||||
model: modelField,
|
||||
parts: [{ type: "text", text: message }],
|
||||
},
|
||||
query: { directory: this.directory },
|
||||
|
||||
@@ -26,6 +26,7 @@ export interface BackgroundTask {
|
||||
result?: string
|
||||
error?: string
|
||||
progress?: TaskProgress
|
||||
parentModel?: { providerID: string; modelID: string }
|
||||
}
|
||||
|
||||
export interface LaunchInput {
|
||||
@@ -34,4 +35,5 @@ export interface LaunchInput {
|
||||
agent: string
|
||||
parentSessionID: string
|
||||
parentMessageID: string
|
||||
parentModel?: { providerID: string; modelID: string }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user