diff --git a/packages/cli/src/config/settings.test.ts b/packages/cli/src/config/settings.test.ts index ac8882922c..b9f605f263 100644 --- a/packages/cli/src/config/settings.test.ts +++ b/packages/cli/src/config/settings.test.ts @@ -428,8 +428,11 @@ describe('Settings Loading and Merging', () => { '/workspace/dir', ]); - // Verify excludeTools are overwritten by workspace - expect(settings.merged.tools?.exclude).toEqual(['workspace-tool']); + // Verify excludeTools are concatenated and de-duped + expect(settings.merged.tools?.exclude).toEqual([ + 'user-tool', + 'workspace-tool', + ]); // Verify excludedProjectEnvVars are concatenated and de-duped expect(settings.merged.advanced?.excludedEnvVars).toEqual( diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index 4d2258b213..be8996fa61 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -662,6 +662,7 @@ const SETTINGS_SCHEMA = { default: undefined as string[] | undefined, description: 'Tool names to exclude from discovery.', showInDialog: false, + mergeStrategy: MergeStrategy.UNION, }, discoveryCommand: { type: 'string',