Claude Code 在 4 月底到 5 月初密集发布了多个版本(v2.1.119–2.1.132),带来大量实用新功能和 Bug 修复。本文解读其中最值得关注的更新。
重大新功能
/ultrareview CLI 化(v2.1.120)
claude ultrareview [target]/ultrareview 现在有了对应的 CLI 子命令,可以在 CI/CD 脚本里非交互式运行:
- 找到的问题直接打印到 stdout
--json输出原始 JSON 格式,方便程序处理- 退出码:完成为 0,失败为 1
这意味着可以在 GitHub Actions 里把 ultrareview 集成到 PR 检查流程:
- name: Claude Code 代码审查
run: claude ultrareview --json > review.json
# 如果发现 critical 问题,退出码为 1,Pipeline 失败claude project purge(v2.1.126)
claude project purge [path] # 删除项目的所有 Claude Code 状态
claude project purge --dry-run # 预览要删除的内容
claude project purge --interactive # 交互式选择
claude project purge --all # 清除所有项目删除内容:会话记录(transcript)、任务、文件历史、配置条目。适合:
- 清理离职员工的项目状态
- 处理敏感信息泄露后的清理
- 释放磁盘空间
CLAUDE_CODE_SESSION_ID 注入 Bash 子进程(v2.1.132)
Bash 工具的子进程环境里现在自动包含 CLAUDE_CODE_SESSION_ID,与传递给 Hooks 的 session_id 一致。
用途:让 Bash 脚本知道自己是哪个 Claude Code 会话调用的,方便日志关联和审计追踪。
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1(v2.1.132)
export CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1
claude禁用全屏交替渲染,让对话保留在终端的原生滚动历史里。
适合:
- 需要用终端滚动缓冲区查看历史的场景
tmux/screen里滚动行为异常时- 截图或录制终端内容时
权限和安全改进
--dangerously-skip-permissions 覆盖更多路径(v2.1.126)
--dangerously-skip-permissions 现在也绕过 .claude/、.git/、.vscode/、shell 配置文件等之前受保护的路径的写入提示。灾难性的删除命令仍然会提示,作为保底安全网。
这对 CI/CD 管道有用——之前某些自动化场景会被路径保护打断。
安全修复:allowManagedDomainsOnly 绕过问题(v2.1.126)
修复了当更高优先级的 managed-settings 来源缺少 sandbox 块时,allowManagedDomainsOnly / allowManagedReadPathsOnly 被忽略的安全问题。企业用户如果依赖这两个策略,强烈建议升级。
MCP 相关改进
MCP 工具数量显示(v2.1.128)
/mcp 命令现在显示每个已连接服务器的工具数量,并标记连接了但工具数为 0 的服务器(之前是静默显示,难以发现配置问题)。
MCP 服务器自动重试(v2.1.121)
启动时遇到瞬时错误的 MCP 服务器现在自动重试最多 3 次,而不是一直保持断开状态。减少需要手动重启的情况。
alwaysLoad 选项(v2.1.121)
{
"mcpServers": {
"my-server": {
"command": "...",
"alwaysLoad": true // 新增
}
}
}设置为 true 后,该服务器的所有工具跳过"工具搜索延迟加载",始终立即可用。适合高频使用的 MCP 服务器(如内部数据库、代码搜索工具)。
workspace 成为保留服务器名(v2.1.128)
workspace 现在是 MCP 保留名,使用该名称的现有服务器会被跳过并给出警告,请重命名。
Windows 改进
不再强依赖 Git for Windows(v2.1.120)
Git for Windows 不再是必须的。当没有安装时,Claude Code 自动使用 PowerShell 作为 Shell 工具。
PowerShell 工具权限自动批准(v2.1.119)
PowerShell 工具命令现在可以在权限模式中被自动批准,与 Bash 行为一致。之前需要单独配置。
Windows 剪贴板安全修复(v2.1.126)
剪贴板写入不再把复制内容暴露在进程命令行参数里(之前可能被 EDR/SIEM 遥测工具捕获),同时修复了超过 22KB 的内容无法到达剪贴板的问题。
Hooks 增强
PostToolUse 注入 duration_ms(v2.1.119)
PostToolUse 和 PostToolUseFailure 的 Hook 输入现在包含 duration_ms(工具执行时间,不含权限提示和 PreToolUse hook 的时间)。
用于性能监控:
#!/bin/bash
# 记录慢工具调用
DURATION=$(echo "$CLAUDE_TOOL_RESULT" | python3 -c "import json,sys; print(json.load(sys.stdin).get('duration_ms',0))")
if [ "$DURATION" -gt 5000 ]; then
echo "[SLOW TOOL] $CLAUDE_TOOL_NAME took ${DURATION}ms" >> ~/.claude/slow-tools.log
fiPostToolUse 可替换工具输出(v2.1.121)
PostToolUse Hook 现在可以通过 hookSpecificOutput.updatedToolOutput 替换所有工具的输出(之前只有 MCP 工具支持)。
应用场景:
- 敏感数据脱敏:把工具返回内容里的 API Key、密码替换为
[REDACTED] - 内容过滤:过滤掉工具输出里的不合规内容
- 格式标准化:把工具输出统一转为某种格式再给 Claude 看
上下文和性能
/config 设置持久化(v2.1.119)
/config 里的设置(主题、编辑器模式、verbose 等)现在持久化到 ~/.claude/settings.json,参与项目/用户/策略的覆盖优先级体系。之前会话结束后这些设置会重置。
CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE(v2.1.129)
export CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1通过 Homebrew 或 WinGet 安装时,设置此环境变量后 Claude Code 会在后台自动运行升级命令,并在升级完成后提示重启。
Hooks 里支持 ${CLAUDE_EFFORT} 变量(v2.1.120)
Skills 现在可以在内容里引用 ${CLAUDE_EFFORT} 获取当前的努力等级,根据不同努力等级提供不同的指令。
Bug 修复精选
终端体验
- 修复全屏模式下笔记本从睡眠恢复、
Ctrl+Z/fg后显示空白屏幕 - 修复
Ctrl+L清除输入内容(现在只强制刷新屏幕,不影响输入) - 修复 JetBrains IDE 2025.2 终端的滚轮处理(滚动方向错误、意外加速等)
核心稳定性
- 修复 MCP stdio 服务器向 stdout 写入非协议数据时内存无限增长(RSS 超 10GB)
- 修复大型目录树的
find命令耗尽文件描述符导致系统级崩溃(macOS/Linux) - 修复通过管道向
claude -p发送超大输入(>10MB)时崩溃
Opus 4.7 1M 上下文修复(v2.1.119)
- 修复状态栏显示
context_windowToken 数为累计会话总量而非当前上下文用量(之前一直显示偏高)
升级建议
- 有安全策略依赖(
allowManagedDomainsOnly等) → 立即升级到 v2.1.126+ - 在 CI/CD 里使用 ultrareview → 升级到 v2.1.120+,改用
claude ultrareviewCLI - Windows 用户(无 Git for Windows) → v2.1.120 开始不再需要
- JetBrains 用户有滚轮问题 → v2.1.132 已修复
# 检查当前版本
claude --version
# 升级(Homebrew)
brew upgrade --cask claude-code
# 升级(npm)
npm update -g @anthropic-ai/claude-code来源:Claude Code 官方 Changelog | GitHub CHANGELOG.md | 整理:ClaudeEagle