A new storage layer is plumbed everywhere but builds nothing, so files are still read directly.
An optional key/value storage handle is threaded through most of the product; its factory returns nothing even when gated on.
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.227: on
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.
Read once, for one account on one subscription tier, against v2.1.227. It isn't a statement about your account. What a flag value here can and cannot tell you
What's wrong with this entry?
An optional storage handle, a namespaced key/value store used in place of direct file reads and writes, is now passed explicitly into settings loading, plugin and marketplace commands, MCP task restore, background and fleet jobs, teammate mailboxes, the LSP manager, transcript reads, migrations, the REPL and most dialogs. Nothing changes on this build: it is built only when the tengu_hover_rest flag is on (default off), and the factory returns nothing even then, so every call site falls back to the existing filesystem path.
- References to the handle grow from 37 to 693 across the bundle, replacing many module-level globals and ambient lookups.
- Keys look like
{ namespace: "jobsRoot", draftKey: ... }, with namespaces includingstate,daemon,mailbox,sidecarandfileHistory. - Code paths now branch on the handle, for example writing a job draft through the store rather than creating a directory and a file.
- The CLI builds the handle once at startup and wraps subcommand handlers so they receive it.
storageV5, pinStorageV5
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.223
Compare-and-swap retry helper for versioned storage keys
Both mention storage backend
-
v2.1.223
Daemon lock and auto-update lock gained storage-backend implementations
Both mention storage backend
-
v2.1.223
Deep-link registration and cleanup sentinels can be stored as state keys
Both mention storage backend