From de7138166ca2dca765c05ab59e9d9b1b154277bb Mon Sep 17 00:00:00 2001 From: kaitranntt Date: Sun, 25 Jan 2026 17:03:10 -0500 Subject: [PATCH] fix(ui): improve model quota tooltip tier sorting Sort models by capability tier instead of just provider: - Tier 0: Claude + GPT (primary, weekly limits) - Tier 1: Gemini 3 Pro (high capability) - Tier 2: Gemini 2.5 Pro/Flash (mid tier) - Tier 3: Other Gemini models - Tier 4: Everything else (chat_, tab_, etc.) --- ui/src/lib/utils.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/ui/src/lib/utils.ts b/ui/src/lib/utils.ts index c9f58ad2..713764b2 100644 --- a/ui/src/lib/utils.ts +++ b/ui/src/lib/utils.ts @@ -56,18 +56,29 @@ export function getProviderColor(provider: string): string { } /** - * Sort models with Claude models first, then alphabetically - * Prioritizes: Claude > Gemini > GPT > Other (alphabetically) + * Sort models by tier: Primary (Claude/GPT) > Gemini 3 Pro > Gemini 2.5 > Others + * Within each tier, sorts alphabetically by display name */ export function sortModelsByPriority( models: T[] ): T[] { const getPriority = (model: T): number => { const name = (model.displayName || model.name).toLowerCase(); - if (name.includes('claude')) return 0; - if (name.includes('gemini')) return 1; - if (name.includes('gpt')) return 2; - return 3; + + // Tier 0: Primary models (Claude + GPT) - weekly limits, most valuable + if (name.includes('claude') || name.includes('gpt')) return 0; + + // Tier 1: Gemini 3 Pro models - high capability + if (name.includes('gemini 3') || name.includes('gemini-3')) return 1; + + // Tier 2: Gemini 2.5 Pro/Flash models - mid tier + if (name.includes('gemini 2.5') || name.includes('gemini-2.5')) return 2; + + // Tier 3: Other Gemini models + if (name.includes('gemini')) return 3; + + // Tier 4: Everything else + return 4; }; return [...models].sort((a, b) => {