diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index 6b4e65dc79..a9c3b04620 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -1354,6 +1354,21 @@ describe('Config getHooks', () => { expect(retrievedHooks).toEqual(allEventHooks); expect(Object.keys(retrievedHooks!)).toHaveLength(11); // All hook event types }); + + describe('setModel', () => { + it('should allow setting a pro (any) model and disable fallback mode', () => { + const config = new Config(baseParams); + config.setFallbackMode(true); + expect(config.isInFallbackMode()).toBe(true); + + const proModel = 'gemini-2.5-pro'; + config.setModel(proModel); + + expect(config.getModel()).toBe(proModel); + expect(config.isInFallbackMode()).toBe(false); + expect(mockCoreEvents.emitModelChanged).toHaveBeenCalledWith(proModel); + }); + }); }); describe('Config getExperiments', () => { diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 20fe3b578d..ef3598824b 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -692,10 +692,7 @@ export class Config { } setModel(newModel: string): void { - // Do not allow Pro usage if the user is in fallback mode. - if (newModel.includes('pro') && this.isInFallbackMode()) { - return; - } + this.setFallbackMode(false); if (this.model !== newModel) { this.model = newModel;