-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Project
cortex
Description
SkillPermissionChecker does not honor parent session inheritance when loading
skills. can_load_skill() only checks the local PermissionManager and returns
Ok(false) when the local response is Ask, even if the parent manager has an
explicit Allow for the same skill. This breaks child session inheritance and
prevents trusted skills from loading in derived sessions.
Error Message
No explicit error message. The call returns Ok(false) and logs "Skill loading
requires confirmation".
Debug Logs
debug!(skill = ..., "Skill loading requires confirmation")
System Information
Bounty Version: 0.1.0
OS: Ubuntu 24.04 LTS
CPU: AMD EPYC-Genoa Processor (8 cores)
RAM: 15 GBScreenshots
No response
Steps to Reproduce
- Create a parent
PermissionManagerand grant a skill permission for
trusted-skillwithPermissionScope::Session. - Create a child
PermissionManagerwith default config. - Build a
SkillPermissionCheckerusing
SkillPermissionChecker::with_parent(child, parent). - Call
can_load_skill("trusted-skill"). - Observe it returns
Ok(false)even though the parent explicitly allows the
skill.
Expected Behavior
When inherit_parent_permissions is enabled, a parent Allow should permit
skill loading in the child session.
Actual Behavior
can_load_skill() ignores the parent manager entirely and denies/asks the
skill, so the skill fails to load in the child session.
Additional Context
can_skill_use_tool() has parent inheritance logic, but can_load_skill() does
not, so inheritance works for tools but not for loading the skill itself.