fix(task): propagate parent session permissions to sub-agents#24293
fix(task): propagate parent session permissions to sub-agents#24293herjarsa wants to merge 1 commit intoanomalyco:devfrom
Conversation
When spawning a sub-agent via the task tool, the child session was created with a blank permission array, losing any Plan mode restrictions (e.g. edit: deny) set on the parent. This allowed sub-agents to bypass the parent's read-only guardrails. The child session now merges the parent session's permission ruleset with its own (canTodo, canTask, primary_tools) to ensure inherited restrictions take precedence. Fixes anomalyco#6527
|
The following comment was made by an LLM, it may be inaccurate: Based on my search, here are potential related PRs: Highly Related:
Related Context:
PR #23290 in particular seems very similar to the current PR #24293, both addressing preservation of parent permissions in task child sessions. You may want to verify if this is a duplicate or if they address different aspects of the same issue. |
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
Issue for this PR
Closes #6527
Type of change
What does this PR do?
When spawning a sub-agent via the task tool, the child session was created with a blank permission array, losing any Plan mode restrictions (e.g.
edit: deny) set on the parent. This allowed sub-agents to bypass the parent's read-only guardrails.The child session now inherits the parent session's permission ruleset via
Permission.merge()before applying its own sub-agent defaults. This ensures that restrictions like Plan mode (edit: deny) are preserved and cannot be bypassed by delegating to a sub-agent.How did you verify your code works?
bun typecheckinpackages/opencode— no type errors in modified filestest/tool/task.test.tsthat:edit: denyTaskTooledit: denytodowrite: deny,task: deny)Screenshots / recordings
N/A — not a UI change
Checklist