From c9ed97ca1f21a2dd97fde094c0ba2662bfe7c4dd Mon Sep 17 00:00:00 2001 From: Yusuf Emre Boyraz <0xboyraz@proton.me> Date: Thu, 9 Jul 2026 00:17:36 +0300 Subject: [PATCH] fix: disambiguate OpenCode model labels by provider fetchModels() built the dropdown label from the model name alone, so models with identical names from different providers (e.g. deepseek-v4-pro via DeepSeek vs. via OpenRouter) were indistinguishable in the UI even though their ids were already unique. Fixes #988 --- packages/ai/providers/opencode-sdk.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ai/providers/opencode-sdk.ts b/packages/ai/providers/opencode-sdk.ts index 0430af243..0cbef8d84 100644 --- a/packages/ai/providers/opencode-sdk.ts +++ b/packages/ai/providers/opencode-sdk.ts @@ -228,7 +228,11 @@ export class OpenCodeProvider implements AIProvider { for (const model of Object.values(provider.models)) { models.push({ id: `${provider.id}/${model.id}`, - label: model.name ?? model.id, + // include the provider name: different providers can expose + // models with the same name (e.g. deepseek-v4-pro via + // DeepSeek and via OpenRouter), which would otherwise be + // indistinguishable in the dropdown + label: `${model.name ?? model.id} (${provider.name})`, }); } }