跳至主要內容

Claude Code v2.1.300:Claude Platform on AWS 支援 /advisor、更嚴格的掛鉤輸入驗證與新的 mod API

Claude Code v2.1.300 在 Claude Platform on AWS 加入 /advisor,驗證掛鉤改寫的工具輸入,擴充 mod 與 OpenTelemetry,並移除 claude remote-control 原本沒有作用的 sandbox 旗標。

Claude Code v2.1.300 是一個大型版本,變更日誌共列出 88 個項目。此版本將 /advisor 帶到 Claude Platform on AWS、收緊掛鉤修改工具輸入時的處理方式、新增多個 mod API 與 OpenTelemetry 欄位,並調整請求壓縮、本機對話記錄與結束時的行為。其餘則是一長串修正,涵蓋 worktree、掛鉤、MCP、雲端與 Remote Control 會話,以及 VS Code。

新功能

Claude Platform on AWS 支援 /advisor

/advisor 現在可在 Claude Platform on AWS 上使用。在您透過 /advisor、advisorModel 或 --advisor 旗標選定 advisor 之前,不會有任何 advisor 執行;設定 CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 則可將其關閉。

掛鉤改寫的輸入現在會經過驗證

PreToolUse 與 PermissionRequest 掛鉤回傳的 updatedInput,現在會以與 Claude 自身工具輸入相同的方式驗證:未知的鍵會被捨棄,而工具拒絕的輸入會使該次呼叫遭到拒絕。另外,在 Cowork 雲端會話中,PermissionRequest 掛鉤允許決定裡的 setMode 更新現在會被忽略,其餘的核准內容仍然有效。

claude remote-control 移除 sandbox 旗標

claude remote-control 的 --sandbox 與 --no-sandbox 旗標原本就沒有作用,現已移除;傳入任一旗標都會以錯誤結束。若要讓會話在沙箱中執行,請在設定中設定 sandbox.enabled。

新的 mod API 與掛鉤

  • mod 提示裝飾中的 virtualText 可在提示輸入框內繪製文字,這些文字永遠不會進入草稿或送出的提示。
  • $.ui.view({ agentId }) 會在主畫面顯示某個代理的對話記錄,$.ui.view({}) 則返回原畫面。
  • mod 的 Text 新增 dir 屬性以支援由右至左的文字;在 Windows 與 VS Code 的終端機中,各行會依該方向閱讀並靠右對齊。
  • 新的 prompt.change 掛鉤會在提示輸入框的文字並非經由打字而改變時觸發,例如叫回歷史項目、清除、復原,或外掛填入內容。
  • agent.spawn 掛鉤現在可以改寫工作流程代理的 prompt 與 model;先前它只能拒絕工作流程代理。

OpenTelemetry 新增欄位

api_request 事件現在包含 cache_creation_5m_tokens 與 cache_creation_1h_tokens,依存留時間區分快取寫入。追蹤 span 也新增了 GenAI 語意慣例屬性,例如 gen_ai.provider.name、gen_ai.conversation.id、gen_ai.tool.name 與 error.type。

請求壓縮與更完整的本機對話記錄

即使停用遙測,送往 api.anthropic.com 的大型請求現在也會使用 gzip 壓縮;設定 CLAUDE_CODE_GZIP_REQUEST_BODIES=0 可將其關閉。本機會話的對話記錄現在也會記錄每個 API 請求的系統提示、工具與參數,因此當您選擇分享對話記錄時,可以精確重現該請求。

結束時強制終止背景指令

結束 Claude Code 時,若背景指令在被要求停止 1.5 秒後仍在執行,現在會被強制終止。先前在全螢幕模式下,這些指令可能會持續執行。

VS Code:claudeCode.attachSelection

新的 claudeCode.attachSelection 設定可讓編輯器中選取的文字不再被加入您的訊息。

Claude Tag:Slack Connect、核准卡片與語音片段

Owner 或 Claude Tag 管理員現在可以讓 Claude in Slack 在與其他組織共用的 Slack Connect 頻道中回覆;此功能預設關閉。需要您核准的連接器操作,現在會在 Slack 討論串中顯示僅您可見的 Allow once / Deny 卡片,讓 Claude 改為詢問而非直接拒絕。當 Slack 提供語音片段的逐字稿時,Claude 也能讀取。

修正與改進

  • Worktree:以 --worktree 啟動 Claude Code 時,外掛的 WorktreeCreate 與 WorktreeRemove 掛鉤現在會執行(--tmux 尚未支援);當標籤或分支名稱看起來像 commit ID 時,--worktree 會話不再有時從錯誤的 commit 開始。
  • 掛鉤:在背景指令仍在執行時結束,SessionEnd 掛鉤不再有時沒有執行。代理掛鉤現在會遵守其 model:haiku 等別名可正確解析、子代理的模型不再覆蓋它,而無法使用的模型會改用呼叫端的模型,而非直接允許該操作。
  • MCP:當 API 拒絕某個 MCP 工具的輸入 schema 時,對話不再每一輪都以 400 錯誤失敗;該工具在對話剩餘部分會以不帶參數的方式送出。自動工具搜尋(ENABLE_TOOL_SEARCH=auto)不再於對話中途關閉,例如在恢復會話後 MCP 伺服器重新連線期間。
  • Headless 與 Agent SDK 恢復:當壓縮發生在因輸出 token 上限而截斷的回覆之後,或同一輪中重試或未完成的回覆之後,恢復會話不再遺失最近的訊息或壓縮摘要。
  • 背景指令:背景指令執行期間,Claude 不再輪詢其輸出檔案或以 sleep 空等。
  • 守護程序:claude daemon stop --any 不再於卡住的背景服務仍在執行時印出「stopped」;現在會等待並強制終止該服務,若服務仍然存在則以結束碼 1 結束。
  • 登入:遭 forceLoginOrgUUID 拒絕的登入,不再把被拒組織的 token 留在儲存中。
  • 雲端會話:無法讀取組織政策時,每一輪不再卡住 5 分鐘;該輪現在會及時結束並說明原因。在 Cowork 雲端會話中,Write、Edit 與 NotebookEdit 不再對您本機電腦上的路徑回報成功(檔案實際上從未送達)。
  • Remote Control:claude remote-control 伺服器在短暫的登入錯誤(例如鑰匙圈被鎖定)後現在會重試,並在需要執行 claude /login 時發出警告。在同時服務多個會話的電腦上,仍在執行的會話不再被標示為已停止。
  • 任務:您曾傳送訊息的子代理,不再於完成後不久從 /tasks 中消失。
  • 網路:位於 TLS 檢查代理伺服器後方、且其憑證僅透過作業系統憑證存放區信任時,功能旗標與分階段推出不再停留在過時狀態。
  • 由主機管理的供應商:CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST 會話現在會忽略設定中的 CA bundle、工具代理、git TLS 與 git config 變數(例如 SSL_CERT_FILE);在 Claude Desktop 下,這只適用於專案設定。
  • VS Code:使用額度用完後,快速模式現在會關閉,而不是持續開啟並讓每個請求被拒絕後重送。在 WSL、SSH 與 Dev Container 視窗中,按住 Shift 將檔案從檔案總管或編輯器分頁拖曳到提示輸入框,現在可以正常插入。
  • Self-hosted runner:runner 與 orchestrator 不再於無人讀取其輸出時凍結;日誌會保留最新的 256 KiB 並計算捨棄的數量(Windows 除外)。
  • Code Review:具有寫入權限、但 GitHub 組織成員身分設為不公開的使用者所留下的 @claude review 留言,現在會啟動審查。

此版本共包含 88 項變更;所有項目請參閱完整變更日誌。

如何更新

  1. 檢查已安裝的版本:claude --version
  2. 直接就地更新:claude update
  3. 如果您以 --sandbox 或 --no-sandbox 啟動 claude remote-control,請移除該旗標(現在會以錯誤結束),改在設定中設定 sandbox.enabled。

相關連結