{"version":"2.1.301","anchor":"file-readers-hard-link-refusal-can-be-switched-on-per-call","canonical_anchor":"eval-confinement-hard-link-check-can-be-triggered-by-an-opti","heading":"Refusing files with more than one hard link can now be switched on per file read","tier":"notice","area":"File Reading","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301\/e\/file-readers-hard-link-refusal-can-be-switched-on-per-call","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.301","markdown":"### Refusing files with more than one hard link can now be switched on per file read\n\nThe file reader's refusal of files with multiple hard links now also triggers via a refuseHardLinks option, not only CLAUDE_CODE_EVAL_CONFINED\n\n**Unclear.** It is not clear whether anything in Claude Code asks for this per-read refusal yet.\n\n**What**\n\nA hard link is a second name for the same file on disk, so one file can appear at two paths. Claude Code's file reader has a check that refuses such files with the message \"has more than one hard link\".\n\nThat check used to apply only when the `CLAUDE_CODE_EVAL_CONFINED` environment variable was set. It now also applies when the code reading a file passes an option with `refuseHardLinks` set to true.\n\n**Why**\n\nRefusing hard-linked files helps stop a file from being reached through an unexpected path. This protection can now be turned on for an individual file read, without setting the environment-wide `CLAUDE_CODE_EVAL_CONFINED` switch.\n\n- Area: File Reading\n- Names: `CLAUDE_CODE_EVAL_CONFINED`\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}