Subagents don't inherit session-level permissions
Bug
When I select **"Yes, and don't ask again for: git add:\"* in the permission prompt, the preference is not inherited by subagents spawned in the same session. Each subagent re-prompts for the same permission.
Expected behavior
Permission inheritance should follow this chain:
- Session start/resume: read global permissions → merge project permissions (allow/deny) → merge session permissions (allow/deny)
- Subagent start: same chain — global → project → session
- "Don't ask again" writes: persist to session level. May optionally also store at project or global level if appropriate.
This means a permission granted once in a session should apply to all subagents within that session without re-prompting.
Actual behavior
- User selects option 2 ("Yes, and don't ask again for: git add:\*")
- The rule appears in
.claude/settings.local.jsonunderpermissions.allow - A subagent dispatched via the Agent tool prompts again for the same
git addcommand - This happens repeatedly — every subagent re-prompts
Reproduction
- Start a Claude Code session
- Run a command that triggers a permission prompt (e.g.,
git add) - Select "Yes, and don't ask again"
- Dispatch a subagent (via Agent tool) that runs the same command
- Observe: the subagent prompts again for the same permission
Impact
For workflows that dispatch multiple subagents (e.g., subagent-driven development with implementer + reviewer agents), the user gets prompted 2-3x per task for permissions they've already permanently approved. This is especially disruptive when the user is AFK and has given explicit permission to proceed autonomously.
Environment
- Claude Code (CLI)
- macOS
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗