diff --git a/packages/types/src/model-provider-config.test.ts b/packages/types/src/model-provider-config.test.ts index 72c0a23ad..94bf81acd 100644 --- a/packages/types/src/model-provider-config.test.ts +++ b/packages/types/src/model-provider-config.test.ts @@ -865,13 +865,13 @@ describe('SETUP_MODEL_PROVIDER_CATALOG', () => { expect(copilotProvider).toMatchObject({ label: 'GitHub Copilot', - defaultRoomoteModel: 'github-copilot/claude-sonnet-5', + defaultRoomoteModel: 'github-copilot/gpt-5.6-luna', authKind: 'oauth', }); expect(copilotProvider?.envVarName).toBeUndefined(); expect( copilotProvider?.suggestedTaskModels.some( - (suggestion) => suggestion.id === 'github-copilot/claude-sonnet-5', + (suggestion) => suggestion.id === 'github-copilot/gpt-5.6-luna', ), ).toBe(true); }); @@ -1030,12 +1030,6 @@ describe('buildRecommendedDeploymentModelConfig', () => { 'bedrock-mantle/anthropic.claude-sonnet-5', 'bedrock-mantle/anthropic.claude-opus-5', ], - [ - 'github-copilot', - undefined, - 'github-copilot/claude-sonnet-5', - 'github-copilot/claude-opus-5', - ], ] as const)( 'recommends Sonnet 5 with medium reasoning for %s code review', (providerId, presetId, codeReviewModel, planningModel) => { @@ -1052,6 +1046,27 @@ describe('buildRecommendedDeploymentModelConfig', () => { }, ); + it('uses Luna for GitHub Copilot with other roles following coding', () => { + expect( + buildRecommendedDeploymentModelConfig( + getSetupModelProvider('github-copilot'), + ), + ).toEqual({ + roomoteModel: 'github-copilot/gpt-5.6-luna', + roomoteSmallModel: null, + roomoteVisionModel: null, + roomoteCodeReviewModel: null, + roomoteExploreModel: null, + roomotePlanningModel: null, + roomoteModelReasoningEffort: 'medium', + roomoteSmallModelReasoningEffort: null, + roomoteVisionModelReasoningEffort: null, + roomoteCodeReviewModelReasoningEffort: null, + roomoteExploreModelReasoningEffort: null, + roomotePlanningModelReasoningEffort: null, + }); + }); + it('recommends only the coding default for providers without a role mapping', () => { expect( buildRecommendedDeploymentModelConfig(getSetupModelProvider('xai')), diff --git a/packages/types/src/model-provider-config.ts b/packages/types/src/model-provider-config.ts index 9bc7970fe..ad6bcd29e 100644 --- a/packages/types/src/model-provider-config.ts +++ b/packages/types/src/model-provider-config.ts @@ -804,7 +804,7 @@ export const SETUP_MODEL_PROVIDER_CATALOG = [ href: 'https://docs.github.com/en/copilot', linkLabel: 'GitHub Copilot docs', }, - defaultRoomoteModel: 'github-copilot/claude-sonnet-5', + defaultRoomoteModel: 'github-copilot/gpt-5.6-luna', authKind: 'oauth', suggestedTaskModels: mapRecommendedTaskModels({ 'claude-fable-5': 'github-copilot/claude-fable-5', @@ -817,13 +817,19 @@ export const SETUP_MODEL_PROVIDER_CATALOG = [ 'kimi-k3': 'github-copilot/kimi-k3', 'kimi-k2-7-code': 'github-copilot/kimi-k2.7-code', }), - recommendedRoleModels: { - helper: 'github-copilot/claude-haiku-4.5', - codeReview: 'github-copilot/claude-sonnet-5', - explore: 'github-copilot/claude-haiku-4.5', - planning: 'github-copilot/claude-opus-5', - }, - recommendedRoleReasoningEfforts: { codeReview: 'medium' }, + recommendedPresets: [ + { + id: 'default', + label: 'Recommended', + default: true, + roles: { + coding: { + modelId: 'github-copilot/gpt-5.6-luna', + reasoningEffort: 'medium', + }, + }, + }, + ], }, { id: OPENAI_COMPATIBLE_PROVIDER_ID,