{"version":"2.1.224","anchor":"memory-writes-will-require-the-version-token-from-your-last-","canonical_anchor":"memory-writes-will-require-the-version-token-from-your-last-","heading":"Memory writes will require the version token from your last read","tier":"soon","area":"Memory","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.224\/e\/memory-writes-will-require-the-version-token-from-your-last-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.224","markdown":"### Memory writes will require the version token from your last read\n\nMemory writes will need the version token from your last read, forcing a read before overwriting.\n\n**What**\n\nA build-gated change to the memory tools makes every write carry `if_version`: either the 12-character version token returned by the most recent read or write of that path, or the literal word `new` for a document that does not exist yet. The model therefore has to read a document before overwriting it. Reads now return the token; listing does not. Off in this build unless the `tengu_haze_glass` gate is on, which defaults to false.\n\n**Details**\n\n- A stale token, or `new` against a path that already exists, rejects the write and returns the current content (when it fits within the read size cap) plus its current version, so the model can merge and retry.\n- Rejections are recorded as `tengu_memory_tools_version_conflict` with the reason.\n\n**Evidence**\n\n`Every ${lS} needs if_version. Pass the literal word new for a document that does not yet exist.`\n\n- Flag `tengu_haze_glass`: Off in both readings (read for one account on one subscription tier against v2.1.224; this account: off, anonymous baseline: off, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Memory\n- Tier: Nothing to try yet\n- Useful: 3\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}