fix(ui): preserve codex tuning metadata in live catalog merge

This commit is contained in:
milesnguyen2405 committed 2026-07-22 15:14:03 +07:00
1 parent 108ff843f1
commit 8d1a093cf9
2 files changed
+33

No files matched your search

+3
View File
@@ -1150,6 +1150,9 @@ export function buildUiCatalog(
: (model.extendedContext ?? staticModel?.extendedContext),
presetMapping: staticModel?.presetMapping,
reasoningLevels: model.reasoningLevels ?? staticModel?.reasoningLevels,
codexMaxEffort: model.codexMaxEffort ?? staticModel?.codexMaxEffort,
codexEfforts: model.codexEfforts ?? staticModel?.codexEfforts,
codexServiceTiers: model.codexServiceTiers ?? staticModel?.codexServiceTiers,
};
});
@@ -0,0 +1,30 @@
import { describe, expect, it } from 'vitest';
import { buildUiCatalog } from '@/lib/model-catalogs';
describe('buildUiCatalog codex tuning metadata merge', () => {
it('preserves static codex effort and service-tier metadata when the live catalog omits them', () => {
const merged = buildUiCatalog('codex', {
provider: 'codex',
displayName: 'Codex',
defaultModel: 'gpt-5.6-sol',
models: [{ id: 'gpt-5.6-sol', name: 'GPT-5.6 Sol' }],
});
const model = merged?.models.find((entry) => entry.id === 'gpt-5.6-sol');
expect(model?.codexMaxEffort).toBe('xhigh');
expect(model?.codexEfforts).toEqual(['low', 'medium', 'high', 'xhigh']);
expect(model?.codexServiceTiers).toEqual(['fast']);
});
it('prefers live metadata over static when the live catalog provides it', () => {
const merged = buildUiCatalog('codex', {
provider: 'codex',
displayName: 'Codex',
defaultModel: 'gpt-5.6-sol',
models: [{ id: 'gpt-5.6-sol', name: 'GPT-5.6 Sol', codexServiceTiers: [] }],
});
const model = merged?.models.find((entry) => entry.id === 'gpt-5.6-sol');
expect(model?.codexServiceTiers).toEqual([]);
});
});