Mingyu's Library主页
2026年8月15日

第 45 课(补):新功能速用 —— v2.1.233(Todo 工具退场、Bash 内存上限、skills 校验、GitLab MR 工作树)

说明:本文为 2026-10-13 回溯补生成,内容基于当时(D 前后)的公开报道检索。 📅 2026-08-15 · 版本窗口:08-14 至 08-15 发布的版本(窗口内仅 v2.1.233,发布于 08-14;v2.1.232(08-13)已在技巧库讲过,v2.1.234 发布于 08-17 不在本窗口) 场景还原:升级后你发现 Claude 不再列出"待办清单",以为它偷懒了;或者 Claude 跑了个 make -j 把机器内存吃光,整个会话卡死;又或者团队在 GitLab 上,想直接拿 MR 链接开工作树——v2.1.233 正好补了这几处。 前置:第 3 课(Subagents)、第 16 课(Git Worktree)、第 17 课(插件与 Marketplace)、第 19 课(Skills)。 来源:官方 CHANGELOG 2.1.233 · Classmethod v2.1.233 解读 · Havoptic 8 月版本表 提醒:先 claude --version 确认 ≥ 2.1.233;变量取值格式以 /help 与官方文档为准。


技巧 1(基础):Todo/Task 清单工具"退场"了——知道为什么,也知道怎么找回

解决的问题:升级后 Claude 不再维护勾选式待办清单,改用文字说明计划;有人觉得更清爽,有人依赖清单追踪长任务。

v2.1.233 起,TaskCreate/TaskGet/TaskUpdate/TaskList 与 TodoWrite 在 Opus 4.8、Sonnet 5、Fable 5、Mythos 5 及更新模型上默认不提供(破坏性变更)。启动子 agent 的 Task、TaskOutput、TaskStop 以及 /workflows、后台 agent 不受影响。

# 想要回清单工具(单次会话)
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude

# 或长期生效:写进 settings.json 的 env
# { "env": { "CLAUDE_CODE_ENABLE_TODO_TOOLS": "1" } }

参考数据(Classmethod 作者单任务实测,非基准):关掉清单后 7 → 5 轮、输出 token 2,286 → 1,373、费用 $0.405 → $0.323(约降 20%)。建议:短任务保持默认;多小时的长任务或需要给人看进度时再打开。 📖 CHANGELOG 2.1.233 · 官方 env-vars · 实测解读

技巧 2(进阶):给 Bash 工具套内存上限,失控构建不再拖垮会话(Linux)

解决的问题:Claude 跑的构建/测试吃光内存,把整个终端会话一起卡死。

# 可选启用:Bash 工具命令放进 memory cgroup(仅 Linux)
# 取值按 cgroup v2 memory.max 的字节数理解(据第三方文章示例,官方未给格式示例)
export CLAUDE_CODE_TOOL_MEMORY_LIMIT=2147483648   # ≈2 GiB
claude

# 顺手:调 WebFetch 会话内 URL 缓存的有效期(毫秒,默认 15 分钟不变)
export CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS=300000   # 5 分钟,适合盯着频繁变化的页面

超限时被杀的是那条命令,Claude 看到失败继续工作,会话本身不受影响(据 claudcod.com 08-16 实测)。同版还修了"开启沙箱时 Linux 空闲会话把一个 CPU 核跑满 100%"的问题。 📖 CHANGELOG 2.1.233 · 第三方实测

技巧 3(进阶):claude plugin validate 直接查项目里的 .claude/skills

解决的问题:某个 SKILL.md 的 frontmatter 写错(缩进、引号、冒号),技能静默不加载,你还以为 Claude 不听话。

# 以前主要校验插件目录;现在也能直接检查裸的 .claude/skills 目录
claude plugin validate .claude/skills
# 会报告 frontmatter 解析失败的 SKILL.md

# 无头模式里排查"模型名写错":请求了不认识的模型 ID 时,stderr 会出现
#   [claude-code:unrecognized_model]
claude -p "hello" --model my-gateway-model 2>&1 | grep unrecognized_model
# 确认是网关自定义名后,在 settings 的 modelOverrides 里映射它即可消除提示

同版修复:技能参数值不再被二次展开为模板标记;/checkup、/review 在 -p 模式或被同名用户技能遮蔽时不再报 "Unknown command"。 📖 CHANGELOG 2.1.233 · 官方:Skills

技巧 4(高阶):GitLab 团队——用 MR 链接开工作树 + 网关按人计费

解决的问题:以前只有 GitHub PR 能一键开工作树;团队走 apps gateway 时无法把花费归到具体的人。

# 用 GitLab MR 链接直接开一个隔离工作树(agents 视图里显示为 !N)
claude --worktree https://gitlab.com/<group>/<project>/-/merge_requests/123
claude agents        # 查看各会话,MR 以 !123 形式出现
# apps gateway(上游为 Anthropic)新增可选设置 forward_user_identity:
# 开启后把登录用户身份作为请求头转发,网关后的代理可按人统计花费。
# 具体配置位置/写法官方 CHANGELOG 未给示例,请查网关文档后再启用。

另:origin 在 gitlab.com / bitbucket.org 的仓库不再弹 GitHub App 安装提示;Windows 上 cd <dir> && <cmd> > file 反复要求审批的 2.1.232 回归已修。 📖 CHANGELOG 2.1.233 · 官方:Common workflows · 解读


今日实操(15 分钟)

  1. claude --version 确认 ≥ 2.1.233。
  2. 在一个 Linux 项目里 export CLAUDE_CODE_TOOL_MEMORY_LIMIT=536870912(512 MiB)后启动,让 Claude 运行 python3 -c "x=bytearray(1<<30)"。
  3. 再跑 claude plugin validate .claude/skills,故意把某个 SKILL.md 的 frontmatter 删掉一个冒号再跑一次。
  4. 验收:第 2 步那条命令失败而会话照常可用;第 3 步第一次通过、第二次准确报出那个 SKILL.md;最后用 CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude 开一个会话,确认清单工具回来了。