From f331e5d5b62ad90fad29495a0b8813f1538cf25f Mon Sep 17 00:00:00 2001 From: Billy Biggs Date: Sun, 31 Aug 2025 17:44:16 -0700 Subject: [PATCH] Merge general settings from different configuration sources (#7528) --- packages/cli/src/config/settings.test.ts | 9 +++++++++ packages/cli/src/config/settings.ts | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/packages/cli/src/config/settings.test.ts b/packages/cli/src/config/settings.test.ts index 3e8ea58abe..012f84fe9a 100644 --- a/packages/cli/src/config/settings.test.ts +++ b/packages/cli/src/config/settings.test.ts @@ -125,6 +125,7 @@ describe('Settings Loading and Merging', () => { expect(settings.user.settings).toEqual({}); expect(settings.workspace.settings).toEqual({}); expect(settings.merged).toEqual({ + general: {}, ui: { customThemes: {}, }, @@ -179,6 +180,7 @@ describe('Settings Loading and Merging', () => { expect(settings.workspace.settings).toEqual({}); expect(settings.merged).toEqual({ ...systemSettingsContent, + general: {}, ui: { ...systemSettingsContent.ui, customThemes: {}, @@ -234,6 +236,7 @@ describe('Settings Loading and Merging', () => { expect(settings.workspace.settings).toEqual({}); expect(settings.merged).toEqual({ ...userSettingsContent, + general: {}, ui: { ...userSettingsContent.ui, customThemes: {}, @@ -294,6 +297,7 @@ describe('Settings Loading and Merging', () => { fileName: 'WORKSPACE_CONTEXT.md', includeDirectories: [], }, + general: {}, ui: { customThemes: {}, }, @@ -351,6 +355,7 @@ describe('Settings Loading and Merging', () => { expect(settings.user.settings).toEqual(userSettingsContent); expect(settings.workspace.settings).toEqual(workspaceSettingsContent); expect(settings.merged).toEqual({ + general: {}, ui: { theme: 'dark', customThemes: {}, @@ -435,6 +440,7 @@ describe('Settings Loading and Merging', () => { expect(settings.user.settings).toEqual(userSettingsContent); expect(settings.workspace.settings).toEqual(workspaceSettingsContent); expect(settings.merged).toEqual({ + general: {}, ui: { theme: 'system-theme', customThemes: {}, @@ -695,6 +701,7 @@ describe('Settings Loading and Merging', () => { tools: { sandbox: false, }, + general: {}, ui: { customThemes: {}, theme: 'system-theme', @@ -1404,6 +1411,7 @@ describe('Settings Loading and Merging', () => { expect(settings.user.settings).toEqual({}); expect(settings.workspace.settings).toEqual({}); expect(settings.merged).toEqual({ + general: {}, ui: { customThemes: {}, }, @@ -1831,6 +1839,7 @@ describe('Settings Loading and Merging', () => { expect(settings.system.settings).toEqual(systemSettingsContent); expect(settings.merged).toEqual({ ...systemSettingsContent, + general: {}, ui: { ...systemSettingsContent.ui, customThemes: {}, diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts index 572c86111d..205cfc6c0a 100644 --- a/packages/cli/src/config/settings.ts +++ b/packages/cli/src/config/settings.ts @@ -303,6 +303,12 @@ function mergeSettings( ...user, ...safeWorkspaceWithoutFolderTrust, ...system, + general: { + ...(systemDefaults.general || {}), + ...(user.general || {}), + ...(safeWorkspaceWithoutFolderTrust.general || {}), + ...(system.general || {}), + }, ui: { ...(systemDefaults.ui || {}), ...(user.ui || {}),