From ad905f8e6c8c09d04ef22ba0f74b1631dac18327 Mon Sep 17 00:00:00 2001 From: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Date: Tue, 18 Aug 2026 20:48:25 +0200 Subject: [PATCH] fix(opencode): properly show authed providers on /connect command (#39915) --- .../src/server/routes/instance/httpapi/handlers/provider.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/server/routes/instance/httpapi/handlers/provider.ts b/packages/opencode/src/server/routes/instance/httpapi/handlers/provider.ts index e1377b6f75c..6f0e5f608cd 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/handlers/provider.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/handlers/provider.ts @@ -2,6 +2,7 @@ import { ProviderAuth } from "@/provider/auth" import { Config } from "@/config/config" import { ModelsDev } from "@opencode-ai/core/models-dev" import { Provider } from "@/provider/provider" +import { Auth } from "@/auth" import { mapValues } from "remeda" import { Effect, Schema } from "effect" @@ -36,6 +37,7 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider" const cfg = yield* Config.Service const provider = yield* Provider.Service const svc = yield* ProviderAuth.Service + const authStore = yield* Auth.Service const list = Effect.fn("ProviderHttpApi.list")(function* () { const config = yield* cfg.get() @@ -47,6 +49,7 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider" if ((enabled ? enabled.has(key) : true) && !disabled.has(key)) filtered[key] = value } const connected = yield* provider.list() + const credentials = yield* authStore.all().pipe(Effect.orDie) const providers = Object.assign( mapValues(filtered, (item) => Provider.fromModelsDevProvider(item)), connected, @@ -54,7 +57,7 @@ export const providerHandlers = HttpApiBuilder.group(InstanceHttpApi, "provider" return { all: Object.values(providers).map(Provider.toPublicInfo), default: Provider.defaultModelIDs(providers), - connected: Object.keys(connected), + connected: Object.keys(providers).filter((id) => id in connected || credentials[id]), } })