fix(codex): load context defaults from CPA model definitions
- Resolve context limits from core model definitions, aliases, and configuration - Preserve user overrides and display context sources and fallback hints - Refresh defaults from CPA when restoring all model settings - Keep restore-all available without customizations and remove its icon - Allow saving restored defaults even when values remain unchanged - Add regression coverage for context resolution and default restoration
This commit is contained in:
1 parent
ce9944c316
commit
40ba85d6f0
10 files changed
+452
-66
No files matched your search
@@ -1,10 +1,12 @@
|
||||
import { describe, expect, test } from 'bun:test';
|
||||
import {
|
||||
cloneCodexModelConfiguration,
|
||||
codexContextSourceHint,
|
||||
sameCodexModelConfiguration,
|
||||
toggleCodexReasoningLevel,
|
||||
validateCodexModelConfiguration,
|
||||
type CodexModelConfiguration,
|
||||
type CodexCatalogEditorModel,
|
||||
} from '../src/services/codexModelCatalog';
|
||||
|
||||
const configuration = (): CodexModelConfiguration => ({
|
||||
@@ -26,6 +28,20 @@ const configuration = (): CodexModelConfiguration => ({
|
||||
});
|
||||
|
||||
describe('Codex 模型列表编辑', () => {
|
||||
test("区分内核模型定义与兼容目录的后备上下文", () => {
|
||||
const model: CodexCatalogEditorModel = {
|
||||
slug: "model-a", hasOfficialTemplate: true, customized: false,
|
||||
contextSource: "definition", configuration: configuration(), defaults: configuration(),
|
||||
};
|
||||
expect(codexContextSourceHint(model)).toBe("agents.catalog.contextSource.definition");
|
||||
expect(codexContextSourceHint({ ...model, contextSource: "compatibility" }))
|
||||
.toBe("agents.catalog.contextSource.compatibility");
|
||||
model.configuration.context_window = 64_000;
|
||||
expect(codexContextSourceHint(model)).toBe("agents.catalog.contextSource.customized");
|
||||
model.configuration = cloneCodexModelConfiguration(model.defaults);
|
||||
expect(codexContextSourceHint(model)).toBe("agents.catalog.contextSource.definition");
|
||||
});
|
||||
|
||||
test('克隆配置时隔离数组字段', () => {
|
||||
const original = configuration();
|
||||
const cloned = cloneCodexModelConfiguration(original);
|
||||
|
||||
Reference in new issue
Block a user