From d0d3639e16725f898001f792cab2528d126ad4a1 Mon Sep 17 00:00:00 2001 From: Adib234 <30782825+Adib234@users.noreply.github.com> Date: Mon, 30 Mar 2026 23:33:55 -0400 Subject: [PATCH] feat(plan): support `Plan` mode in untrusted folders (#17586) --- packages/core/src/config/config.test.ts | 6 ++++++ packages/core/src/config/config.ts | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index 59133f6997..f6eab55d0c 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -1682,6 +1682,12 @@ describe('setApprovalMode with folder trust', () => { expect(() => config.setApprovalMode(ApprovalMode.DEFAULT)).not.toThrow(); }); + it('should NOT throw an error when setting PLAN mode in an untrusted folder', () => { + const config = new Config(baseParams); + vi.spyOn(config, 'isTrustedFolder').mockReturnValue(false); + expect(() => config.setApprovalMode(ApprovalMode.PLAN)).not.toThrow(); + }); + it('should NOT throw an error when setting any mode in a trusted folder', () => { const config = new Config(baseParams); vi.spyOn(config, 'isTrustedFolder').mockReturnValue(true); diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index f3e02510ed..012d0e6b4e 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -2517,7 +2517,11 @@ export class Config implements McpContext, AgentLoopContext { } setApprovalMode(mode: ApprovalMode): void { - if (!this.isTrustedFolder() && mode !== ApprovalMode.DEFAULT) { + if ( + !this.isTrustedFolder() && + mode !== ApprovalMode.DEFAULT && + mode !== ApprovalMode.PLAN + ) { throw new Error( 'Cannot enable privileged approval modes in an untrusted folder.', );