Opt-in to persist model from /model (#15820)

This commit is contained in:
Sehoon Shon
2026-01-05 15:31:13 -05:00
committed by GitHub
parent b13c6b57ae
commit e5d183031a
4 changed files with 49 additions and 16 deletions

View File

@@ -32,6 +32,7 @@ interface ModelDialogProps {
export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
const config = useContext(ConfigContext);
const [view, setView] = useState<'main' | 'manual'>('main');
const [persistMode, setPersistMode] = useState(false);
// Determine the Preferred Model (read once when the dialog opens).
const preferredModel = config?.getModel() || DEFAULT_GEMINI_MODEL_AUTO;
@@ -62,6 +63,9 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
onClose();
}
}
if (key.name === 'tab') {
setPersistMode((prev) => !prev);
}
},
{ isActive: true },
);
@@ -157,13 +161,13 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
}
if (config) {
config.setModel(model);
config.setModel(model, persistMode ? false : true);
const event = new ModelSlashCommandEvent(model);
logModelSlashCommand(config, event);
}
onClose();
},
[config, onClose],
[config, onClose, persistMode],
);
let header;
@@ -213,9 +217,15 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element {
/>
</Box>
<Box marginTop={1} flexDirection="column">
<Text color={theme.text.secondary}>
Applies to this session and future Gemini CLI sessions.
</Text>
<Box>
<Text color={theme.text.primary}>
Remember model for future sessions:{' '}
</Text>
<Text color={theme.text.secondary}>
{persistMode ? 'true' : 'false'}
</Text>
</Box>
<Text color={theme.text.secondary}>(Press Tab to toggle)</Text>
</Box>
<Box marginTop={1} flexDirection="column">
<Text color={theme.text.secondary}>