Merge pull request #1450 from kaitranntt/codex/fix-hidden-stale-default-model-in-live-catalogs

fix: keep live catalog defaults visible
This commit is contained in:
Kai (Tam Nhu) Tran authored and GitHub committed 2026-05-30 15:59:59 -04:00
commit a6ea3f2d19
5 files changed
+81 -9

No files matched your search

@@ -55,6 +55,18 @@ describe('model-catalog compatibility lookups', () => {
expect(catalog?.models.map((model) => model.id)).toEqual(['gemini-2.5-pro']);
});
it('falls back to a visible live model when the static default is absent', () => {
const catalog = mergeCatalog('gemini', [
{
id: 'gemini-live-only',
display_name: 'Gemini Live Only',
},
]);
expect(catalog?.defaultModel).toBe('gemini-live-only');
expect(catalog?.models.map((model) => model.id)).toContain(catalog?.defaultModel);
});
it('preserves static maxLevel when live thinking metadata omits it', () => {
const catalog = mergeCatalog('claude', [
{
+6 -4
View File
@@ -250,7 +250,6 @@ export function mergeCatalog(
if (!staticCatalog && filteredRemoteModels.length === 0) return undefined;
const displayName = staticCatalog?.displayName || provider;
const defaultModel = staticCatalog?.defaultModel || (filteredRemoteModels[0]?.id ?? '');
// Build map of static models by lowercase ID for fast lookup
const staticMap = new Map<string, ModelEntry>();
@@ -261,14 +260,11 @@ export function mergeCatalog(
}
// Process remote models: merge with static entries
const mergedIds = new Set<string>();
const mergedModels: ModelEntry[] = [];
for (const remote of filteredRemoteModels) {
const remoteEntry = mapRemoteToModelEntry(remote);
const staticEntry = staticMap.get(remote.id.toLowerCase());
mergedIds.add(remote.id.toLowerCase());
if (staticEntry) {
const mergedThinking = remoteEntry.thinking
? {
@@ -293,6 +289,12 @@ export function mergeCatalog(
}
}
const staticDefaultModel = staticCatalog?.defaultModel;
const hasStaticDefaultModel =
typeof staticDefaultModel === 'string' &&
mergedModels.some((model) => model.id.toLowerCase() === staticDefaultModel.toLowerCase());
const defaultModel = hasStaticDefaultModel ? staticDefaultModel : (mergedModels[0]?.id ?? '');
return {
provider,
displayName,