Edit/Write permission allow rules with path globs not auto-approving
Bug Description
Edit and Write permission allow rules with glob path patterns in settings.json and .claude/settings.local.json are not being honored. The user is still prompted for approval on every edit, despite matching rules being configured.
Repro Steps
- Add the following to
~/.claude/settings.jsonunderpermissions.allow:
``json``
"Edit(/Users/username/code/my-project/**)",
"Write(/Users/username/code/my-project/**)"
- Also add the same rules to the project's
.claude/settings.local.json:
``json``
{
"permissions": {
"allow": [
"Edit(/Users/username/code/my-project/**)",
"Write(/Users/username/code/my-project/**)"
]
}
}
- Ask Claude to edit a file at the project root (e.g.,
README.md) - Ask Claude to edit a file in a subdirectory (e.g.,
docs/notes/example.md)
Expected: Both edits auto-approve without prompting.
Actual: Both edits prompt for approval. The glob pattern is not being evaluated for Edit/Write permissions regardless of file depth.
Notes
- This is not a
.claude/sensitive-file issue — the files being edited are normal project files outside of.claude/. - Both
**(any depth) patterns fail to match for root-level files and subdirectory files alike. - The rules are present in both global and project-local settings — neither takes effect.
- Related issues: #31032 (same class of bug for
Read), #36304 (Edit glob, but.claude/path), #39834 (Bash glob matching)
Environment
- Claude Code CLI (macOS, Darwin 25.4.0)
- Model: claude-opus-4-6
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗