From dc68d992a48cb46564c131f2bd5cf6bfd345a806 Mon Sep 17 00:00:00 2001 From: chihlasm Date: Fri, 27 Feb 2026 00:02:47 -0500 Subject: [PATCH] debug: add temporary /ai/provider-debug endpoint Shows which provider is selected and whether keys are loaded. Remove after debugging the 502 on PR env. Co-Authored-By: Claude Opus 4.6 --- backend/app/api/endpoints/ai_builder.py | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/backend/app/api/endpoints/ai_builder.py b/backend/app/api/endpoints/ai_builder.py index c8771d16..b0c7aa41 100644 --- a/backend/app/api/endpoints/ai_builder.py +++ b/backend/app/api/endpoints/ai_builder.py @@ -55,6 +55,33 @@ def _require_ai_enabled() -> None: ) +@router.get("/provider-debug") +async def provider_debug( + current_user: Annotated[User, Depends(get_current_active_user)], + _: None = Depends(require_engineer_or_admin), +): + """Temporary debug endpoint — shows which AI provider would be selected.""" + from app.core.ai_provider import get_ai_provider + has_gemini_key = bool(settings.GOOGLE_AI_API_KEY) + has_anthropic_key = bool(settings.ANTHROPIC_API_KEY) + provider_setting = settings.AI_PROVIDER + try: + provider = get_ai_provider() + provider_type = type(provider).__name__ + except RuntimeError as e: + provider_type = f"ERROR: {e}" + return { + "ai_provider_setting": provider_setting, + "has_gemini_key": has_gemini_key, + "gemini_key_prefix": settings.GOOGLE_AI_API_KEY[:8] + "..." if settings.GOOGLE_AI_API_KEY else None, + "has_anthropic_key": has_anthropic_key, + "anthropic_key_prefix": settings.ANTHROPIC_API_KEY[:8] + "..." if settings.ANTHROPIC_API_KEY else None, + "selected_provider": provider_type, + "gemini_model": settings.AI_MODEL_GEMINI, + "anthropic_model": settings.AI_MODEL_ANTHROPIC, + } + + @router.get("/quota", response_model=AIQuotaStatusResponse) async def get_quota( current_user: Annotated[User, Depends(get_current_active_user)],