fix(session): merge per-call tool rules into session permission (#30529)
Co-authored-by: Simon Klee <hello@simonklee.dk>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user