fix(session): merge per-call tool rules into session permission (#30529)

Co-authored-by: Simon Klee <hello@simonklee.dk>
This commit is contained in:
Tommy D. Rossi
2026-06-08 09:32:10 +02:00
committed by GitHub
parent d46af9cf1e
commit 0050134d9e
2 changed files with 32 additions and 2 deletions
+5 -2
View File
@@ -1198,8 +1198,11 @@ export const layer = Layer.effect(
permissions.push({ permission: t, action: enabled ? "allow" : "deny", pattern: "*" })
}
if (permissions.length > 0) {
session.permission = permissions
yield* sessions.setPermission({ sessionID: session.id, permission: permissions })
// Merge so per-call tool rules don't clobber inherited session rules
// (e.g. external_directory allows from the parent session).
const merged = Permission.merge(session.permission ?? [], permissions)
session.permission = merged
yield* sessions.setPermission({ sessionID: session.id, permission: merged })
}
if (input.noReply === true) return message