From cc45949eba9bc2e8c7eb84ad7e9665a8bf683f90 Mon Sep 17 00:00:00 2001 From: Andrew Beal Date: Fri, 10 Jul 2026 23:06:16 +0100 Subject: [PATCH] Update OpenAI model identifiers from GPT-5.5/5.4 to GPT-5.6 series Replace GPT-5.5-pro, GPT-5.5, GPT-5.4-mini, and GPT-5.4-nano with the new GPT-5.6 Sol, Terra, and Luna model variants across enum definitions, display copy, settings UI, tests, and default model configurations. --- Enums/ApiProvider.ts | 15 +++++++-------- Enums/Copy.ts | 7 +++---- Views/VaultkeeperAISettingTab.ts | 7 +++---- __tests__/Services/SettingsService.test.ts | 15 +++++++-------- 4 files changed, 20 insertions(+), 24 deletions(-) diff --git a/Enums/ApiProvider.ts b/Enums/ApiProvider.ts index 83d75a9..1f5955d 100644 --- a/Enums/ApiProvider.ts +++ b/Enums/ApiProvider.ts @@ -78,10 +78,9 @@ export enum AIProviderModel { GeminiPro_3_1_Preview = "gemini-3.1-pro-preview", // OpenAI models - GPT_5_5_Pro = "gpt-5.5-pro-2026-04-23", - GPT_5_5 = "gpt-5.5-2026-04-23", - GPT_5_4_Mini = "gpt-5.4-mini-2026-03-17", - GPT_5_4_Nano = "gpt-5.4-nano-2026-03-17", + GPT_5_6_Sol = "gpt-5.6-sol", + GPT_5_6_Terra = "gpt-5.6-terra", + GPT_5_6_Luna = "gpt-5.6-luna", // Mistral models MistralMedium = "mistral-medium-3-5", @@ -90,7 +89,7 @@ export enum AIProviderModel { // Conversation naming models (aliases to existing models) ClaudeNamer = ClaudeHaiku_4_5, GeminiNamer = GeminiFlash_3_1_Lite, - OpenAINamer = GPT_5_4_Nano, + OpenAINamer = GPT_5_6_Luna, MistralNamer = MistralSmall, // Local models are freely typed so no default is given @@ -120,7 +119,7 @@ export enum MistralAgentEndpoint { export const DEFAULT_QUICK_MODEL_BY_PROVIDER: Record = { [AIProvider.Claude]: AIProviderModel.ClaudeHaiku_4_5, [AIProvider.Gemini]: AIProviderModel.GeminiFlash_3_1_Lite, - [AIProvider.OpenAI]: AIProviderModel.GPT_5_4_Nano, + [AIProvider.OpenAI]: AIProviderModel.GPT_5_6_Luna, [AIProvider.Mistral]: AIProviderModel.MistralSmall, [AIProvider.Local]: AIProviderModel.None } @@ -128,7 +127,7 @@ export const DEFAULT_QUICK_MODEL_BY_PROVIDER: Record = { [AIProvider.Claude]: AIProviderModel.ClaudeSonnet_5, [AIProvider.Gemini]: AIProviderModel.GeminiFlash_3_5_Flash, - [AIProvider.OpenAI]: AIProviderModel.GPT_5_5, + [AIProvider.OpenAI]: AIProviderModel.GPT_5_6_Terra, [AIProvider.Mistral]: AIProviderModel.MistralMedium, [AIProvider.Local]: AIProviderModel.None } @@ -136,7 +135,7 @@ export const DEFAULT_MODEL_BY_PROVIDER: Record = { export const DEFAULT_PLANNING_MODEL_BY_PROVIDER: Record = { [AIProvider.Claude]: AIProviderModel.ClaudeOpus_4_8, [AIProvider.Gemini]: AIProviderModel.GeminiFlash_3_5_Flash, - [AIProvider.OpenAI]: AIProviderModel.GPT_5_5, + [AIProvider.OpenAI]: AIProviderModel.GPT_5_6_Sol, [AIProvider.Mistral]: AIProviderModel.MistralMedium, [AIProvider.Local]: AIProviderModel.None } \ No newline at end of file diff --git a/Enums/Copy.ts b/Enums/Copy.ts index 4071929..8b8c7de 100644 --- a/Enums/Copy.ts +++ b/Enums/Copy.ts @@ -16,10 +16,9 @@ export enum Copy { GeminiFlash_3_5_Flash = "Gemini 3.5 Flash", GeminiPro_3_1_Preview = "Gemini 3.1 Pro Preview", - GPT_5_5_Pro = "GPT-5.5 Pro", - GPT_5_5 = "GPT-5.5", - GPT_5_4_Mini = "GPT-5.4 Mini", - GPT_5_4_Nano = "GPT-5.4 Nano", + GPT_5_6_Sol = "GPT-5.6 Sol", + GPT_5_6_Terra = "GPT-5.6 Terra", + GPT_5_6_Luna = "GPT-5.6 Luna", MistralMedium = "Mistral Medium 3.5", MistralSmall = "Mistral Small 4", diff --git a/Views/VaultkeeperAISettingTab.ts b/Views/VaultkeeperAISettingTab.ts index 250807b..98ade94 100644 --- a/Views/VaultkeeperAISettingTab.ts +++ b/Views/VaultkeeperAISettingTab.ts @@ -495,10 +495,9 @@ export class VaultkeeperAISettingTab extends PluginSettingTab { break; case AIProvider.OpenAI: dropdown.addOptions({ - [AIProviderModel.GPT_5_5_Pro]: Copy.GPT_5_5_Pro, - [AIProviderModel.GPT_5_5]: Copy.GPT_5_5, - [AIProviderModel.GPT_5_4_Mini]: Copy.GPT_5_4_Mini, - [AIProviderModel.GPT_5_4_Nano]: Copy.GPT_5_4_Nano + [AIProviderModel.GPT_5_6_Sol]: Copy.GPT_5_6_Sol, + [AIProviderModel.GPT_5_6_Terra]: Copy.GPT_5_6_Terra, + [AIProviderModel.GPT_5_6_Luna]: Copy.GPT_5_6_Luna }); break; case AIProvider.Gemini: diff --git a/__tests__/Services/SettingsService.test.ts b/__tests__/Services/SettingsService.test.ts index c4a208c..157d201 100644 --- a/__tests__/Services/SettingsService.test.ts +++ b/__tests__/Services/SettingsService.test.ts @@ -68,7 +68,7 @@ describe('SettingsService', () => { it('should handle partially loaded settings and fill missing properties with defaults', () => { const loadedSettings: Partial = { provider: AIProvider.OpenAI, - model: AIProviderModel.GPT_5_5, + model: AIProviderModel.GPT_5_6_Terra, apiKeys: { claude: '', openai: 'partial-key', @@ -79,7 +79,7 @@ describe('SettingsService', () => { settingsService = new SettingsService(loadedSettings as IVaultkeeperAISettings); expect(settingsService.settings.firstTimeStart).toBe(true); // Default - expect(settingsService.settings.model).toBe(AIProviderModel.GPT_5_5); // Loaded + expect(settingsService.settings.model).toBe(AIProviderModel.GPT_5_6_Terra); // Loaded expect(settingsService.settings.apiKeys.openai).toBe('partial-key'); // Loaded expect(settingsService.settings.exclusions).toEqual([]); // Default expect(settingsService.settings.userInstruction).toBe(''); // Default @@ -236,7 +236,7 @@ describe('SettingsService', () => { it('should return OpenAI key when current model is GPT', () => { const loadedSettings = makeTestSettings({ provider: AIProvider.OpenAI, - model: AIProviderModel.GPT_5_4_Mini, + model: AIProviderModel.GPT_5_6_Luna, apiKeys: { claude: 'claude-key', openai: 'openai-key', @@ -285,7 +285,7 @@ describe('SettingsService', () => { // Test with various GPT models settingsService = new SettingsService({ provider: AIProvider.OpenAI, - model: AIProviderModel.GPT_5_5, + model: AIProviderModel.GPT_5_6_Terra, apiKeys: { claude: '', openai: 'gpt5-key', gemini: '', mistral: '', local: '' } }); expect(settingsService.getApiKeyForCurrentProvider()).toBe('gpt5-key'); @@ -478,10 +478,9 @@ describe('SettingsService', () => { it('should correctly identify OpenAI models', () => { const openaiModels = [ - AIProviderModel.GPT_5_4_Nano, - AIProviderModel.GPT_5_4_Mini, - AIProviderModel.GPT_5_5, - AIProviderModel.GPT_5_4_Mini + AIProviderModel.GPT_5_6_Sol, + AIProviderModel.GPT_5_6_Terra, + AIProviderModel.GPT_5_6_Luna ]; openaiModels.forEach(model => {