Duplicate permissions continuously appended to settings.local.json
Resolved 💬 2 comments Opened Sep 2, 2025 by randomparity Closed Sep 2, 2025
Bug Description
Claude Code repeatedly appends duplicate Read permissions to .claude/settings.local.json even when broader permissions that already cover those paths exist.
Steps to Reproduce
- Have
Read(/home/dave/src/**)in settings.local.json (covers all subdirectories) - Claude Code reads files from subdirectories like
/home/dave/src/epic-planner/ - User approves the read
- Claude Code appends
Read(/home/dave/src/epic-planner/**)to the allow list - This happens repeatedly, creating massive duplication
Expected Behavior
- Claude Code should recognize that
Read(/home/dave/src/**)already covers all subdirectories - No duplicate or redundant permissions should be added
- The system should check if a new permission is already covered by existing broader permissions
Actual Behavior
- Duplicate permissions are continuously appended
- The settings.local.json file grows with redundant entries
- Users have to repeatedly approve the same directories
- Manual cleanup is required multiple times
Example of Duplication
{
"permissions": {
"allow": [
"Read(/home/dave/src/**)", // This should cover everything below
"Read(/home/dave/**)", // This definitely covers everything below
// But these keep getting added anyway:
"Read(/home/dave/src/epic-planner/**)",
"Read(/home/dave/src/epic-planner/src/vidclean/**)",
"Read(/home/dave/src/epic-planner/src/vidclean/**)",
"Read(/home/dave/src/epic-planner/src/vidclean/**)",
// ... same path repeated 20+ times
]
}
}
Impact
- User frustration from repeated approval dialogs
- Degraded user experience
- Unnecessarily large settings files
- Manual intervention required repeatedly
Suggested Fix
Before appending a new permission, check if it's already covered by existing permissions using glob pattern matching or path hierarchy analysis.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗