improvement(models): sort model dropdown by latest release date within each provider#5099
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryLow Risk Overview Adds Unit tests cover grouping, newest-first ordering, cross-provider order, unknown IDs, case insensitivity, and stable ID sets. Reviewed by Cursor Bugbot for commit 7ee4d97. Configure here. |
Greptile SummaryThis PR adds a
Confidence Score: 5/5Safe to merge — the change is a pure display-ordering helper with no effect on stored state, execution, or dynamic providers. The sorting logic is correct: No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["getModelOptions()"] --> B["providersState.providers.base.models\n(string[])"]
B --> C["orderModelIdsByReleaseDate(modelIds)"]
C --> D{"For each ID:\nlookup MODEL_CATALOG_INDEX"}
D -- "Found" --> E["Group by providerId\n(Map, insertion-order preserved)"]
D -- "Not found" --> F["unknown[] — dynamic provider IDs"]
E --> G["Sort each bucket:\nnewer releaseTime first\ndeclIndex tiebreaker"]
G --> H["ordered: string[]"]
F --> I["Append unknown IDs at end"]
H --> I
I --> J["allModels = Set([...baseModels, ...ollamaModels, ...])"]
J --> K["Return model options for dropdown"]
M["MODULE LOAD\nMODEL_CATALOG_INDEX\nbuilt once from\nPROVIDER_DEFINITIONS"] -.-> D
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A["getModelOptions()"] --> B["providersState.providers.base.models\n(string[])"]
B --> C["orderModelIdsByReleaseDate(modelIds)"]
C --> D{"For each ID:\nlookup MODEL_CATALOG_INDEX"}
D -- "Found" --> E["Group by providerId\n(Map, insertion-order preserved)"]
D -- "Not found" --> F["unknown[] — dynamic provider IDs"]
E --> G["Sort each bucket:\nnewer releaseTime first\ndeclIndex tiebreaker"]
G --> H["ordered: string[]"]
F --> I["Append unknown IDs at end"]
H --> I
I --> J["allModels = Set([...baseModels, ...ollamaModels, ...])"]
J --> K["Return model options for dropdown"]
M["MODULE LOAD\nMODEL_CATALOG_INDEX\nbuilt once from\nPROVIDER_DEFINITIONS"] -.-> D
Reviews (2): Last reviewed commit: "fix(models): preserve input provider ord..." | Re-trigger Greptile |
|
@greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 7ee4d97. Configure here.
Summary
orderModelIdsByReleaseDateto the provider catalog (models.ts) — a pure display-ordering helper; undated models keep declaration order after dated ones, and unknown/dynamic-provider IDs are preserved at the endgetModelOptions, so every model dropdown picks it up through the shared sourceType of Change
Testing
orderModelIdsByReleaseDate(provider grouping preserved, newest-first within provider, unknown IDs last, case-insensitive, no IDs added/dropped)blocks/utils.test.tspassing; typecheck cleanChecklist