{"version":"2.1.234","anchor":"next-generation-storage-is-pinned-to-one-decision-per-proces","canonical_anchor":"next-generation-storage-is-pinned-to-one-decision-per-proces","heading":"Next-generation storage is pinned to one decision per process","tier":"soon","area":"Storage Backend","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/next-generation-storage-is-pinned-to-one-decision-per-proces","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Next-generation storage is pinned to one decision per process\n\nThe new storage layer's on\/off decision is now made once per process, and the backend is still an empty stub.\n\n**What**\n\nThe gate that decides whether Claude Code uses its new storage layer, an internal flag named `tengu_hover_rest`, was previously consulted at each use. It is now read once and pinned for the lifetime of the process, and roughly two dozen storage paths were re-guarded so they check that pin rather than simply acting on a backend handle being passed in. The backend itself is an empty stub in this build, so none of these paths can actually be taken.\n\n**Details**\n\n- The gate defaults to off, so unmodified installs keep the existing file-based storage.\n- A non-boolean value logs \"tengu_hover_rest served a ${typeof e}, not a boolean; treating it as off\" and is treated as off.\n- A later read that disagrees with the pinned answer logs \"tengu_hover_rest read ${String(e)} at a second pin in this process; keeping the first decision\" and the first answer stands.\n- Re-guarded call sites include the auth cache read and delete, plugin marketplace, registry and manifest caches, skills cache, skill and SKILL.md reads, skill writes, the auto-updater lock, transcript cleanup and sidecars, session order, group files and session pins, memory and context loading, agent dispatch writes and mailbox files, task-list writes, quota state, logout, and the message queue swap.\n- A stray backend handle can no longer half-activate the new path, and a mid-process flag flip can no longer split one session between the old file paths and the new ones.\n- The factory that would construct the new backend returns nothing unconditionally in this build, so no new-format storage is created and no session can run on it regardless of the gate.\n\n**Evidence**\n\n`tengu_hover_rest read ${String(e)} at a second pin in this process; keeping the first decision`, `tengu_hover_rest`, `keeping the first decision`, `at a second pin in this process; keeping the first decision`, `read ${String(e)} at a second pin in this process; keeping the first decision`\n\n- Flag `tengu_hover_rest`: Off in both readings (read for one account on one subscription tier against v2.1.234; this account: off, anonymous baseline: off, compiled default: off)\n- Area: Storage Backend\n- Names: `tengu_hover_rest`\n- Tier: Nothing to try yet\n- Useful: 1\/5\n- Signal: 3\/5\n- Present in the build but not switched on"}