[BUG] `disableAutoMode` added mid-session removes auto from the mode rotation but does not eject a session already running in auto mode
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When disableAutoMode is added mid-session, the setting is picked up — auto mode disappears from the shift+tab rotation — but the session itself is left untouched: it remains in auto mode and continues auto-approving actions, until the user happens to cycle modes manually (or until a later, unspecified time which this report does not cover).
What Should Happen?
When disableAutoMode appears in settings, a session currently in auto mode should be ejected from it (fall back to default mode, or at minimum start prompting), consistent with the settings docs: _"Claude Code watches your settings files and reloads them when they change, so edits to most keys apply to the running session without a restart"_ (only model and outputStyle are documented as restart-only).
Error Messages/Logs
Steps to Reproduce
Uses two terminal tabs: tab A runs Claude Code, tab B edits settings with vim.
- Back up your settings first:
mv ~/.claude/settings.json ~/.claude/settings.json.bak - Create a minimal:
echo '{ "permissions": { "defaultMode": "default" } }' > ~/.claude/settings.json - Tab A: start
claude, then press shift+tab until the footer shows "auto mode on". - Tab B:
vim ~/.claude/settings.jsonand add the kill switch to the permissions block:{ "permissions": { "defaultMode": "default", "disableAutoMode": "disable" } } - Tab A: ask Claude to do something that default mode would prompt for (e.g. edit a file outside the working directory — editing
~/.claude/settings.jsonitself works ask Claude to add a dummy variable to the file). → The action is auto-approved with no prompt. The footer still shows auto mode on. - Tab A: press shift+tab to cycle modes. → The auto mode is gone from the rotation — proving the watcher hot-reloaded the setting — yet until that manual cycle, the session sat in auto mode and kept auto-approving (step 5).
- Clean up:
mv ~/.claude/settings.json.bak ~/.claude/settings.json
Claude Model
Other
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.235 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_