settings.local.json permissions silently ignored after directory rename; trust dialog never re-prompts when a parent dir is trusted
Open 💬 0 comments Opened Jul 6, 2026 by chandlerh
Environment
- Claude Code version: 2.1.193
- Platform: macOS (Darwin 25.5.0), zsh
Summary
After renaming a project directory, permissions.allow entries in the workspace's .claude/settings.local.json are silently ignored with:
Ignoring 11 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/chandler/work/pursuit"].hasTrustDialogAccepted: true in /Users/chandler/.claude.json.
The suggested remedy ("run Claude Code interactively here once and accept the trust dialog") doesn't work: because a parent directory (/Users/chandler/work) already has hasTrustDialogAccepted: true, interactive sessions in the subdirectory never show the trust dialog again — so the flag stays false indefinitely and the permissions stay ignored, while everything else about the session works normally.
Repro
- Trust a workspace, e.g.
/Users/chandler/work/huntplanner(and also have the parent/Users/chandler/worktrusted). - Add
permissions.allowentries to<workspace>/.claude/settings.local.json. - Rename the directory:
mv huntplanner pursuit. A newprojects["/Users/chandler/work/pursuit"]entry is created withhasTrustDialogAccepted: false; the old path keepstrue. - Run
claudein the renamed directory.
Expected
Either:
- the trust dialog is shown again so the flag can be accepted, or
- trust of the parent directory extends to honoring the subdirectory's
settings.local.json(it already suppresses the dialog, so the two behaviors are inconsistent), or - some path for trust to migrate/re-prompt after a rename.
Actual
- Warning on every launch; the 11 allow entries are ignored, so permission prompts return for previously allowed commands.
- No interactive way to re-accept trust — the dialog never appears because the parent is trusted.
- Only fix is hand-editing
~/.claude.jsonas the message suggests.
Notes
Confirmed state in ~/.claude.json:
"projects": {
"/Users/chandler/work": { "hasTrustDialogAccepted": true },
"/Users/chandler/work/huntplanner": { "hasTrustDialogAccepted": true }, // old path
"/Users/chandler/work/pursuit": { "hasTrustDialogAccepted": false } // renamed path
}