What
A tool call is one action Claude takes, such as reading a file or running a command, and its result stays in the conversation. This release adds a way to clear older tool results after the conversation has sat idle for a long time, plus changes so Claude is not pointed at results that are gone.
- On the first request after at least 3900 seconds of idleness, and when the conversation holds at least 20 tool uses that can be cleared, Claude Code can attach a server-side context edit of type
clear_tool_uses_20250919. It keeps the last 5 tool uses. - The mode comes from the
tengu_zany_pikegate, which acceptson,shadoworoff.shadowonly records what would happen and sends no edit. If the value comes from the built-in fallback, the mode is treated asunknown: no new clearing is planned, and planning only continues where earlier messages show the server already cleared tool results. - The planning happens in the main code that builds each request.
- The
dedupUnchangedReadssetting now turns off when the caller disabled it or when an idle clearing edit would apply to the current messages. A re-read then returns the whole file instead of a short "unchanged" note pointing at a copy about to be cleared. Otherwise it keeps its default. - @-mentioned files follow the same rule: when earlier tool results may have been cleared after idle time, Claude Code no longer answers with an
already_read_filenote and calls Read withdedupUnchangedReadsdisabled, so the real content comes back. Memory prefetch passes the same signal along asearlierReadsMayBeCleared.
Why
If it runs, coming back to a session after about an hour could mean older tool outputs are no longer in Claude's context, which changes what Claude can see from earlier in the session. The re-read changes stop Claude from being told it already has a file's content when that copy has been cleared.
tengu_zany_pike Not enough to sayNothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.
This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.284: not a boolean we can read
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.284. It isn't a statement about your account. What a flag value here can and cannot tell you
It is not traced where the mode setting is read, so the exact behaviour of shadow mode is known only from how the code checks it.