[BUG] "Always allow access to <cwd>/ from this project" does not persist permissions
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?
Selecting "Yes, and always allow access to <cwd>/ from this project" at a Bash permission prompt does not write the granted permission to .claude/settings.local.json. After selecting the option, the file is unchanged — no entry is added to permissions.allow, and no additionalDirectories key is created.
I also checked the user-scope ~/.claude/settings.json and the per-project directory under ~/.claude/projects/; the granted permission does not appear in either. Within the same session, subsequent equivalent commands are not re-prompted, so the grant is held somewhere in the running process — but it is not written to any settings file I could find.
The option label says "always allow ... from this project", which implies the permission is persisted to the project's settings file. No such write occurs.
Closed issue #7472 reported the same symptom. A comment there states the "always allow" option writes to an additionalDirectories setting. In this case that key is not created either.
What Should Happen?
Selecting "always allow ... from this project" should persist the granted permission to .claude/settings.local.json (e.g., an entry under permissions.allow, or an additionalDirectories entry as described in #7472), so the grant is visible in the settings file and survives a restart.
If the option is intentionally session-scoped, the label should say so (e.g., "Yes, and remember for this session") rather than "always allow", to avoid implying a persistence that does not happen.
Error Messages/Logs
Steps to Reproduce
- In a project that contains a minimal
.claude/settings.local.json:
``json``
{ "permissions": { "allow": ["Bash(git log *)"] } }
- From the project root, ask Claude to run a Bash command that triggers a new permission prompt, e.g.:
````
mv foo.md subdir/
- The prompt offers:
```
Do you want to proceed?
❯ 1. Yes
- Yes, and always allow access to <project>/ from this project
- No
```
Select option 2.
- Inspect
.claude/settings.local.json— it is unchanged.
Expected: the permission is written to .claude/settings.local.json. Actual: the file is unchanged.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.179 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
IntelliJ IDEA terminal
Additional Information
Related: closed issue #7472 — same symptom. A comment there says the "always allow" option writes to an additionalDirectories setting; that key was not created in this case.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗