Claude Code 长会话别再被假 1M 打断:2.1.311+ 自动 compact 与排除笔记清单
标准上下文会话过约 200K 时,旧版常停在「Usage credits required for 1M context」。Claude Code 2.1.311+ 改为 compact 后续跑,并修 compact 后 MEMORY.md/CLAUDE.md 旧内容等。本文给升级验收、与 SmartCompact 分工,以及防失忆的排除笔记清单。

Claude Code 长会话别再被假 1M 打断:2.1.311+ 自动 compact 与排除笔记清单
长重构、通读日志、跨十几个文件排障——Claude Code 会话一长,以前常卡在一句看起来很唬人的报错:
Usage credits required for 1M context
人读成「你没买 1M 上下文额度」。很多标准上下文(约 200K)用户其实根本没开 1M,只是单次请求把上下文顶过了约 200K 的档。会话直接停,进度断在半截。
2.1.311 起官方改了行为:标准上下文会话在请求超过约 200K token 时,不再停死,而是 compact(压缩)对话后继续跑。同版还修了 compact 后 MEMORY.md / CLAUDE.md 读到旧内容、超长 CLAUDE.md 卡顿、大文件 Write/Edit 假报 0 行等问题。npm 上素材整理时 latest 已到 2.1.312(2026-10-27),正文按「升到 2.1.311+ / 当前 latest」写即可。
这篇接本站省 Token 系列:755 SmartCompact(人为挑时机压缩)、760 冷静篇(别信 README 大数字)。重点不是再安利一把插件,而是:升级后官方会更勤 compact——你得有一套「排除笔记」防失忆、防重试死路。
下文 changelog 要点均来自官方 CHANGELOG 与文档页 code.claude.com/docs/en/changelog。我未复跑 1M 额度账单实验;升级与清单按公开说明整理。
一、先看结论
| 项 | 建议 |
|---|---|
| 要不要升 | 长会话、标准上下文用户:升到 2.1.311+(建议跟 latest) |
| 假 1M 打断 | ≥2.1.311:超约 200K 时 compact 后续跑,不再停在那句 Usage credits… |
| 新风险 | compact 更勤 → 中间试错、排除过的路径更容易「忘」 |
| 对治 | 会话外维护 排除笔记(ruled-out notes):路径 / 结论 / TTL |
| 和 755 | 官方自动 compact = 保活;SmartCompact = 挑「提交/测试绿」再压。可并存,别指望只靠某一个 |
二、痛点:假「要 1M 额度」打断长会话
典型场景:
- 你开的是标准上下文会话(没特意开 1M)。
- 读了一堆日志、多文件 diff、几轮工具结果堆上去,单次请求上下文过了约 200K。
- 旧版本:直接停,报
"Usage credits required for 1M context"。 - 你去查账单、怀疑订阅——其实问题是过线策略,不是「没买 1M」。
这和「真的在用 1M 上下文、额度不够」是两回事。旧行为把「过 200K」和「要 1M 额度」绑在同一句文案上,排查成本很高:长会话用户以为自己缺钱,其实只是该压缩了。
三、2.1.311 改了什么(对照官方原文)
官方 2.1.311 条目里,和长会话最相关的几条(英文原文要点 + 中文说明):
-
假 1M 停死 → compact 后续跑
Fixed standard-context sessions stopping with "Usage credits required for 1M context" when a request ran over 200K tokens; Claude Code now compacts the conversation and continues
标准上下文、请求过约 200K:以前停;现在 压缩对话并继续。 -
compact 后 MEMORY.md / CLAUDE.md 旧内容
Fixed Claude seeing stale MEMORY.md and CLAUDE.md content right after automatic compaction when those files were edited earlier in the session
会话里刚改过这些文件,自动 compact 后模型仍可能看到压缩前的旧快照——同版已修。升级后仍建议:关键约定写进仓库文件,别只活在聊天里。 -
超长 CLAUDE.md 卡顿
Fixed long freezes at startup and after reading or editing files when a CLAUDE.md file holds a very long list item
CLAUDE.md 里塞了超长列表项时,启动/读写会卡;同版修。 -
大文件 Write/Edit 假报 0 行
Fixed Write and Edit stalling … and reporting 0 lines changed, when changing thousands of lines in a file
改几千行时可能卡住几秒并报 0 行变更;同版修。长重构用户常撞。
版本线:
- 2.1.311:上述行为变更所在版本(changelog 标注)。
- 2.1.312:后续 latest(素材包整理时为 2026-10-27 附近),修点与体验项更多;日常直接跟 latest 即可。
文档入口:
- 可读 changelog:https://code.claude.com/docs/en/changelog
- 原文 Markdown:https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md
四、升级步骤(只写公开、可自检的)
安装方式因环境而异(npm 全局、官方 install 脚本、桌面端等),不要死记某条过期的一行命令。稳妥流程:
1. 看当前版本
在终端执行:
bash
claude --version
若输出低于 2.1.311,需要升级。
2. 按你当初的安装渠道升级
- npm 全局安装的用户:用你平时升级 Claude Code 的同一套 npm 命令升到 latest,再跑一次
claude --version确认 ≥2.1.311(理想情况已是 2.1.312+)。 - 官方安装脚本 / 桌面端用户:按官方文档的更新说明操作;升完同样用
claude --version验收。 - 不确定渠道:先查官方文档当前推荐安装方式,再对照 changelog 确认版本号;以
claude --version与 changelog 条目为准,勿轻信第三方镜像说明。
3. 新开或恢复长会话再验证
升级后建议:
- 长任务尽量在新版本会话里继续(或
/resume到已升级的 CLI)。 - 若仍出现那句 Usage credits…,先确认版本号是否真的 ≥2.1.311,再查是否其实开了 1M / 额度类限制(那是另一条线)。
五、compact 更勤之后的风险:失忆与重试死路
自动 compact 解决的是「别停死」;它不保证压缩摘要里留住你所有试错结论。
常见翻车:
| 现象 | 为什么会发生 | 后果 |
|---|---|---|
| 又去改已经排除的路径 | 摘要偏「当前目标」,弱化「试过失败」 | 烧 token、引入回归 |
| 重复跑失败命令 | 报错栈被压短或丢掉 | 死循环式重试 |
| 忘掉「别动某文件」 | 口头约定只在聊天里 | 误改配置 / 密钥旁文件 |
| 以为 MEMORY.md 已更新 | 旧版 compact 后可能见旧快照(2.1.311 已修,仍勿只靠聊天) | 约定漂移 |
所以:官方越自动 compact,你越需要会话外的「排除笔记」。
这和 755 里 SmartCompact 强调「进度笔记接上」是同一类工程习惯,只是侧重点从「进度」扩到「已排除」。
六、排除笔记 / ruled-out notes 清单
建议在仓库里固定一个小文件(示例名,可自定):
text
docs/agent-ruled-out.md
## 或 .claude/ruled-out.md(按团队习惯)
模板(可直接复制)
markdown
## Ruled-out notes(排除笔记)
> 会话 compact / 换会话后仍有效。过期条目删掉或标 obsolete。
## 进行中任务
- 目标:…
- 截止日期 / 分支:…
## 已排除(不要再试)
| 路径或假设 | 结论(为何排除) | 证据(命令/报错摘要) | 记入时间 | TTL / 何时可重开 |
| --- | --- | --- | --- | --- |
| `src/foo/legacy.ts` 整文件重写 | 会破坏 X 调用方;改局部补丁即可 | 2026-10-28 测:… | 2026-10-28 | 本需求结束前勿重开 |
| 「升级依赖到 major」 | 锁文件冲突,非根因 | `npm ls` 输出摘要 | 2026-10-28 | 根因修完后再评估 |
| 清全量缓存再跑 | 已试,问题仍在;浪费 20min | … | 2026-10-28 | 换环境前勿重复 |
## 关键结论(另存,勿只留在聊天)
- …
字段怎么填
- 路径或假设:文件、模块、方案名、一句可检索的假设。
- 结论:一句话「为什么不要再走这条路」。
- 证据:命令、关键报错一行、PR/issue 链接——短,别贴整段日志进笔记(日志可以链到 gist / 本地文件)。
- TTL / 何时清:
- 需求结束 → 整表归档或删除;
- 「换环境后再说」→ 写明触发条件;
- 无期限的硬约束(合规、密钥旁路径)→ TTL = 永久,并写进 CLAUDE.md / 正式规范。
和 Agent 怎么配合
- 开长会话时在第一轮提示:
先读 docs/agent-ruled-out.md,遵守已排除项。 - 每排除一条,先改笔记再继续聊——compact 之后聊天可能丢,文件还在。
- 关键架构结论同步进
CLAUDE.md或 ADR;排除笔记只扛「试错负向知识」。
七、和 755 SmartCompact:官方自动 compact vs 挑时机压
| 官方自动 compact(≥2.1.311 行为强化) | 755 SmartCompact | |
|---|---|---|
| 触发 | 接近/越过上下文策略线(含标准上下文过约 200K 的保活路径) | 过线后,优先在「提交 / 测试绿 / 任务收口」再压 |
| 目标 | 别停死、能续跑 | 少在改到一半时压,降丢细节与重摸现场成本 |
| 谁控制时机 | 运行时策略 | 插件规则 + 你的阶段节点 |
| 失忆风险 | 有,靠排除笔记 / 仓库文件 | 有,插件有进度笔记;仍建议排除笔记 |
可并存的用法建议:
- 先升级到 2.1.311+:拿到「过 200K compact 续跑」,消除假 1M 打断。
- 长重构日:若已装 SmartCompact,继续用它把「主动压缩」尽量钉在绿测/提交后;官方自动 compact 当保底。
- 无论有没有插件:维护排除笔记;compact 前后扫一眼表。
- 别叠太多「省 token」刀还不计量——760 已说明 README 大数字常兑不现;本篇升级是可靠性修复,不是宣称再省百分之几十。
八、检查清单(可打印)
升级与版本
-
claude --version≥ 2.1.311(建议 latest) - 对照官方 changelog 确认本机版本含 2.1.311 那条「compact and continues」
会话策略
- 长任务用升级后的 CLI / 桌面端
- 标准上下文用户:再遇 Usage credits… 先查版本,再查是否真开了 1M
排除笔记
- 仓库内有
ruled-out文件(或等价) - 每条含:路径/假设、结论、证据、TTL
- 开会话首轮要求 Agent 先读该文件
关键结论另存
同版顺带(可选)
- CLAUDE.md 避免单个超长列表项拖慢启动
- 大文件改动后若仍见「0 lines」,确认已升到含该修复的版本
九、什么时候还可能看到 1M 相关提示
升级后仍可能合理出现额度/1M 相关文案,例如:
- 你确实在用 1M 上下文相关能力,且账户侧有额度限制;
- 其它计费/订阅提示(与「标准上下文过 200K」不是同一条修复)。
排查顺序建议:版本号 → 是否标准上下文 → 是否真开 1M → 再查账单。不要一看到旧文案就默认「没升级成功」或「必须买 1M」。
附:一次「假 1M 打断」后的自救顺序(升级前后都适用)
若你此刻卡在半截会话里,可以按这个顺序减损,而不必先争论「要不要买 1M」:
- 记下断点:当前目标一句、最后成功的提交/测试、正在改的文件列表——写进排除笔记或临时
WIP.md。 - 查版本:
claude --version。若 < 2.1.311,先升级再谈续跑策略。 - 决定续还是开新:
- 旧版本且已停死:升级后
/resume或新开,并把 WIP / ruled-out 贴进第一轮。 - 已是 2.1.311+ 仍报额度类文案:按第九节区分「真 1M/订阅」与旧文案残留。
- 旧版本且已停死:升级后
- 压缩前人工摘要:即使客户端会自动 compact,你自己的三五行「已排除 / 下一步只做 X」往往比模型摘要更准。
- 续跑后立刻校验:让 Agent 复述排除表与下一步;不对就先改笔记再动手改代码。
这套顺序的目标很朴素:少丢负向知识,少付第二次探索税。和是否安装 SmartCompact 无关——插件优化的是「何时压」,笔记优化的是「压完还记得什么不该做」。
和「进度笔记」怎么分工
| 文件 | 写什么 | 谁在 compact 后最需要 |
|---|---|---|
| 进度 / checkpoint | 做到哪、下一步、绿测命令 | 接着干 |
| 排除笔记 | 别再试什么、为何、TTL | 别重蹈覆辙 |
| CLAUDE.md / ADR | 长期约定、目录约定、禁止事项 | 跨会话、跨人 |
三份都写「正在做的事」会打架;约定:正向进度一份、负向排除一份、长期规范一份。755 讲进度侧,本文补排除侧。
十、小结
- 2.1.311+ 把「标准上下文过约 200K → 假 1M 停死」改成了 compact 后续跑——长会话用户应升级。
- Compact 更勤 ≠ 更聪明;排除笔记把「不要再试」写进仓库。
- 与 755 SmartCompact 分工:官方保活,插件挑时机;两者可一起用。
- 省 Token 仍要冷静:760 的方法论在——先表后刀;本篇优先修的是会话连续性。
参考来源
- Anthropic Claude Code CHANGELOG(原文):https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md(条目 2.1.311、2.1.312)
- Claude Code 文档 Changelog:https://code.claude.com/docs/en/changelog
- 本系列:755 省 Token:SmartCompact · 760 省 Token 冷静篇 · 749 Headroom