fix(cli): preserve runtime-added models when saving settings

This commit is contained in:
Sakuranda 2026-03-18 14:29:01 +08:00
parent d1b761adf2
commit 7bb6cfd28c

View file

@ -307,7 +307,7 @@ export class LoadedSettings {
setNestedPropertySafe(settingsFile.settings, key, value);
setNestedPropertySafe(settingsFile.originalSettings, key, value);
this._merged = this.computeMergedSettings();
saveSettings(settingsFile);
saveSettings(settingsFile, createSettingsUpdate(key, value));
}
}
@ -703,7 +703,22 @@ export function loadSettings(
);
}
export function saveSettings(settingsFile: SettingsFile): void {
function createSettingsUpdate(
key: string,
value: unknown,
): Record<string, unknown> {
const root: Record<string, unknown> = {};
setNestedPropertySafe(root, key, value);
return root;
}
export function saveSettings(
settingsFile: SettingsFile,
updates: Record<string, unknown> = settingsFile.originalSettings as Record<
string,
unknown
>,
): void {
try {
// Ensure the directory exists
const dirPath = path.dirname(settingsFile.path);
@ -712,10 +727,7 @@ export function saveSettings(settingsFile: SettingsFile): void {
}
// Use the format-preserving update function
updateSettingsFilePreservingFormat(
settingsFile.path,
settingsFile.originalSettings as Record<string, unknown>,
);
updateSettingsFilePreservingFormat(settingsFile.path, updates);
} catch (error) {
debugLogger.error('Error saving user settings file.');
debugLogger.error(error instanceof Error ? error.message : String(error));