From 0da55f1cefb0c55d20aae5b7f22a474b701d03fa Mon Sep 17 00:00:00 2001 From: David Hill <1879069+iamdavidhill@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:38:59 -0600 Subject: [PATCH] fix(app): list OpenCode Go before Zen (#47386) --- packages/app/src/providers/catalog/order.test.ts | 6 ++++++ packages/app/src/providers/catalog/order.ts | 2 +- packages/app/src/providers/connect/dialog.tsx | 2 +- packages/app/src/providers/models/unpaid.tsx | 2 +- packages/app/src/settings/providers/providers.tsx | 1 + .../storybook/.storybook/mocks/app/context/server-sdk.ts | 2 +- .../storybook/.storybook/mocks/app/hooks/use-providers.ts | 2 +- 7 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 packages/app/src/providers/catalog/order.test.ts diff --git a/packages/app/src/providers/catalog/order.test.ts b/packages/app/src/providers/catalog/order.test.ts new file mode 100644 index 00000000000..c07fca876d1 --- /dev/null +++ b/packages/app/src/providers/catalog/order.test.ts @@ -0,0 +1,6 @@ +import { expect, test } from "bun:test" +import { popularProviders } from "./order" + +test("lists OpenCode Go before Zen and other popular providers", () => { + expect(popularProviders.slice(0, 2)).toEqual(["opencode-go", "opencode"]) +}) diff --git a/packages/app/src/providers/catalog/order.ts b/packages/app/src/providers/catalog/order.ts index 8f514bb9f44..c0ed38b9c85 100644 --- a/packages/app/src/providers/catalog/order.ts +++ b/packages/app/src/providers/catalog/order.ts @@ -1,6 +1,6 @@ export const popularProviders = [ - "opencode", "opencode-go", + "opencode", "anthropic", "github-copilot", "openai", diff --git a/packages/app/src/providers/connect/dialog.tsx b/packages/app/src/providers/connect/dialog.tsx index 3690f2c9e60..85c0520a89d 100644 --- a/packages/app/src/providers/connect/dialog.tsx +++ b/packages/app/src/providers/connect/dialog.tsx @@ -110,7 +110,7 @@ function ProviderPicker(props: { directory?: string; onSelect: (provider: string active: undefined as string | undefined, connecting: undefined as string | undefined, }) - const featured = ["opencode", "opencode-go", "anthropic", "openai", "google", "openrouter", "vercel"] + const featured = ["opencode-go", "opencode", "anthropic", "openai", "google", "openrouter", "vercel"] const custom = () => ({ id: CUSTOM_ID, name: language.t("dialog.provider.custom.label") }) const all = createMemo(() => { language.locale() diff --git a/packages/app/src/providers/models/unpaid.tsx b/packages/app/src/providers/models/unpaid.tsx index 2542df719e8..e52ec835935 100644 --- a/packages/app/src/providers/models/unpaid.tsx +++ b/packages/app/src/providers/models/unpaid.tsx @@ -13,7 +13,7 @@ import { useLanguage } from "@/runtime/i18n/language" import { ModelTooltip } from "./tooltip" type ModelState = ReturnType["model"] -const featuredProviders = ["opencode", "opencode-go", "openai", "anthropic", "google", "github-copilot"] +const featuredProviders = ["opencode-go", "opencode", "openai", "anthropic", "google", "github-copilot"] const displayModelName = (name: string) => name.replace(/\s+(?:\(free\)|free)$/i, "") export const DialogSelectModelUnpaid: Component<{ model?: ModelState }> = (props) => { diff --git a/packages/app/src/settings/providers/providers.tsx b/packages/app/src/settings/providers/providers.tsx index 85512dbd998..d1103de34f6 100644 --- a/packages/app/src/settings/providers/providers.tsx +++ b/packages/app/src/settings/providers/providers.tsx @@ -58,6 +58,7 @@ export const SettingsProviders: Component<{ (provider) => provider.id !== "opencode" || Object.values(provider.models).some((model) => model.cost.input > 0), ) + .toSorted((a, b) => Number(b.id === "opencode-go") - Number(a.id === "opencode-go")) }) const popular = createMemo(() => { diff --git a/packages/storybook/.storybook/mocks/app/context/server-sdk.ts b/packages/storybook/.storybook/mocks/app/context/server-sdk.ts index 262acf1736e..08e1de7f736 100644 --- a/packages/storybook/.storybook/mocks/app/context/server-sdk.ts +++ b/packages/storybook/.storybook/mocks/app/context/server-sdk.ts @@ -1,6 +1,6 @@ const providers = [ - "opencode", "opencode-go", + "opencode", "anthropic", "openai", "google", diff --git a/packages/storybook/.storybook/mocks/app/hooks/use-providers.ts b/packages/storybook/.storybook/mocks/app/hooks/use-providers.ts index b7585b90e15..99f73483404 100644 --- a/packages/storybook/.storybook/mocks/app/hooks/use-providers.ts +++ b/packages/storybook/.storybook/mocks/app/hooks/use-providers.ts @@ -15,8 +15,8 @@ const provider = { } const popular = [ - { id: "opencode", name: "OpenCode Zen", models: {} }, { id: "opencode-go", name: "OpenCode Go", models: {} }, + { id: "opencode", name: "OpenCode Zen", models: {} }, { id: "openai", name: "OpenAI", models: {} }, provider, { id: "google", name: "Google", models: {} },