{"version":"2.1.284","anchor":"tool-result-clearing-after-a-long-idle-tengu-zany-pike-bu","canonical_anchor":"new-clear-tool-results-after-idle-context-edit-tengu-zany","heading":"Old tool results can be cleared after a long idle gap (tengu_zany_pike), and file re-reads return full content when that may happen","tier":"soon","area":"Context Management","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.284\/e\/tool-result-clearing-after-a-long-idle-tengu-zany-pike-bu","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.284","markdown":"### Old tool results can be cleared after a long idle gap (tengu_zany_pike), and file re-reads return full content when that may happen\n\nAfter over an hour idle, Claude Code can ask the server to clear old tool results, and file re-reads then skip the 'unchanged' shortcut\n\n**What**\n\nA 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.\n\n- 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.\n\n- The mode comes from the `tengu_zany_pike` gate, which accepts `on`, `shadow` or `off`. `shadow` only records what would happen and sends no edit. If the value comes from the built-in fallback, the mode is treated as `unknown`: no new clearing is planned, and planning only continues where earlier messages show the server already cleared tool results.\n\n- The planning happens in the main code that builds each request.\n\n- The `dedupUnchangedReads` setting 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.\n\n- @-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_file` note and calls Read with `dedupUnchangedReads` disabled, so the real content comes back. Memory prefetch passes the same signal along as `earlierReadsMayBeCleared`.\n\n**Why**\n\nIf 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.\n\n- Flag `tengu_zany_pike`: Not enough to say (read for one account on one subscription tier against v2.1.284; this account: no value returned, anonymous baseline: no value returned, compiled default: 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.\n- Area: Context Management\n- Tier: Nothing to try yet\n- Useful: 4\/5\n- Signal: 5\/5\n- Present in the build but not switched on"}