跳至主要內容

Claude Code v2.1.269:外掛評測套件、/output-style 與 Bash 編輯差異

Claude Code v2.1.269 新增可產生評分結果的 claude plugin eval、/output-style 指令、Bash 編輯差異與多個新環境變數,VS Code 也加入代理地圖以及 hook 與權限規則對話框。

Claude Code v2.1.269 是一次大型更新,變更日誌共列出 98 個項目。此版本推出以可重現評測套件為外掛評分的 claude plugin eval、在 Remote Control 與無介面(headless)工作階段中同樣可用的 /output-style 指令,以及數個新環境變數,同時修正了提示快取、終端機輸入與權限規則等問題。VS Code 則新增代理地圖,以及管理 hook 與權限規則的對話框。

新功能

claude plugin eval

新的 claude plugin eval 指令會針對 Claude Code 執行外掛的評測套件,並以 JSON 與 HTML 報告提供有評分、可重現的結果。可執行 claude plugin eval --help 查看選項。

/output-style 指令

/output-style [name] 可列出並切換輸出風格。除了本機之外,它也能透過 Remote Control,以及在雲端與其他無介面工作階段中使用。

Bash 檔案編輯的差異

啟用 bashEditDiffEnabled 設定後,當 Bash 工具負責檔案編輯時,Bash 工具的結果現在會附上該指令所變更檔案的差異。

新的環境變數

  • OTEL_METRICS_INCLUDE_REPOSITORY 會為 OpenTelemetry 指標與事件加上 vcs.* 儲存庫屬性;搭配 OTEL_LOG_TOOL_DETAILS 時,commit 事件還會帶有 vcs.ref.head.*。
  • CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS 可延長 LLM 閘道 /v1/models 探索的逾時時間(預設 3 秒)。
  • CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS(1–256)可提高 Workflow 工具每次執行的同時代理上限,適用於受推論速度限制的大量分派。

遠端與無介面工作階段的背景代理狀態

遠端與無介面工作階段在背景代理仍在執行時,不再回報「waiting for your input」。若要恢復舊行為,請設定 CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0。

更嚴格的權限規則

以 ! 開頭的 deny 或 ask 規則,現在只會在寫入它的設定來源內生效,單獨一個 ! 的否定則會被忽略。Edit() deny 規則與寫入路徑檢查現在也會套用到 Bash tee 指令寫入的檔案,Bash(tee:*) 允許規則也不再涵蓋工作目錄以外的目的地。

審查與技能命名變更

/ultrareview --post 現在會在審查結果送達時直接張貼 PR 留言並印出留言連結,而不是另外啟動第二個雲端工作階段來張貼。在雲端工作階段中,從 claude.ai 同步的技能現在命名為 anthropic-skills:<name>,與 Claude Desktop 一致;在沒有其他技能使用相同名稱時,單獨的名稱仍可使用。

VS Code 代理地圖、hook 與權限規則對話框

頁尾新增「N agents」標籤,點開即可看到工作階段子代理的地圖,包含每個代理的卡片、Stop agent 按鈕與唯讀的對話紀錄。指令選單新增 Hooks 對話框,可檢視 hook,並在使用者、專案與本機設定中新增、編輯或移除 hook(受管、外掛與工作階段 hook 維持唯讀)。新的 Permission rules 對話框則會列出權限規則,並可在這三個範圍中新增或移除規則(啟動選項、僅限工作階段與受管規則維持唯讀)。Focus 檢視也會顯示執行中子代理的即時進度列。

修正與改進

  • 提示快取:修正回應因輸出 token 上限被截斷並自動接續後,下一輪提示快取部分失效的問題;修正在 Claude 思考途中中斷後恢復工作階段,可能改變先前上下文重送方式而降低快取重用的情況;雲端工作階段現在會在第一次請求前稍候伺服器設定,以避免快取未命中。
  • 終端機按鍵:修正 kitty 協定終端機中 F1/F2/F4 無效、st 中 Delete 無效、rxvt-unicode 中 Alt+方向鍵被當成 Escape,以及 WezTerm 中 Shift+標點符號輸入成未按 Shift 的字元(2.1.247 引入的回歸問題)。透過 SSH 以及在無法辨識的終端機中,鍵盤支援也有所改善:會回應 kitty 鍵盤查詢的終端機(例如 foot 與 Alacritty 0.16+)現在可使用 Shift+Enter 與 Ctrl+Shift 快捷鍵。
  • 啟動時的雜訊:終端機對功能查詢的回應(^[[?1;2c)不再於啟動時以多餘文字出現;在 ssh 或瀏覽器終端機等慢速連線下,啟動時也不再有像 22c 這樣的多餘字元被輸入到提示中。
  • 壓縮:壓縮後告知 Claude 的 git 狀態現在是當下的狀態,而非工作階段開始時的狀態;當自動壓縮找不到完整的先前對話可摘要時,工作階段也不再永久卡在「Prompt is too long」。
  • /goal:在 API 錯誤、網路中斷或 token 上限之後不再悄悄停滯;目標現在會以退避方式重試,或暫停並說明原因,包括等到用量上限重置為止。
  • 署名:署名提醒不再覆蓋 CLAUDE.md 或記憶中禁止在 commit 與 pull request 加上署名的規則;由受管設定指定的署名行仍會套用。
  • 外掛安全性:為工作階段解壓縮的外掛封存檔不再能被其他本機使用者讀取,解壓縮後的檔案不再保留封存檔中的全域可寫入權限位元,過時的檔案也不再於重新解壓縮後殘留。
  • 外掛:透過受管設定啟用的組織外掛,現在會在無介面工作階段與 Claude Desktop(待 Desktop 內建此 CLI 版本後)中載入;會拒絕 shutdown 參數的外掛 LSP 伺服器(例如 rust-analyzer)也不再於工作階段結束後持續執行。
  • 無介面模式與 SDK:在回合中途切換模型或重試請求時,恢復的無介面工作階段不再遺失該回合的回覆;--output-format stream-json 結果中的 permission_denials 現在會包含被路徑範圍 deny 規則阻擋的 Read、Edit 與 Write 呼叫。
  • 中斷的回合:CLAUDE_CODE_RESUME_INTERRUPTED_TURN 不再重新執行超過 6 小時前(或設定時超過 CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS)因 API 錯誤而失敗的回合。
  • /btw:側邊提問現在會被告知不要寫出虛構的工具呼叫與輸出,若仍出現則會被標示為未執行。
  • MCP:遠端工作階段恢復時,同步的外掛 MCP 伺服器現在能正常連線;當更新後的設定只改變伺服器 URL 查詢參數的順序時,MCP 伺服器也不再重新連線。
  • Bedrock、Vertex、Foundry 與閘道:當帳號無法使用預設的 Opus 模型時,/insights 現在會改用工作階段的模型,而不是直接失敗。
  • 語言支援:日文、中文、泰文等詞與詞之間不加空格的語言,提示建議不再被捨棄;日文、中文與韓文的建議篩選現在也會保留混合文字與單一詞彙的建議。
  • 圖片與 Windows:CMYK JPEG 圖片現在可以正常附加,不再以「cannot decode」失敗;在 Windows 上,送到背景執行的 PowerShell 工具指令也不再於 Claude Code 結束時停止。
  • 回應速度:/diff 面板現在一步就會開啟完整內容;在長時間工作階段中,對話紀錄更新也不再為了建立收合的工具使用摘要而重新處理整段對話。
  • Claude Code on the web:現在可以在 Claude 讀取前收回雲端工作階段中排隊的訊息;在限制模型的組織中,/model default 不再導致之後的每則訊息都失敗;一次性的排程 routine 也不再因暫時性伺服器錯誤偶爾執行兩次。
  • Claude Tag:當你切換到組織尚未啟用的模型時,Claude 現在會拒絕並說明管理員可以啟用,而不是悄悄改用備援模型回答;routine 執行現在可以在既有討論串中回覆;管理設定中對 GitHub 安裝執行 Connect all 或 Disconnect 前也會先要求確認。

此版本共包含 98 項變更,完整清單請參閱官方變更日誌。

如何更新

  1. 檢查已安裝的版本:claude --version
  2. 就地更新:claude update
  3. 檢查以 ! 開頭的權限規則(現在只會在各自的設定來源內生效)以及任何 Bash(tee:*) 允許規則。若你需要遠端或無介面工作階段中舊有的「waiting for your input」狀態,請設定 CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0。

相關連結