{"version":"2.1.280","anchor":"permission-checks-now-handle-unresolved-symlink-chains-expli","canonical_anchor":"permission-checks-now-handle-unresolved-symlink-chains-expli","heading":"Permission checks now handle unresolved symlink chains and re-check paths for Edit\/NotebookEdit","tier":"notice","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280\/e\/permission-checks-now-handle-unresolved-symlink-chains-expli","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280","markdown":"### Permission checks now handle unresolved symlink chains and re-check paths for Edit\/NotebookEdit\n\nFile permission checks now explicitly deny paths with unresolved symlink chains and track path 'spellings' for stashing and rechecking.\n\n**What**\n\n- The core read\/write permission-decision function now takes a richer path-resolution object with a `spellings` set and an `unresolved` flag; when a path's symlink chain can't be resolved, it now explicitly denies with a dedicated reason instead of silently falling through, and still honors `blockReadsOutsideWorkingDirectories` and restricted-mode circuit breakers.\n\n- The permission stash used for later prompt dedup\/matching now stores the path's `spellings` set instead of the whole path-resolution object.\n\n- `checkPermissions` for the Edit and NotebookEdit tools no longer returns the base permission decision directly; it now only short-circuits on an explicit deny, and otherwise runs an extra check against the stashed path\/spellings that can override an allow\/ask decision.\n\n**Why**\n\nThis closes a gap where a path whose symlink chain couldn't be resolved could otherwise be treated as safe, and makes sure Edit\/NotebookEdit re-check the resolved path before allowing an operation.\n\n- Area: Permissions\n- Names: `blockReadsOutsideWorkingDirectories`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5"}