Subagent dispatch: mid-session UI-accepted permission grants don't propagate to child subagents
Summary
When the user accepts a permission prompt in the parent session (via the UI / --dangerously flag / etc.) and then the parent immediately dispatches a subagent, the child hits the same permission check and re-prompts as if the grant never happened.
Setup
- Parent session running
- User is prompted for permission
Xin the parent and accepts it - Without restarting the session, parent dispatches a child subagent that needs permission
X
Expected
Child inherits the just-granted permission.
Actual
Child re-prompts for permission X. The only consumer-side workaround is to restart the session so settings.json is re-read.
Reproducer
https://github.com/Regevba/FitTracker2/tree/main/docs/superpowers/plans/f6-f9-reproducer § F9
Analysis
"Restart the session is the only workaround" is the signature of this being a runtime bug, not a config issue. There appear to be two code paths for permissions:
- Persistent grants (read from
settings.jsonat session start) → propagated to children correctly - Session-state grants (accepted at runtime via UI/prompt) → NOT propagated to children
The fix is either: persist UI-accepted grants to settings.local.json in real time, OR include session-state grants in the child-dispatch payload.
Workaround
Declare every required permission in settings.json before dispatching children. Never rely on mid-session UI grants for a child's permission surface.
Related
Likely the same root cause as F8, just exposed by a different mutation-timing pattern.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗