From c380e59cb3a5218e01e22cebd18c6582f58e855a Mon Sep 17 00:00:00 2001 From: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com> Date: Thu, 12 Feb 2026 13:17:45 -0800 Subject: [PATCH] fix(copilot): make default model opus 4.5 (#3209) * Fix default model * Fix --- apps/sim/app/api/copilot/chat/route.ts | 4 ++-- apps/sim/app/api/mcp/copilot/route.ts | 2 +- apps/sim/app/api/v1/copilot/chat/route.ts | 2 +- apps/sim/stores/panel/copilot/store.ts | 14 +++++++------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/sim/app/api/copilot/chat/route.ts b/apps/sim/app/api/copilot/chat/route.ts index 25349e914..500b7e1a6 100644 --- a/apps/sim/app/api/copilot/chat/route.ts +++ b/apps/sim/app/api/copilot/chat/route.ts @@ -85,7 +85,7 @@ const ChatMessageSchema = z.object({ chatId: z.string().optional(), workflowId: z.string().optional(), workflowName: z.string().optional(), - model: z.string().optional().default('claude-opus-4-6'), + model: z.string().optional().default('claude-opus-4-5'), mode: z.enum(COPILOT_REQUEST_MODES).optional().default('agent'), prefetch: z.boolean().optional(), createNewChat: z.boolean().optional().default(false), @@ -238,7 +238,7 @@ export async function POST(req: NextRequest) { let currentChat: any = null let conversationHistory: any[] = [] let actualChatId = chatId - const selectedModel = model || 'claude-opus-4-6' + const selectedModel = model || 'claude-opus-4-5' if (chatId || createNewChat) { const chatResult = await resolveOrCreateChat({ diff --git a/apps/sim/app/api/mcp/copilot/route.ts b/apps/sim/app/api/mcp/copilot/route.ts index 5fcce8563..643b339f9 100644 --- a/apps/sim/app/api/mcp/copilot/route.ts +++ b/apps/sim/app/api/mcp/copilot/route.ts @@ -38,7 +38,7 @@ import { const logger = createLogger('CopilotMcpAPI') const mcpRateLimiter = new RateLimiter() -const DEFAULT_COPILOT_MODEL = 'claude-opus-4-6' +const DEFAULT_COPILOT_MODEL = 'claude-opus-4-5' export const dynamic = 'force-dynamic' export const runtime = 'nodejs' diff --git a/apps/sim/app/api/v1/copilot/chat/route.ts b/apps/sim/app/api/v1/copilot/chat/route.ts index 9a71ee54b..6a3817385 100644 --- a/apps/sim/app/api/v1/copilot/chat/route.ts +++ b/apps/sim/app/api/v1/copilot/chat/route.ts @@ -8,7 +8,7 @@ import { resolveWorkflowIdForUser } from '@/lib/workflows/utils' import { authenticateV1Request } from '@/app/api/v1/auth' const logger = createLogger('CopilotHeadlessAPI') -const DEFAULT_COPILOT_MODEL = 'claude-opus-4-6' +const DEFAULT_COPILOT_MODEL = 'claude-opus-4-5' const RequestSchema = z.object({ message: z.string().min(1, 'message is required'), diff --git a/apps/sim/stores/panel/copilot/store.ts b/apps/sim/stores/panel/copilot/store.ts index 44f17df10..bd4dd76e2 100644 --- a/apps/sim/stores/panel/copilot/store.ts +++ b/apps/sim/stores/panel/copilot/store.ts @@ -1042,7 +1042,7 @@ const cachedAutoAllowedTools = readAutoAllowedToolsFromStorage() // Initial state (subset required for UI/streaming) const initialState = { mode: 'build' as const, - selectedModel: 'anthropic/claude-opus-4-6' as CopilotStore['selectedModel'], + selectedModel: 'anthropic/claude-opus-4-5' as CopilotStore['selectedModel'], agentPrefetch: false, availableModels: [] as AvailableModel[], isLoadingModels: false, @@ -2381,17 +2381,17 @@ export const useCopilotStore = create()( (model) => model.id === normalizedSelectedModel ) - // Pick the best default: prefer claude-opus-4-6 with provider priority: + // Pick the best default: prefer claude-opus-4-5 with provider priority: // direct anthropic > bedrock > azure-anthropic > any other. let nextSelectedModel = normalizedSelectedModel if (!selectedModelExists && normalizedModels.length > 0) { - let opus46: AvailableModel | undefined + let opus45: AvailableModel | undefined for (const prov of MODEL_PROVIDER_PRIORITY) { - opus46 = normalizedModels.find((m) => m.id === `${prov}/claude-opus-4-6`) - if (opus46) break + opus45 = normalizedModels.find((m) => m.id === `${prov}/claude-opus-4-5`) + if (opus45) break } - if (!opus46) opus46 = normalizedModels.find((m) => m.id.endsWith('/claude-opus-4-6')) - nextSelectedModel = opus46 ? opus46.id : normalizedModels[0].id + if (!opus45) opus45 = normalizedModels.find((m) => m.id.endsWith('/claude-opus-4-5')) + nextSelectedModel = opus45 ? opus45.id : normalizedModels[0].id } set({