From 7023e2a4ff0a8fa968aed2f55a0abd81a28feb55 Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Thu, 2 Apr 2026 10:46:53 -0700 Subject: [PATCH] fix(studio): prioritize curated defaults over HF download ranking in Recommended (#4792) The model list merge order was `top_gguf + top_hub + static_models`, which meant the HF download-ranked models always came first. New models like Gemma 4 have low download counts and were not in the HF top-40, so they got buried after 80 other models despite being at the top of the curated static defaults in defaults.py. Flip the merge to `static_models + top_gguf + top_hub` so editorial picks (new model launches, promoted models) always appear first in the Recommended section, with HF popularity backfilling after. Co-authored-by: Daniel Han --- studio/backend/core/inference/orchestrator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/studio/backend/core/inference/orchestrator.py b/studio/backend/core/inference/orchestrator.py index f293a0dcd8..cb5d9da34a 100644 --- a/studio/backend/core/inference/orchestrator.py +++ b/studio/backend/core/inference/orchestrator.py @@ -109,12 +109,13 @@ class InferenceOrchestrator: self._top_models_ready.wait(timeout = 5) top_gguf = self._top_gguf_cache or [] top_hub = self._top_hub_cache or [] - # GGUFs first, then hub models, then static fallbacks. + # Curated static defaults first (editorial picks like new models), + # then HF download-ranked models to backfill. # Send extras so the frontend still has 4 per category # after removing already-downloaded models. result: list[str] = [] seen: set[str] = set() - for m in top_gguf + top_hub + self._static_models: + for m in self._static_models + top_gguf + top_hub: if m not in seen: result.append(m) seen.add(m)