Allow users to reset to auto when it's in fallback mode (#12623)

This commit is contained in:
Sehoon Shon
2025-11-12 19:30:43 -05:00
committed by GitHub
parent ad1f0d995d
commit a810ca80bc
2 changed files with 33 additions and 3 deletions

View File

@@ -1509,6 +1509,37 @@ describe('Config getHooks', () => {
expect(config.isInFallbackMode()).toBe(false);
expect(mockCoreEvents.emitModelChanged).toHaveBeenCalledWith(proModel);
});
it('should allow setting auto model from non-auto model and disable fallback mode', () => {
const config = new Config(baseParams);
config.setFallbackMode(true);
expect(config.isInFallbackMode()).toBe(true);
config.setModel('auto');
expect(config.getModel()).toBe('auto');
expect(config.isInFallbackMode()).toBe(false);
expect(mockCoreEvents.emitModelChanged).toHaveBeenCalledWith('auto');
});
it('should allow setting auto model from auto model if it is in the fallback mode', () => {
const config = new Config({
cwd: '/tmp',
targetDir: '/path/to/target',
debugMode: false,
sessionId: 'test-session-id',
model: 'auto',
usageStatisticsEnabled: false,
});
config.setFallbackMode(true);
expect(config.isInFallbackMode()).toBe(true);
config.setModel('auto');
expect(config.getModel()).toBe('auto');
expect(config.isInFallbackMode()).toBe(false);
expect(mockCoreEvents.emitModelChanged).toHaveBeenCalledWith('auto');
});
});
});

View File

@@ -769,12 +769,11 @@ export class Config {
}
setModel(newModel: string): void {
this.setFallbackMode(false);
if (this.model !== newModel) {
if (this.model !== newModel || this.inFallbackMode) {
this.model = newModel;
coreEvents.emitModelChanged(newModel);
}
this.setFallbackMode(false);
}
isInFallbackMode(): boolean {