[Bug] Local directory permissions get copied into global settings.json on config update

Resolved 💬 4 comments Opened Apr 11, 2026 by jshute96 Closed May 22, 2026

Bug Description
Claude copies permissions from local-dir settings.local.json into global settings.json unprompted when updating /config.

How to reproduce

  1. Start: Subdir settings.local.json has some items on permissions->allow and a defaultMode. Homedir settings.json has a smaller list.
  2. In CLI, open /config, change default mode setting, and press enter to save.
  3. The local permissions get merged into the global permission list. It seems to merge the entire effective permissions block into permanent global settings.

Environment Info

  • Platform: linux
  • Terminal: vte-based
  • Version: 2.1.101
  • Feedback ID: 55c433eb-79d1-4757-9ceb-be483d27c113

Errors

[{"error":"Error: NON-FATAL: Lock acquisition failed for /home/jshute/.local/share/claude/versions/2.1.101 (expected in multi-process scenarios)\n    at qQ$ (/$bunfs/root/src/entrypoints/cli.js:2838:2153)\n    at Ee8 (/$bunfs/root/src/entrypoints/cli.js:2838:1233)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-11T15:07:22.317Z"},{"error":"Error: Plugin MCP server error - mcp-config-invalid: MCP server github invalid: Missing environment variables: GITHUB_PERSONAL_ACCESS_TOKEN\n    at dDH (/$bunfs/root/src/entrypoints/cli.js:1558:33935)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-11T15:07:22.356Z"},{"error":"Error: Plugin MCP server error - mcp-config-invalid: MCP server github invalid: Missing environment variables: GITHUB_PERSONAL_ACCESS_TOKEN\n    at dDH (/$bunfs/root/src/entrypoints/cli.js:1558:33935)\n    at async W (/$bunfs/root/src/entrypoints/cli.js:6005:10596)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-11T15:07:23.026Z"},{"error":"Error: Plugin MCP server error - mcp-config-invalid: MCP server github invalid: Missing environment variables: GITHUB_PERSONAL_ACCESS_TOKEN\n    at dDH (/$bunfs/root/src/entrypoints/cli.js:1558:33935)\n    at async v (/$bunfs/root/src/entrypoints/cli.js:6005:11366)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-04-11T15:07:23.028Z"}]

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗