diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts index dbd9a20ec..25b9ee737 100644 --- a/packages/cli/src/config/settings.ts +++ b/packages/cli/src/config/settings.ts @@ -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 { + const root: Record = {}; + setNestedPropertySafe(root, key, value); + return root; +} + +export function saveSettings( + settingsFile: SettingsFile, + updates: Record = 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, - ); + updateSettingsFilePreservingFormat(settingsFile.path, updates); } catch (error) { debugLogger.error('Error saving user settings file.'); debugLogger.error(error instanceof Error ? error.message : String(error));