tengu_hover_rest
A Claude Code feature flag, read out of the shipped bundle. It has been in the build since v2.1.221, including the newest one read.
The new storage layer now touches nearly every part of the product but is never actually created.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.227.
In the changelogs
29Releases whose published page names tengu_hover_rest.
-
v2.1.304
Teammate mailboxes in diskless sessions now explain why nothing was read or written
When a diskless session has no storage for teammate messages, Claude Code now logs that nothing was read or written and lists the likely causes
gate cited by this entry
-
v2.1.301
New errors for sessions without a local disk
In sessions with no local disk, reading stored transcripts and writing teammate messages now fail clearly unless a remote store is available
gate cited by this entry
-
v2.1.248
An in-memory storage backend is bundled but off by default
A full in-memory storage backend ships, off unless you set an environment variable.
gate cited by this entry, found in this entry's text
-
v2.1.248
A memory-only config write mode exists, and nothing in this build turns it on
Config can save to memory only, but nothing in this build enables that mode.
gate cited by this entry, found in this entry's text
-
v2.1.248
Transcript store fence is wired but nothing in this build can trip it
A latch can make a session stop writing its transcript, but nothing can trip it here.
gate cited by this entry, found in this entry's text
-
v2.1.242
On-disk storage layer gains symlink and permission rules per data type
Where Claude Code stores your data gains per-type symlink and file-permission rules, off by default.
gate cited by this entry, found in this entry's text
-
v2.1.238
Plaintext credential store gained an in-process cache
Plaintext credential reads could come from memory instead of the file, but only under off-by-default storage.
gate cited by this entry, found in this entry's text
-
v2.1.238
A second plugin asset-cache cleaner exists, switched off in this build
An alternative plugin cache cleaner exists, but you still get the old file-timestamp scan.
gate cited by this entry, found in this entry's text
-
v2.1.238
CLAUDE_CODE_HOVER_RESTgives a local override for the new credential and settings storageYou can pin the new credential and settings storage backend yourself with one environment variable.
gate cited by this entry, found in this entry's text
-
v2.1.238
The v5 storage choice reads the environment variable first
An environment variable now takes priority over the server flag when picking the new storage backend.
gate cited by this entry, found in this entry's text
-
v2.1.236
Global config writes now pass the storage handle explicitly
Settings writes now name their storage, so config can follow whichever backend a session uses.
gate cited by this entry, found in this entry's text
-
v2.1.236
Cheaper storage listings and bounded settings watchers
Listing your sessions is cheaper now that per-key statistics are skipped.
gate cited by this entry, found in this entry's text
-
v2.1.236
Version 5 session storage is decided once per process
Whether the newer session storage is used is decided once at startup and cannot change mid-session.
gate cited by this entry, found in this entry's text
-
v2.1.235
Terminal recordings can be stored under storage v5 with a 'recording' namespace
Terminal (asciicast) recordings can now be listed and renamed through storage v5's 'recording' namespace instead of only the filesystem
gate cited by this entry
-
v2.1.235
The "storage v5" backend gains four more subsystems, none of which can run: the backend factory returns nothing
Four more subsystems route through the unfinished 'storage v5' backend, but it still can't run in this build
gate cited by this entry
-
v2.1.235
Command queue became an instance with a subscribable snapshot, and commands can be 'passive'
Command queue is now an instance with a subscribable snapshot, and commands can be marked 'passive'
gate cited by this entry
-
v2.1.235
Plugin version cache gains a staged publish path with concurrency and debris handling
Plugin version caching now stages a publish and handles concurrent writers and leftover debris
gate cited by this entry, found in this entry's text
-
v2.1.235
Remote settings can now be primed from the storage backend instead of a disk probe
Remote settings can now be loaded from a storage-backend view instead of only probing disk
gate cited by this entry, found in this entry's text
-
v2.1.234
Credentials and transcript tails can be read through the storage backend
Credentials and transcript tails can be read from the new storage backend, but the flag is off.
named in this entry, gate cited by this entry, found in this entry's text
-
v2.1.234
Deleting a session from a transcript has a storage-backend implementation
Deleting a session from a transcript has a new backend routine with retries, disabled here.
named in this entry, gate cited by this entry, found in this entry's text
-
v2.1.234
Next-generation storage is pinned to one decision per process
The new storage layer's on/off decision is now made once per process, and the backend is still an empty stub.
named in this entry, gate cited by this entry, found in this entry's text
-
v2.1.234
Precomputed session resolution on resume, gated off
Resume can report which session it resolved against an expected id, but the flag is off.
named in this entry, gate cited by this entry, found in this entry's text
-
v2.1.234
Global config file watching can move onto the storage backend
Your global config can be watched through the storage backend instead of the file, falling back if it fails.
gate cited by this entry, found in this entry's text
-
v2.1.234
Resume reads the pre-compaction sidecar ahead of time
Resume can fetch pre-compaction state early to cut a wait, but the flag is off.
named in this entry, gate cited by this entry, found in this entry's text
-
v2.1.234
Plugin cache link materialization rewritten
Turning plugin symlinks into real files now survives interruption and refuses unsafe targets.
gate cited by this entry, found in this entry's text
-
v2.1.234
Restarting Claude Code hands the conversation over explicitly, and reports failure
Restarting via /update or /tui now carries your conversation over explicitly and says so if the restart fails.
gate cited by this entry, found in this entry's text
-
v2.1.234
Storage backend writes are now pinned behind a flag and pass explicit file modes
Saved data can route through a new storage backend with explicit file permissions, but the flag is off.
named in this entry, gate cited by this entry, found in this entry's text
-
v2.1.227
A new storage backend is wired through nearly everything, but never built
The new storage layer now touches nearly every part of the product but is never actually created.
gate cited by this entry, found in this entry's text
-
v2.1.227
A new storage backend is wired through the product but returns nothing
A new storage layer is plumbed everywhere but builds nothing, so files are still read directly.
gate cited by this entry, found in this entry's text
Gate readings
9| Release | Resolved | This account | Anonymous | Compiled default |
|---|---|---|---|---|
| v2.1.304 read on another version | Off in both readings | off | off | off |
| v2.1.301 read on another version | Off in both readings | off | off | off |
| v2.1.248 | Off in both readings | off | off | off |
| v2.1.242 | Off in both readings | off | off | not a boolean we can read |
| v2.1.238 | Off in both readings | off | off | off |
| v2.1.236 | Off in both readings | off | off | off |
| v2.1.235 | Off in both readings | off | off | off |
| v2.1.234 | Off in both readings | off | off | off |
| v2.1.227 read on another version | Off in both readings | off | off | off |
Two arms, because they disagree: this account is the one account this site reads and anonymous is a baseline with no identity attached. A reading says nothing about your account, and off cannot rule out a rollout both readings sit outside of. What these readings can and cannot show.
Flag server, over time
12| Read as | Reading | From | Until | Version installed |
|---|---|---|---|---|
| anonymous | off | 2026-10-17T05:30:04Z | 2026-10-22T23:05:05Z | v2.1.302 to v2.1.309 |
| this account | off | 2026-09-10T21:47:12Z | 2026-10-22T23:05:05Z | v2.1.268 to v2.1.309 |
| anonymous | no longer carried | 2026-10-17T05:25:57Z | 2026-10-17T05:25:57Z | v2.1.302 |
| anonymous | off | 2026-08-19T04:25:04Z | 2026-10-17T05:10:04Z | v2.1.233 to v2.1.302 |
| this account | no longer carried | 2026-09-10T21:46:45Z | 2026-09-10T21:46:45Z | v2.1.268 |
| this account | off | 2026-09-08T20:36:15Z | 2026-09-10T17:40:05Z | v2.1.263 to v2.1.267 |
| this account | no longer carried | 2026-09-08T20:34:58Z | 2026-09-08T20:34:58Z | v2.1.265 |
| this account | off | 2026-09-06T02:40:05Z | 2026-09-08T18:45:05Z | v2.1.261 to v2.1.263 |
| this account | no longer carried | 2026-09-06T02:36:19Z | 2026-09-06T02:36:19Z | v2.1.263 |
| this account | off | 2026-08-14T22:10:05Z | 2026-09-06T01:55:04Z | v2.1.232 to v2.1.261 |
| anonymous | no longer carried | 2026-08-19T04:20:14Z | 2026-08-19T04:20:14Z | v2.1.233 |
| anonymous | off | 2026-08-14T22:10:05Z | 2026-08-19T03:45:04Z | v2.1.232 to v2.1.233 |
One row per unbroken stretch of one reading, newest first, from snapshots taken every twenty-five minutes or so. No longer carried is not off: it means the flag server stopped returning the gate at all, which is what a retired experiment looks like. The version column is what was installed when the reading was taken, not what caused it.
First cited
8The earliest release whose published evidence quoted tengu_hover_rest was v2.1.227, 10 Aug 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.
2 further spans in the ledger name it. The list above is the earliest first and stops at 6.
Presence across releases
1Build by build
77One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the feature flag does. All feature flags.