diff --git a/packages/cli/src/config/settings-validation.test.ts b/packages/cli/src/config/settings-validation.test.ts index baf9b5bbdb..e6f920e44b 100644 --- a/packages/cli/src/config/settings-validation.test.ts +++ b/packages/cli/src/config/settings-validation.test.ts @@ -298,6 +298,33 @@ describe('settings-validation', () => { expect(issue).toBeDefined(); } }); + + it('should accept customThemes with text.response color override', () => { + // Regression test for #25610: `response` is a documented and + // implemented color override for model responses (see + // packages/cli/src/ui/themes/theme.ts and semantic-tokens.ts), + // but was missing from the CustomTheme validation schema. + const validSettings = { + ui: { + theme: 'LimeWhite', + customThemes: { + LimeWhite: { + type: 'custom', + name: 'LimeWhite', + text: { + primary: '#00FF00', + response: '#FFFFFF', + secondary: '#a0a0a0', + accent: '#00FF00', + }, + }, + }, + }, + }; + + const result = validateSettings(validSettings); + expect(result.success).toBe(true); + }); }); describe('formatValidationError', () => { diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index 08edbd66f9..cea336a40d 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -3278,6 +3278,7 @@ export const SETTINGS_SCHEMA_DEFINITIONS: Record< secondary: { type: 'string' }, link: { type: 'string' }, accent: { type: 'string' }, + response: { type: 'string' }, }, }, background: { diff --git a/schemas/settings.schema.json b/schemas/settings.schema.json index a883150d66..a3c4b8cc94 100644 --- a/schemas/settings.schema.json +++ b/schemas/settings.schema.json @@ -3880,6 +3880,9 @@ }, "accent": { "type": "string" + }, + "response": { + "type": "string" } } },