diff --git a/packages/opencode/src/permission/next.ts b/packages/opencode/src/permission/next.ts index 6d18caefb3..3f8e7c648a 100644 --- a/packages/opencode/src/permission/next.ts +++ b/packages/opencode/src/permission/next.ts @@ -232,9 +232,9 @@ export namespace PermissionNext { const result = new Set() for (const tool of tools) { const permission = EDIT_TOOLS.includes(tool) ? "edit" : tool - if (evaluate(permission, "*", ruleset).action === "deny") { - result.add(tool) - } + const rule = ruleset.findLast((r) => Wildcard.match(permission, r.pattern)) + if (!rule) continue + if (rule.pattern === "*" && rule.action === "deny") result.add(tool) } return result }