今天早上我把 Claude Code 升到了 v2.1.89,正好赶上 4月1日这波更新。我平时不太追着版本号跑,但这两天社区里关于模型接入、skills 失效的讨论实在太多,加上不少人被 “deepseek-v4-pro is not a model this version of claude code recognizes” 这种报错卡在第一步,我决定升级后把这一版的实际变化和踩坑记录一起整理出来。这篇速览不是官方更新日志,而是我自己实测半天的经验帖:哪些地方值得升级,哪些老问题还在,安装、配置、模型切换这些日常操作里有哪些容易翻车的细节。如果你正在用 Claude Code,或者正打算从 VS Code 插件、桌面端、CLI 三端里挑一个入口,这篇文章应该能帮你省不少时间。
1. v2.1.89 更新内容拆解:改动不算大,但都踩在痛点上
1.1 模型识别表更新,第三方模型报错少了但没绝迹
第一个要聊的是大家最关心的模型识别问题。上一版里,只要你在配置里写了一个 Claude Code 内置列表之外的模型名,启动任务时大概率直接报 “xxx is not a model this version of claude code recognizes”,而且这个报错发生在任何实际请求发出之前,非常劝退。v2.1.89 明显扩充了内置模型识别表,对很多兼容模型的官方 ID 做了显式识别,所以之前靠“先填一个已知模型名,再让网关转发到真实模型”的土办法,现在有一部分已经不需要了。
不过我测试下来,社区里最近热传的 deepseek-v4-pro、deepseek-v4-flash 这类新模型 ID,在这一版里依然没被识别。这事其实不怪 Claude Code 团队偷懒,而是因为模型校验本身就是“静态名单匹配”,第三方模型发版速度又远快于客户端迭代速度,两者之间必然存在时间差。所以如果你接的是刚发布的新模型,别指望更新客户端就能立刻消除报错,更快的路径是配置层绕过。我自己的做法是:在 ccswitch 或环境变量里把对外暴露的模型名固定成一个 Claude Code 已知的 ID,然后在兼容网关侧把该 ID 映射到真实模型。这个方案稳定、不回滚,也不影响同一套配置切回官方模型。
还有一个细节容易被忽略:写模型名时别随手简写。很多模型 ID 是带日期后缀的,比如 claude-sonnet-4-20250514,你写 claude-sonnet-4 虽然看起来一致,但客户端做校验时是按完整字符串匹配的,简写照样报错。真到排查时,先用 claude --version 确认版本号,再打开配置看 model 字段有没有拼写问题,最后才怀疑识别表。按这个顺序来,能省掉大半冤枉路。
1.2 配置目录读取顺序收敛,三端终于能共用一个 settings.json
这版最让我有好感的变化,是配置目录读取顺序做了一次收敛。之前 CLI、桌面版、VS Code 插件各读各的配置,经常出现“在桌面端配好了,CLI 里完全无效”的情况。v2.1.89 把整体顺序统一为:命令行参数、环境变量、项目目录下的 .claude/settings.json(或 settings.local.json)、用户目录下的 ~/.claude/settings.json。优先级从高到低,项目配置覆盖用户配置。
看起来很简单,但实际影响很大。以前很多“我改了 settings.json 为什么不生效”的求助,八成是改错了层级:项目里有一个长期没人维护的 sett
