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.
This commit is contained in:
Andrew Beal 2026-07-10 23:06:16 +01:00
parent 7757800127
commit cc45949eba
4 changed files with 20 additions and 24 deletions

View file

@ -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, AIProviderModel> = {
[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, AIProviderModel
export const DEFAULT_MODEL_BY_PROVIDER: Record<AIProvider, AIProviderModel> = {
[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<AIProvider, AIProviderModel> = {
export const DEFAULT_PLANNING_MODEL_BY_PROVIDER: Record<AIProvider, AIProviderModel> = {
[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
}

View file

@ -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",

View file

@ -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:

View file

@ -68,7 +68,7 @@ describe('SettingsService', () => {
it('should handle partially loaded settings and fill missing properties with defaults', () => {
const loadedSettings: Partial<IVaultkeeperAISettings> = {
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 => {