The new storage layer's on/off decision is now made once per process, and the backend is still an empty stub.
tengu_hover_rest is pinned once per process; the backend it selects is an empty stub, so no path is taken.
tengu_hover_rest Off in both readingsThe flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.
This account: off · anonymous baseline: off · compiled default in v2.1.234: on
Read once, for one account on one subscription tier, against v2.1.234. It isn't a statement about your account. What a flag value here can and cannot tell you
What's wrong with this entry?
The 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.
- The gate defaults to off, so unmodified installs keep the existing file-based storage.
- A non-boolean value logs "tengu_hover_rest served a ${typeof e}, not a boolean; treating it as off" and is treated as off.
- 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.
- 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.
- 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.
- 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.
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
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.238
CLAUDE_CODE_HOVER_RESTgives a local override for the new credential and settings storageBoth mention hover rest
-
v2.1.238
The v5 storage choice reads the environment variable first
Both mention hover rest
-
v2.1.238
Plaintext credential store gained an in-process cache
Both mention hover rest