From dacde39400bf6514b625a97d936674067c87daca Mon Sep 17 00:00:00 2001 From: southseact-3d Date: Sun, 8 Feb 2026 16:23:51 +0000 Subject: [PATCH] debug: Add logging to help diagnose provider loading issues Add detailed logging to provider initialization to help debug why Chutes and other providers aren't loading: - Log all providers found in database - Log API key env vars detected - Log custom loader results with autoload status - Log final loaded providers count This will help identify if the issue is: 1. Database not loading correctly 2. Missing env vars 3. Custom loaders not being called 4. Providers being filtered out --- .../opencode/src/provider/provider.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/opencode/packages/opencode/src/provider/provider.ts b/opencode/packages/opencode/src/provider/provider.ts index a4ce132..97dd452 100644 --- a/opencode/packages/opencode/src/provider/provider.ts +++ b/opencode/packages/opencode/src/provider/provider.ts @@ -824,7 +824,11 @@ export namespace Provider { } = {} const sdk = new Map() - log.info("init") + log.info("init", { + providerCount: Object.keys(database).length, + providers: Object.keys(database), + envKeys: Object.keys(env).filter(k => k.includes('API_KEY') || k.includes('TOKEN')).map(k => k.replace(/_API_KEY$/, '').toLowerCase()) + }) const configProviders = Object.entries(config.provider ?? {}) @@ -1009,13 +1013,17 @@ export namespace Provider { } for (const [providerID, fn] of Object.entries(CUSTOM_LOADERS)) { - if (disabled.has(providerID)) continue + if (disabled.has(providerID)) { + log.info("custom loader skipped (disabled)", { providerID }) + continue + } const data = database[providerID] if (!data) { log.error("Provider does not exist in model list " + providerID) continue } const result = await fn(data) + log.info("custom loader result", { providerID, autoload: result?.autoload, hasEnv: data.env.some(e => env[e]) }) if (result && (result.autoload || providers[providerID])) { if (result.getModel) modelLoaders[providerID] = result.getModel const opts = result.options ?? {} @@ -1071,9 +1079,14 @@ export namespace Provider { continue } - log.info("found", { providerID }) + log.info("found", { providerID, modelCount: Object.keys(provider.models).length }) } + log.info("providers loaded", { + total: Object.keys(providers).length, + connected: Object.keys(providers) + }) + return { models: languages, providers,