{"version":"2.1.314","anchor":"attachment-filename-and-upload-hardening-plus-kept-copy-r","canonical_anchor":"attachment-filename-and-upload-hardening-plus-kept-copy-r","heading":"Attached files get stricter name checks and no longer overwrite silently","tier":"notice","area":"Attachments","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.314\/e\/attachment-filename-and-upload-hardening-plus-kept-copy-r","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.314","markdown":"### Attached files get stricter name checks and no longer overwrite silently\n\nAttachment names face a second check, and Claude is told when a file was not saved or when an existing file was set aside\n\n**What**\n\nWhen a file is attached and saved into your project, its name now goes through a second check that can reject it, on top of the existing check against the project folder. A stored-login refusal now ends in an error.\n\nWhen saving an attachment would replace a file already at that path, the old file is now moved aside and Claude Code records where it was kept. Claude sees one of these notes:\n\n- `[attachment not saved...]` when the file was not written\n\n- `[saved the attached file to ...]` when it was saved\n\nHow these notes are handled depends on a mode whose only values are `on` and `tell`.\n\n**Why**\n\nClaude now learns when an attached file did not land where expected or did not replace what was already there, so it is less likely to work from the wrong copy.\n\n- Area: Attachments\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 1\/5\n- Scope: individual\n- Heads-up: no"}