{"version":"2.1.319","anchor":"message-rewrite-path-copies-api-system-message-before-mutati","canonical_anchor":"message-rewrite-path-copies-api-system-message-before-mutati","heading":"Rewriting a system message no longer alters the original in the conversation","tier":"internal","area":"System Prompt","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.319\/e\/message-rewrite-path-copies-api-system-message-before-mutati","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.319","markdown":"### Rewriting a system message no longer alters the original in the conversation\n\nClaude Code now edits a copy of a system message when it rewrites one, so the original earlier in the conversation stays unchanged\n\n**What**\n\nClaude Code sometimes rewrites a system message (a message of instructions it sends to the model alongside your conversation). It now makes a copy and edits the copy. Before, it edited the original message itself, which also changed that message wherever else it appeared in the conversation.\n\n**Why**\n\nChanging an earlier message in place can make the conversation sent to the model differ from one request to the next. That can stop the prompt cache from working well. The prompt cache is a store that lets the model reuse an unchanged start of the conversation instead of reading it again. Keeping the original untouched avoids that.\n\n- Area: System Prompt\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5\n- Scope: individual\n- Heads-up: no"}