Permission allowlist changes don't take effect mid-session — breaks scheduled/autonomous tasks
Problem
When a Claude Code session (especially a scheduled task running autonomously) hits a permission prompt for a tool, and the user/agent edits ~/.claude/settings.json to add the tool to permissions.allow, the new allowlist is not picked up by the running session. The session continues to prompt for the same tool until restarted.
This breaks the obvious recovery path: "fix the permissions and keep working."
Why this matters
The user case where this hurts most is scheduled tasks. A scheduled task runs without the user at the keyboard. If it hits a permission prompt:
- The task halts.
- Even if the user (or the agent itself) updates
settings.jsonto allow that tool, the running session can't use it. - The user has to fully restart Claude Code for the rule to take effect.
- By that point the scheduled-task context is gone.
The scheduled task therefore can't ever silently recover from a missing permission. Adding the rule mid-session does nothing.
Repro
- Have a
scheduled-tasksMCP task that uses, e.g.,mcp__yahoo-finance__get_historical_stock_pricesand is not in the global allowlist. - Let the task fire while you're away.
- Each tool call prompts. Approve them in-session.
- Add the tool to
permissions.allowin~/.claude/settings.json. - Subsequent calls in the same session still prompt.
Expected
settings.json should be re-read (or watched) so allowlist additions take effect immediately for the running session.
Workaround
Restart Claude Code after editing settings — not viable for autonomous/scheduled runs.
Environment
- Platform: Linux (Manjaro, kernel 6.18.12-1)
- Claude Code via CLI
- Scheduled tasks invoked via
mcp__scheduled-tasksMCP
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗