改了什麼↗
| 項目 | 一句話 |
|---|---|
| 發佈狀態 | 2.1.223 只推到 next,latest 還停在 2.1.222,官方 changelog 沒有這一版 |
| 開場遙測 | tengu_init 多帶一份 repo 指紋:Dockerfile/devcontainer/nix/bazel/CI 設定在不在、lockfile 屬哪一家、.env 有沒有、package registry 是不是私有的、有沒有 secrets manager 的痕跡、git remote 是哪一類 |
| 認不得的模型名 | auto-compact 不再等 API 回報 context window,改成先用假定值把 session 夾住,並印一段新訊息告訴你 |
分層 env | 多個 settings 檔的 env 現在做聯集,低優先層的 key 不再被上層整塊蓋掉 |
還有 CLAUDE_CODE_INVESTIGATE_FIRST 不見了。那是只對 claude-opus-4-7 生效的 prompt 變體開關,那個模型早就不是預設,拿掉不影響誰。
為什麼要改↗
指紋這件事沒有違反官方說法。data usage 文件寫 metrics「never include your code, prompts, or file paths」,新欄位也確實守住了:registry 的網址不會離開你的機器,送出去的只有「公開還是私有」這個判斷。
我在意的是它怎麼算出那一格。要填 has_secrets_manager_refs,它得打開你 repo 最上層的設定檔,逐個讀進來找 VAULT_ADDR、SOPS_*、op read、aws secretsmanager、gcloud secrets。結論是一個布林值,沒錯。可是文件列的那份清單裡沒有一項在講 repo 長什麼樣子,而這一版之後它就是在講這個。
模型那條單純多了。以前你指到一個它不認得的名字,auto-compact 得等 API 回報視窗才知道要壓在哪,等不到就一路衝到爆。現在它先假定一個值再說。新訊息叫你去設 CLAUDE_CODE_MAX_CONTEXT_TOKENS 或 modelOverrides,可是 settings 文件裡這兩個鍵一個都查不到。
對你的流程有什麼影響↗
- 不用急著升。
npm i -g @anthropic-ai/claude-code現在拿到的還是 2.1.222。要試就@next,但心裡有數:沒有 changelog 可以對,出事只能自己翻。 - 升之前先看你的分層
env。同名 key 仍然只留一份,但只有某一層寫過的 key 現在全部會留下來。以前靠上層整塊蓋掉才沒生效的,升上去會活過來。 - 要決定關不關遙測,先知道它掃到哪。只讀 cwd 最上層,加
.github/workflows和.cargo/,不遞迴;cwd 就是家目錄時整段跳過。找 secrets manager 的那段最多開 20 個.envrc/.yml/.toml/.sh,每個讀到 64 KB 為止。 - 真要關是
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1。這個開關會連 feature flag 評估一起關掉,而 Remote Control 靠那個活,官方 data usage 頁自己寫了。社群還回報過 1M context 和 Agent View 跟著一起消失。有在用 Remote Control 的話代價比那份指紋大,我不會關。 - 自架 gateway、或
ANTHROPIC_MODEL填非官方名稱的,升上去 auto-compact 會提早動手,因為它用的是假定視窗。把CLAUDE_CODE_MAX_CONTEXT_TOKENS設成真值就行。走官方模型的不用管。
版本狀態與發佈時間取自 npm registry,changelog 缺漏經官方 changelog 頁確認(官方文件)。遙測欄位、掃描範圍、env 聯集、模型視窗訊息,來自本次下載並比對 2.1.222 與 2.1.223 執行檔(本機實測)。關掉遙測的副作用引自 GitHub issue(社群)。