diff --git a/packages/server/src/server/agent/agent-manager.test.ts b/packages/server/src/server/agent/agent-manager.test.ts index a8d6698ca..eb53ef650 100644 --- a/packages/server/src/server/agent/agent-manager.test.ts +++ b/packages/server/src/server/agent/agent-manager.test.ts @@ -1140,6 +1140,7 @@ test("resumeAgentFromPersistence keeps metadata config, applies overrides, and p }, }); expect(client.lastResumeOverrides).toMatchObject({ + modeId: "auto", systemPrompt: "new prompt", mcpServers: { paseo: { diff --git a/packages/server/src/server/agent/agent-manager.ts b/packages/server/src/server/agent/agent-manager.ts index 74e4d37e9..ca52cae7b 100644 --- a/packages/server/src/server/agent/agent-manager.ts +++ b/packages/server/src/server/agent/agent-manager.ts @@ -791,10 +791,19 @@ export class AgentManager { provider: handle.provider, } as AgentSessionConfig; const normalizedConfig = await this.normalizeConfig(mergedConfig); - const resumeOverrides = - normalizedConfig.model !== mergedConfig.model - ? { ...overrides, model: normalizedConfig.model } - : overrides; + const resumeOverrides: Partial = { ...overrides }; + let hasResumeOverrides = overrides !== undefined; + + if (normalizedConfig.model !== mergedConfig.model) { + resumeOverrides.model = normalizedConfig.model; + hasResumeOverrides = true; + } + + if (normalizedConfig.modeId !== mergedConfig.modeId) { + resumeOverrides.modeId = normalizedConfig.modeId; + hasResumeOverrides = true; + } + const launchContext = this.buildLaunchContext(resolvedAgentId); const client = this.requireClient(handle.provider); const available = await client.isAvailable(); @@ -803,7 +812,11 @@ export class AgentManager { `Provider '${handle.provider}' is not available. Please ensure the CLI is installed.`, ); } - const session = await client.resumeSession(handle, resumeOverrides, launchContext); + const session = await client.resumeSession( + handle, + hasResumeOverrides ? resumeOverrides : undefined, + launchContext, + ); return this.registerSession(session, normalizedConfig, resolvedAgentId, options); }