From a8bfd2ebe181a738d51291d7d5bfcde12c7fcd8e Mon Sep 17 00:00:00 2001 From: can1357 Date: Sun, 1 Feb 2026 12:36:56 +0100 Subject: [PATCH] fix(coding-agent): fixed role override regression by consolidating multiple override calls - Fixed role override regression by consolidating multiple override calls into a single operation to prevent intermediate state loss. - Changed model role assignment in buildSessionOptions to use override with merged state instead of deprecated setModelRole method. - Refactored multiple conditional override calls for smol, slow, and plan model roles to batch them into a single override call. --- packages/coding-agent/src/main.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/coding-agent/src/main.ts b/packages/coding-agent/src/main.ts index 7644ac441..4878a111a 100644 --- a/packages/coding-agent/src/main.ts +++ b/packages/coding-agent/src/main.ts @@ -385,7 +385,8 @@ async function buildSessionOptions( process.exit(1); } options.model = model; - settings.setModelRole("default", `${model.provider}/${model.id}`); + const currentRoles = settings.get("modelRoles") as Record; + settings.override("modelRoles", { ...currentRoles, default: `${model.provider}/${model.id}` }); } else if (scopedModels.length > 0 && !parsed.continue && !parsed.resume) { const remembered = settings.getModelRole("default"); if (remembered) { @@ -637,9 +638,10 @@ export async function main(args: string[]) { const planModel = parsed.plan ?? process.env.OMP_PLAN_MODEL; if (smolModel || slowModel || planModel) { const currentRoles = settings.get("modelRoles") as Record; - if (smolModel) settings.override("modelRoles", { ...currentRoles, smol: smolModel }); - if (slowModel) settings.override("modelRoles", { ...currentRoles, slow: slowModel }); - if (planModel) settings.override("modelRoles", { ...currentRoles, plan: planModel }); + if (smolModel) currentRoles.smol = smolModel; + if (slowModel) currentRoles.slow = slowModel; + if (planModel) currentRoles.plan = planModel; + settings.override("modelRoles", currentRoles); } await initTheme(settings.get("theme"), isInteractive, settings.get("symbolPreset"), settings.get("colorBlindMode"));