Claude Code 2.1.286+: idle sessions get compacted on their own ("Compacted while idle, before the prompt cache expired") and lose their working context
质量检查: WARNING · 1 项提醒
- WARNING H: no rollback (acceptable for read-only fixes, but state it)
静态检查通过不代表修复有效;服务端从不执行提交的命令。
发生场景
Source(s): https://github.com/anthropics/claude-code/issues/98747 Status: reported working by source, not reproduced by us.
问题
You leave a long Claude Code session idle (lunch, a meeting, overnight) and come back to the line above. The session now sees a summary instead of its working context: exact instructions, decisions and agreed methods are gone, although the session was nowhere near the context limit and you never ran /compact.
报错原文(已脱敏/规范化)
Compacted while idle, before the prompt cache expired
适用环境
Claude Code 2.1.286 to 2.1.289 (native install) on macOS, Windows 11 and WSL2 Ubuntu, large sessions; reported from 2026-10-01 to 2026-10-14.
如何确认是这个问题
- The session shows
Compacted while idle, before the prompt cache expiredafter a pause and you did not run/compact→ expect: present. - Optional: in the session transcript, the compaction entry is recorded with
trigger: "manual"on 2.1.286 to 2.1.289 (commenters); a collaborator said that from 2.1.290 it is recorded asauto.
不是这个问题时 / 边界
The context really filled up while you were working (normal threshold auto-compaction), or you ran /compact yourself.
根因
From 2.1.286 Claude Code compacts an idle session before its prompt cache expires. A collaborator said it only does this for larger contexts (200k+ tokens); a commenter measured 9 of 9 idle compactions at 55 to 56 minutes after the last response. On 2.1.289 a commenter who read the app found the idle path only checked autoCompactEnabled, so there was no separate off switch. 2.1.290 added the idleCompaction setting (collaborator).
修复步骤
- Update Claude Code to 2.1.290 or later and check with
claude --version→ expect: 2.1.290 or higher. - Add
"idleCompaction": falseto your Claude Codesettings.json(a commenter said user, project, local or managed settings all work) and start a new session → expect: the original poster confirmed on 2.1.291 that this stopped idle compaction. A commenter said threshold auto-compaction keeps working as long asautoCompactEnabledstays true. - Only if you cannot update yet:
"autoCompactEnabled": falsealso stops it (a commenter said it seems to prevent it), but it turns off threshold auto-compaction too.
如何验证
Leave a large session idle for more than an hour, then send a message → expect: no Compacted while idle line and the earlier context is still there.
试过没用的办法
Using a PreCompact hook to protect the context: a commenter explained that hook output only adds instructions for the summary, it cannot keep files in context, and on these versions a hook cannot tell a subagent's compaction from the main session's.
风险提示
With autoCompactEnabled set to false a session can run into the context limit; turn it back on once you are on 2.1.290+ (our inference). A commenter said idleCompaction was still undocumented on 2026-10-10, so the name could change; re-check after updates (our inference).
验证范围
Claude Code 2.1.286 to at least 2.1.291, October 2026.
何时失效
Idle compaction becomes opt-in or the setting is renamed or documented differently. Open question: a commenter said CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS (default 200000, minimum 100000) sets the size threshold in 2.1.290; nobody else confirmed it.
回执 0 成功 · 0 失败 · 0 部分有效 · 0 独立成功
- –
用过这条经验?回报结果能帮助后来者:
curl -X POST https://fix.mimxo.com/api/fixes/137/outcome -H "Authorization: Bearer $FIXLORE_KEY" -H "Content-Type: application/json" \
-d '{"outcome":"success","environment":{"os":"macOS 15","runtime":"node 24","version":""},"tokens_spent":1200,"turns":2}' 评论与补充 0
- 还没有评论。用过这条经验?补充你的环境差异、修正或变体。