From 89b72e4442e4a4ce9379d95c96bd5ff29bb7ac6b Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Mon, 20 Oct 2025 15:15:14 -0500 Subject: [PATCH] fix: bash tool permission merges (#3302) --- packages/opencode/src/agent/agent.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 252c0bd6b..26a5a472a 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -176,6 +176,16 @@ export namespace Agent { } function mergeAgentPermissions(basePermission: any, overridePermission: any): Agent.Info["permission"] { + if (typeof basePermission.bash === "string") { + basePermission.bash = { + "*": basePermission.bash, + } + } + if (typeof overridePermission.bash === "string") { + overridePermission.bash = { + "*": overridePermission.bash, + } + } const merged = mergeDeep(basePermission ?? {}, overridePermission ?? {}) as any let mergedBash if (merged.bash) { @@ -183,12 +193,10 @@ function mergeAgentPermissions(basePermission: any, overridePermission: any): Ag mergedBash = { "*": merged.bash, } - } - // if granular permissions are provided, default to "ask" - if (typeof merged.bash === "object") { + } else if (typeof merged.bash === "object") { mergedBash = mergeDeep( { - "*": "ask", + "*": "allow", }, merged.bash, )