Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v1.0.120 Home All releases olderv1.0.119 v1.0.122newer
Claude Code v1.0.120

Redesigned Filesystem Permissions Model

What: The filesystem permissions configuration has been completely redesigned with a simplified, asymmetric approach: reads use denylist-only mode, writes use allowlist-only mode.

Old model (v1.0.119):

{
  "permissions": {
    "filesystem": {
      "read": {
        "allowAllExcept": ["/etc/", "/private/"]
      },
      "write": {
        "denyAllExcept": ["/home/user/project/"]
      }
    }
  }
}

New model (v1.0.120):

{
  "permissions": {
    "filesystem": {
      "read": {
        "denyOnly": ["/etc/passwd", "/private/keys/"]
      },
      "write": {
        "allowOnly": ["/home/user/project/"],
        "includeDefaults": true,
        "denyWithinAllow": ["./.claude/"]
      }
    }
  }
}

Key differences:

  • Read permissions: Only denyOnly mode (assumes open by default, deny specific paths)
  • Write permissions: Only allowOnly mode (assumes closed by default, allow specific paths)
  • Lost feature: Can no longer do restrictive read permissions (denyAllExcept for reads is removed)
  • New feature: denyWithinAllow allows exceptions within allowed write paths
  • Breaking change: Existing v1.0.119 configurations are incompatible
Evidence

New schemas at lines 354053-354067 (ew9 and Aq9), old schemas removed from lines 354007-354030 (y10 and k10), new implementation at lines 374904-374938 (ob6() and tb6())

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v1.0.120 →