From 32dc084b66de3135d6b30b8a23ce0add107e2b6e Mon Sep 17 00:00:00 2001 From: ekko <152005280+EKKOLearnAI@users.noreply.github.com> Date: Thu, 23 Apr 2026 08:48:06 +0800 Subject: [PATCH] fix: support both Codex and Nous auth structures in OAuth provider detection (#141) The isOAuthAuthorized check only looked for Codex's nested `providers.{key}.tokens.access_token` structure, missing Nous's flat `providers.nous.access_token`. Now checks both paths so all OAuth providers are correctly detected and displayed in the provider list. Co-authored-by: Claude Opus 4.6 --- packages/server/src/controllers/hermes/models.ts | 9 ++++++++- packages/server/src/services/config-helpers.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/server/src/controllers/hermes/models.ts b/packages/server/src/controllers/hermes/models.ts index a3f09f5..a83d7a0 100644 --- a/packages/server/src/controllers/hermes/models.ts +++ b/packages/server/src/controllers/hermes/models.ts @@ -46,7 +46,14 @@ export async function getAvailable(ctx: any) { const authPath = getActiveAuthPath() if (!existsSync(authPath)) return false const auth = JSON.parse(readFileSync(authPath, 'utf-8')) - return !!auth.providers?.[providerKey]?.tokens?.access_token + const provider = auth.providers?.[providerKey] + if (!provider) return false + // Codex: providers.openai-codex.tokens.access_token + // Nous: providers.nous.access_token + return !!( + provider.tokens?.access_token || + provider.access_token + ) } catch { return false } } diff --git a/packages/server/src/services/config-helpers.ts b/packages/server/src/services/config-helpers.ts index 7bbd30d..be11df4 100644 --- a/packages/server/src/services/config-helpers.ts +++ b/packages/server/src/services/config-helpers.ts @@ -27,7 +27,7 @@ export const PROVIDER_ENV_MAP: Record