diff --git a/ai-hub/app/core/services/preference.py b/ai-hub/app/core/services/preference.py index 268f8b0..0dc0897 100644 --- a/ai-hub/app/core/services/preference.py +++ b/ai-hub/app/core/services/preference.py @@ -56,25 +56,9 @@ merged_statuses = copy.deepcopy(system_statuses) merged_statuses.update(user_statuses) - # M6: Propagate personal statuses to their suffixed IDs (e.g. llm_gemini -> llm_gemini_personal) - # This ensures the UI shows green/red dots for personal accounts correctly. - for k, v in user_statuses.items(): - merged_statuses[f"{k}_personal"] = v - def is_provider_healthy(section: str, provider_id: str, p_data: dict = None) -> bool: - # M6: Check health using either the full ID or the base ID (in case of personal suffix) status_key = f"{section}_{provider_id}" - base_id = provider_id.replace("_personal", "") - base_status_key = f"{section}_{base_id}" - - is_success = ( - user_statuses.get(status_key) == "success" or - user_statuses.get(base_status_key) == "success" or - system_statuses.get(status_key) == "success" or - system_statuses.get(base_status_key) == "success" - ) - has_key = p_data and p_data.get("api_key") and p_data.get("api_key") not in ("None", "none", "") - return is_success or bool(has_key) + return merged_statuses.get(status_key) == "success" # Build effective combined config for processing def get_effective_providers(section_name, user_section_providers, sys_defaults, user_section_data): @@ -407,7 +391,9 @@ return schemas.VerifyProviderResponse(success=False, message="Forbidden: Admin only for masked keys") actual_key = req.api_key - prefs = user.preferences.get(section, {}).get("providers", {}).get(req.provider_name, {}) if user.preferences else {} + # M6: Support suffixed IDs (e.g. gemini_personal -> gemini) + base_id = req.provider_name.replace("_personal", "") + prefs = user.preferences.get(section, {}).get("providers", {}).get(base_id, {}) if user.preferences else {} if is_masked: actual_key = prefs.get("api_key")