Concurrent subagent dispatch: `additionalDirectories` glob doesn't propagate from parent to child
Summary
When a parent agent dispatches a subagent (via the Agent / Task tool), the child subagent's permission resolver does not consistently honor glob-based entries in the parent's additionalDirectories. The child gets denied (or re-prompted) on paths that the parent has explicit permission to read via its own additionalDirectories globs.
Setup
- Claude Code CLI running with
.claude/settings.json+.claude/settings.local.json - Parent session has
additionalDirectories: ["/repo/worktrees/*/.claude/features", "/repo/worktrees/*/.claude/shared"](glob entries) - Parent successfully reads files matching those globs
- Parent dispatches a child subagent with a prompt that asks the child to read a file matching the same glob
Expected
Child can read the file without prompting — it's within the parent's declared additionalDirectories surface.
Actual
Child is denied or prompted on first read, as if the glob entries weren't honored.
Reproducer
Minimal reproducer harness: https://github.com/Regevba/FitTracker2/tree/main/docs/superpowers/plans/f6-f9-reproducer (see child-agent-task-template.md § F6 and classification-template.md § F6).
Why we think it's not a config issue
We added the worktree glob entries to settings.local.json in wave-2 of a stress test. The wave still failed with per-child permission denials, ruling out the "missing declaration" hypothesis. See the "Framework Bug Saga" section of our post-stress-test case study for the full timeline.
Related
Possibly related to F7 (Edit/Write re-prompt) and F8 (parallel dispatch state drift) — filing separate issues in case the root causes differ; feel free to consolidate at triage if they're the same bug.
Workaround
Serial dispatch works fine. We've pivoted our remediation program (183/185 findings closed across 30+ PRs) to serial execution. Parallel dispatch has been blocked since 2026-04-18.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗