精选85Claude Code(GitHub Releases)AI 编程与模型
Claude Code v2.1.239:修复代理双倍计费与启动挂起等数十项问题
v2.1.239
推荐理由
本次更新包含可能导致生产环境产生意外高额账单(代理双倍计费)及核心功能不可用(启动挂起、崩溃)的关键修复。强烈建议所有使用 Bedrock 或处于复杂网络环境下的开发者立即升级至 v2.1.239 以规避风险。
What's changed
变更内容
- Cost estimates (/cost, status line, --max-budget-usd) now include the 1.1× US-only-inference premium for data-residency workspaces
- Added the one-time fullscreen renderer offer on Bedrock, Vertex, Foundry and other previously excluded setups; new installs there now start in fullscreen
- Added /claude-api upgrade to migrate Python projects from anthropic 0.x to 1.x, and updated the skill's Python reference for 1.x (timeouts use anthropic.Timeout, not httpx.Timeout)
- Cloud sessions: plugins synced from claude.ai now show as name@synced, work with claude plugin enable/disable <name>@synced, and never override a same-named plugin you installed
- Alpine/musl builds: native image paste, clipboard, and audio-capture add-ons now load (musl-built binaries instead of glibc ones refused by the runtime)
- The usage-limit message shown when your monthly spend limit is already used up now also says when your session or weekly limit resets
- Fixed Bedrock streaming behind proxies that strip the response Content-Type header, which silently doubled billed API calls by re-running every turn non-streaming
- Fixed Claude Code hanging at startup behind an HTTPS proxy when using Bedrock with an SSO profile and awsAuthRefresh — the credential pre-check now honors HTTPS_PROXY
- Fixed a raw crash dump when starting Claude Code from a directory that no longer exists; it now prints a clear message
- Fixed Edit and Write calls pausing for about 5 seconds in JetBrains IDE terminals when the Claude Code plugin is connected
- Fixed a race where pressing Esc with a prompt queued could let the next turn finish early, leaving the session idle while Claude was still working and letting a later resubmit repeat actions
- Fixed WebFetch retaining expired page content in memory for the whole session instead of the intended 15 minutes
- Fixed cloud sessions (Claude Code on the web, desktop and mobile apps) resuming out of plan mode after an idle worker restart
- Fixed MCP elicitation forms taller than the terminal being clipped in fullscreen mode: the form now fits the window, with hidden fields reachable by scrolling and Accept/Decline always visible
- Fixed remote MCP servers staying failed after a transient 5xx on a mid-session reconnect in cloud sessions or via SDK setMcpServers()
- Fixed custom session titles disappearing from /resume after more than ~64 KB of conversation was written following the rename
- Fixed claude -c/resume picking up sessions from a different directory whose path differed only by characters like _, -, or .
- Fixed /resume and the agents view showing a session as recently changed (and reordering it) when only its file was touched or it was merely reopened
- Fixed /resume in all-projects mode telling you to cd into a deleted directory (e.g. a removed worktree); such sessions now resume in the current directory
- Fixed the dark-ansi theme rendering expanded tool results in fullscreen mode with text the same color as the background
- Fixed the fullscreen renderer prompt reappearing on every launch when it could never be answered; it now stops after being shown on three launches
- Fixed .worktreeinclude patterns starting with **/ silently matching nothing when the target lived in a gitignored directory
- Fixed agents, skills, and commands whose .md file starts with a UTF-8 BOM being silently ignored
- Fixed /insights echoing literal <message> tags in its response on some models
- Fixed marketplace metadata.pluginRoot having no effect: bare plugin source names now resolve under it as the docs describe
- Fixed mouse movement in browser-based terminals inserting text like "35;150;7M" into the prompt when a mouse report arrived split across writes
- Fixed custom theme overrides for the effort/ultracode status badge colors being ignored
- Fixed OpenTelemetry trace fragmentation: tool executions deferred by a PreToolUse hook now resume in the original turn's trace instead of starting a new trace
- Fixed vim mode in the agent view: Escape now switches to NORMAL mode and keeps your text instead of clearing the prompt
- Fixed the selection:copy keybinding silently dropping a text selection that had been extended with Shift+Arrow keys
- Fixed the /voice startup tip still appearing after voice dictation was enabled via the voice.enabled setting
- Fixed shell-mode (!) Tab completion dropping the ./ from a ./script path, which left a command the shell couldn't run
- Fixed fullscreen mode answering a permission prompt or pressing a button when you clicked the terminal window only to bring it back into focus
- Fixed slash-command panels (e.g. /config, /model) in fullscreen mode covering the latest messages; the conversation now stays pinned above the panel
- Fixed the /workflows detail dialog overflowing the terminal and losing its header off-screen when opened while Claude is still responding
- Fixed the Linux sandbox making a nonexistent .git/config.worktree unreadable, which broke every sandboxed git command in repos with extensions.worktreeConfig set
- Fixed hooks failing with "posix_spawn ENOENT" after the session's working directory was deleted; they now run from the project root or home directory instead
- Fixed claudeMdExcludes not excluding a symlinked .claude/rules file when the pattern names the rules directory or the symlink rather than its target
- Fixed runaway session-title syncing to Remote Control when two Claude Code processes shared one background job's state (2.1.232 regression); title updates are now deduplicated and rate-limited
- Fixed sessions whose title starts with / being unaddressable by SendMessage and shown as "(untitled)" in ListAgents
- Fixed Ctrl+W, Ctrl+U, Ctrl+K, Option+Backspace, Option+D and vim df/dt leaving a broken [Pasted text #N] placeholder when the cursor was inside it
- Fixed masked (password-style) inputs such as the login code field letting their text be pasted back with Ctrl+Y elsewhere or saved to prompt history when cleared with double Esc
- Fixed Ctrl+Backspace deleting one character instead of a word in search boxes
- Fixed a request rejected by an organization policy check being re-sent before the rejection was shown
- Improved the reminder shown after compaction so a skill's original arguments are not re-run as a new request
- Long file paths on tool-use rows now truncate in the middle to stay on one line
- Remote sessions keep sending keep-alives while a long SessionStart or Setup hook runs, so the container is not idle-reaped mid-hook
- /goal: repeat check-ins on long-running background work now back off (30 min, then 1 h, then every 2 h) instead of repeating every 30 minutes
- /goal: resuming a session from the claude --resume picker now restores its active goal
- ListAgents now tells a session its own name (the one peers use to message it), and SendMessage to your own name says so instead of "no agent named …"
- ListAgents and /list-agents now list your live teammates (previously only subagents and other sessions appeared, so a reachable teammate looked absent)
- keybindingFlavor: "readline" now also matches Bash for word keys: Alt+F and Ctrl/Option+→ stop at the end of the word, Alt+D deletes to it (Ctrl+Y pastes it back), and punctuation separates words
- Persistent retry mode (CLAUDE_CODE_RETRY_WATCHDOG) now fails immediately on organization spend-limit and out-of-credits errors instead of waiting indefinitely for a reset
- Claude in Chrome: /clear now closes the session's Chrome tab group, and empty groups are closed on /resume and when Claude Code exits
- Remote sessions: images uploaded from mobile now include their saved file path, so Claude can copy them into files it creates
- Claude Code on the web: requests from Bash and other tools to non-API anthropic.com hosts (e.g. www, docs) now go through the session's network proxy, so your environment's allowed domains apply
- 成本估算(/cost、状态行、--max-budget-usd)现在包含针对数据驻留工作区的仅美国推理溢价 1.1×
- 在 Bedrock、Vertex、Foundry 及其他此前被排除的设置中添加了全屏渲染器一次性优惠;这些平台上的新安装现在将以全屏模式启动
- 新增 /claude-api 升级命令,用于将 Python 项目从 anthropic 0.x 迁移至 1.x,并更新了该技能的 Python 参考文档以适配 1.x(超时设置现使用 anthropic.Timeout,而非 httpx.Timeout)
- 云会话:从 claude.ai 同步的插件现在显示为 name@synced,支持通过 claude plugin enable/disable <name>@synced 进行启用/禁用,且永远不会覆盖你安装的同名插件
- Alpine/musl 构建:原生图像粘贴、剪贴板和音频捕获插件现在可以加载(使用 musl 构建的二进制文件,而非运行时拒绝的 glibc 版本)
- 当月消费限额已用完时显示的用量限制消息,现在还会提示你的会话或每周限额何时重置
- 修复了当代理剥离响应 Content-Type 标头时,Bedrock 流式传输会静默地将 API 调用计费翻倍的问题(因为每次对话轮次都被非流式地重新执行)
- 修复了在 HTTPS 代理后使用带有 SSO 配置文件的 Bedrock 和 awsAuthRefresh 时,Claude Code 在启动阶段挂起的问题——凭证预检查现在遵循 HTTPS_PROXY 设置
- 修复了从不再存在的目录启动 Claude Code 时的原始崩溃转储问题;现在会打印清晰的错误消息
- 修复了在 JetBrains IDE 终端中连接 Claude Code 插件时,Edit 和 Write 调用暂停约 5 秒的问题
- 修复了一个竞态条件:当队列中有提示词时按下 Esc 键可能导致下一轮对话提前结束,使会话处于空闲状态而 Claude 仍在处理,并允许后续的重新提交重复执行操作
- 修复了 WebFetch 在整个会话期间将过期的页面内容保留在内存中,而不是预期的 15 分钟
- 修复了云会话(Web 版、桌面版和移动版的 Claude Code)在空闲工作节点重启后从计划模式恢复的问题
- 修复了全屏模式下高于终端高度的 MCP 询问表单被裁剪的问题:表单现在适应窗口大小,隐藏字段可通过滚动访问,接受/拒绝按钮始终可见
- 修复了云会话或通过 SDK setMcpServers() 方法在会话中间重连时遇到临时 5xx 错误后,远程 MCP 服务器保持失败状态的问题
- 修复了自定义会话标题在重命名后写入超过约 64 KB 对话内容后从 /resume 命令中消失的问题
- 修复了 claude -c/resume 从路径仅因 _、- 或 . 等字符不同而不同的目录中恢复会话的问题
- 修复了 /resume 和代理视图在仅触及文件或重新打开时错误地将会话标记为最近更改(并重新排序)的问题
- 修复了在所有项目模式下 /resume 提示用户 cd 进入已删除目录(例如已移除的工作树)的问题;此类会话现在在当前目录中恢复
- 修复了 dark-ansi 主题在全屏模式下渲染扩展工具结果时,文本颜色与背景色相同的问题
- 修复了全屏渲染器提示在每次启动时重新出现且无法回答的问题;现在它在显示三次后停止出现
- 修复了以 **/ 开头的 .worktreeinclude 模式在目标位于 gitignored 目录中时静默匹配不到任何内容的问题
- 修复了以 UTF-8 BOM 开头的 .md 文件的代理、技能和命令被静默忽略的问题
- 修复了 /insights 在某些模型上响应中回显字面量 <message> 标签的问题
- 修复了 marketplace metadata.pluginRoot 无效的问题:裸插件源名称现在按文档描述在其下解析
- 修复了基于浏览器的终端中鼠标移动在鼠标报告跨写入分割到达时向提示符插入 "35;150;7M" 等文本的问题
- 修复了 effort/ultracode 状态徽章颜色的自定义主题覆盖被忽略的问题
- 修复了 OpenTelemetry 跟踪碎片化问题:由 PreToolUse 钩子延迟的工具执行现在恢复到原始轮次的跟踪中,而不是开始新的跟踪
- 修复了代理视图中的 vim 模式:Escape 现在切换到 NORMAL 模式并保留您的文本,而不是清除提示符
- 修复了 selection:copy 键绑定在通过 Shift+Arrow 键扩展文本选择后静默丢弃该选择的问题
- 修复了通过 voice.enabled 设置启用语音听写后 /voice 启动提示仍然出现的问题
- 修复了 shell-mode (!) Tab 补全从 ./script 路径中删除 ./,导致 shell 无法运行命令的问题
- 修复了全屏模式下点击终端窗口仅为了使其重新获得焦点时回答权限提示或按下按钮的问题
- 修复了全屏模式下斜杠命令面板(例如 /config、/model)覆盖最新消息的问题;对话现在固定在面板上方
- 修复了当 Claude 仍在响应时打开 /workflows 详情对话框导致其溢出终端且标题超出屏幕的问题
- 修复了 Linux 沙箱因尝试读取不存在的 .git/config.worktree 而导致所有沙箱化 git 命令在设置了 extensions.worktreeConfig 的仓库中失效的问题
- 修复了会话工作目录被删除后钩子(hooks)因 "posix_spawn ENOENT" 而失败的问题;现在它们改为从项目根目录或主目录运行
- 修复了 claudeMdExcludes 在模式指定的是 rules 目录或符号链接本身而非其目标时,未能排除符号链接指向的 .claude/rules 文件的问题
- 修复了两个 Claude Code 进程共享一个后台作业状态时(2.1.232 回归问题),导致会话标题同步失控至 Remote Control 的问题;现在标题更新已去重并限制了速率
- 修复了以 / 开头的会话标题无法通过 SendMessage 寻址,且在 ListAgents 中显示为 "(untitled)" 的问题
- 修复了当光标位于其中时,Ctrl+W、Ctrl+U、Ctrl+K、Option+Backspace、Option+D 以及 vim 的 df/dt 操作会留下损坏的 [Pasted text #N] 占位符的问题
- 修复了掩码式(密码风格)输入(如登录验证码字段)允许使用 Ctrl+Y 在其他地方粘贴回文本,或在用双 Esc 清除时保存到提示词历史中的问题
- 修复了在搜索框中 Ctrl+Backspace 仅删除一个字符而非一个单词的问题
- 修复了被组织策略检查拒绝的请求在被显示拒绝信息之前被重新发送的问题
- 改进了压缩(compaction)后显示的提醒,以防止技能的原始参数作为新请求重新运行
- 工具使用行上的长文件路径现在会在中间截断,以保持在一行内
- 远程会话在长时间运行的 SessionStart 或 Setup 钩子执行期间持续发送保活信号,因此容器不会在钩子执行中途因空闲而被回收
- /goal: 对长期运行的后台工作重复进行签到检查时,现在采用退避策略(30 分钟,然后 1 小时,然后每 2 小时),而不是每 30 分钟重复一次
- /goal: 从 claude --resume 选择器恢复会话时,现在会恢复其活动目标
- ListAgents 现在会告知会话其自身名称(即对等方用于向其发送消息的名称),向自己的名称发送 SendMessage 时会显示相应提示,而不是 "no agent named …"
- ListAgents 和 /list-agents 现在会列出你的实时队友(此前仅显示子代理和其他会话,导致可联系的队友看起来不存在)
- keybindingFlavor: "readline" 现在也适用于 Bash 的单词键:Alt+F 和 Ctrl/Option+→ 停在单词末尾,Alt+D 删除至该位置(Ctrl+Y 将其粘贴回来),且标点符号分隔单词
- 持久重试模式(CLAUDE_CODE_RETRY_WATCHDOG)现在在遇到组织支出限额和余额不足错误时立即失败,而不是无限期等待重置
- Chrome 中的 Claude:/clear 现在会关闭会话的 Chrome 标签页组,空组会在 /resume 和 Claude Code 退出时被关闭
- 远程会话:从移动端上传的图片现在包含其保存的文件路径,因此 Claude 可以将其复制到自己创建的文件中
- Web 版 Claude Code:来自 Bash 和其他工具对非 API anthropic.com 主机(例如 www、docs)的请求现在通过会话的网络代理进行,因此你环境中的允许域名规则将生效
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力