外掛掛鉤支援伺服器端工具記錄與組織審批上限
你在替 Claude 編寫自訂擴充模組時,外掛掛鉤(hook,特定事件發生時被觸發的小程式)現在能讀取更完整的背景資訊。模組執行步驟時會收到 API 自身調用的工具清單與時間戳記。權限檢查事件也新增了代理識別碼,方便區分主工作階段與子代理。企業組織規定的最高審批門檻現在會直接帶入判定。編輯器也補齊了主題色彩型別。
使用 claude plugin validate 驗證時,還能列出各掛鉤是否已設置錯誤捕捉處理。
發布日期:2026-10-05
你在替 Claude 編寫自訂擴充模組時,外掛掛鉤(hook,特定事件發生時被觸發的小程式)現在能讀取更完整的背景資訊。模組執行步驟時會收到 API 自身調用的工具清單與時間戳記。權限檢查事件也新增了代理識別碼,方便區分主工作階段與子代理。企業組織規定的最高審批門檻現在會直接帶入判定。編輯器也補齊了主題色彩型別。
使用 claude plugin validate 驗證時,還能列出各掛鉤是否已設置錯誤捕捉處理。
當你在公司環境中安裝個人擴充模組時,系統安全防線變得更嚴謹。以前個別模組發生衝突時,可能會意外卸載組織配發的官方外掛,甚至導致企業安全防護跳過檢查;現在系統會優先卸載引發衝突的使用者模組。即便掛鉤在工具執行前改寫了輸入內容,既有的權限規則與安全檢查依然會嚴格把關。
在終端機中查看擴充模組渲染的自訂面板或行內區塊時,畫面不會再一直重繪。以前若模組面板的樹狀結構每次繪製高度都在改變,畫面會陷入無止境的重繪;這個問題已經修好,不會再無止境重繪。如果模組輸出了包含中文等多行非拉丁字元的長文字,外掛掛鉤(hook,特定事件發生時被觸發的小程式)在每次重繪時也不再停頓。
開發複雜外掛時,各類掛鉤的狀態傳遞與異常處理更加穩健。以前帶有錯誤捕獲的掛鉤在忙碌時可能被誤卸載,模型備援(fallback,主模型異常時自動切換到替代模型)捨棄的工具調用也不會再殘留在記錄中。子代理在自動模式交付報告時,完成事件不再讀取到空內容。重新載入失敗後會清楚標示舊版已卸載。提示詞攔截與含空格路徑的結束掛鉤也不會再造成無聲忽略或無限循環。
當你建立或測試自己的擴充套件時,工具鏈的相容性與提示更加周到。以前使用 claude plugin validate 或載入模組時,若解構賦值變數與頂層函式同名會遭到拒絕,現在已能正常解析。升級後執行 claude plugin test 也不會因舊設定而卡住。內建的外掛編寫技能現在會主動提供安裝指令並寫入說明文件。桌面版應用程式的程式碼分頁在收到 /plugin 指令時,也會明確引導你到正確位置管理外掛。
擴充模組在呼叫外部程式或傳遞大量資料時,回報的訊息更具體。當一個模組產生的子行程(subprocess,由主程式啟動的獨立外部程式)被另一個模組攔截拒絕時,系統會清楚告知子行程曾執行但結果被扣留。掛鉤傳遞超長文字時,現在會自動裁切並記錄日誌,不再直接拒絕或無聲丟棄。針對本機目錄載入的外掛執行更新指令時,也會直接印出具體原因,不再加上多餘的失敗前綴詞。
透過企業應用程式閘道器登入時,授權介面與權限控制更加友善。瀏覽器審批頁面新增了拒絕按鈕,按下後能立即結束連線,終端機不必再乾等逾時。登入頁面也換上品牌字體、置中版面並支援深色模式。針對透過閘道器網址與金鑰連線、沒有直接 Anthropic 帳號的使用者,擴充模組現在也能正常啟用。
維運企業內部閘道器伺服器時,系統相容性與除錯診斷更加完整。閘道器支援的 PostgreSQL 資料庫最低版本從 14 放寬至 11,舊版資料庫在清理過期記錄時不再誤刪剛刷新的開發者身分。伺服器憑證主體為空時能正常啟動,憑證到期前 30 天會主動在日誌發出警告。若資料庫連線網址格式錯誤,系統會明確指出設定鍵與正確格式,上游雲端憑證失效時也會在日誌結尾標註根本原因。
在企業環境中分發統一設定檔時,系統能有效防止設定檔被惡意導向外部位置。當託管設定檔使用符號連結(symlink,指向另一個位置的捷徑檔)連到專屬目錄外時,系統會立即發出警示。若託管設定忽略了使用者配置的沙盒讀取路徑或網域,狀態檢查也會提醒。專案規則檔若捷徑連至工作目錄外,不再繞過目錄外讀取封鎖。MCP(Model Context Protocol,讓 AI 連接外部工具的協定)伺服器規則也能完整套用。
在團隊共用儲存庫中,個別專案的本機設定檔不再能私自關閉附件功能。CLAUDE_CODE_DISABLE_ATTACHMENTS 開關現在只能由使用者全域設定或企業託管設定控制,避免個別專案覆寫安全政策。在透過企業閘道器連線的環境中,背景指令與常駐服務不再意外向外部傳送遙測數據。而在 Windows 與 WSL 等慢速檔案系統上,讀取限制規則引發的啟動緩慢與失敗問題也已獲得解決。
你想快速搭建自動化代理架構時,新增的引導指令能幫你省下繁瑣的設定步驟。輸入 /claude-api managed-agents-onboard <網址> 或指定主控台(Console)快速入門範本名稱,就能直接生成設定檔並透過命令列工具套用。官方範例中也更新了權限策略,除非代理明確需要,否則預設會關閉網路搜尋工具以降低風險。
管理背景執行的對話時,操作變得更直覺且反應更靈敏。現在使用 claude attach <名稱> 或 claude logs <名稱> 時,直接輸入工作階段(session,工作階段)名稱的一部分就能連線,不必再複製落落長的識別碼。當你選擇全新重啟工作階段時,系統會開啟空白對話,不再誤發舊訊息。閒置移至背景的對話重啟後能完整恢復記錄,載入大型對話時輸入與畫面也不再凍結。
當你想要撤回或倒帶剛才發送的指令時,介面操作變得極為流暢。以前對話中若貼上過超長程式碼或除錯追蹤記錄,按兩下 Esc 或輸入 /rewind 開啟倒帶選單時,每次按鍵都會卡頓數百毫秒;現在選單已不會延遲。在 Claude 處理過程中送出的提示詞也會正確列出。在清空輸入框後按兩下向左方向鍵切換工作階段時,不必再刻意等待間隔,長按方向鍵也能直接切換。
在 claude agents 代理總覽視窗中切換各項任務時,鍵盤操作不再容易引發意外誤刪。以前在搜尋後按下 Esc 或重複按 Ctrl+X,焦點可能會跳到區塊標題並意外刪除整組工作階段;現在 Esc 鍵只會重新開啟工作階段,絕不會誤確認重啟提示。背景代理跳出授權請求時,畫面上會明確提示可使用 Ctrl+X Ctrl+K 快捷鍵一次停止所有背景代理。
當你從代理總覽介面控制正在忙碌的背景工作階段時,參數調整會立即生效。現在發送 /model、/effort 或 /rename 指令不必等待當前輪次結束或手動確認,系統會當場套用新設定。以前未能成功送達停止工作階段的斜線指令或選擇題答案,重啟時不再自動擅自執行。若背景工作階段剛好崩潰重啟,發送的回覆也會自動重試最多 12 秒以確保送達。
在背景運行多個代理時,狀態監控與環境升級更可靠。以前背景工作階段在建立並切換至工作樹(worktree,Git 讓同一專案平行開多份副本的功能)後,總覽介面會遺失執行計數與倒數計時;現在狀態列資訊會持續同步。執行 /clear 清除對話後計數會重新計算。手動授權模式下貼入圖片不再重複跳出讀取確認。透過 Homebrew 升級後出現「Couldn't restart the background service」、背景工作階段停止的問題也已修好,但這個修正要等再下一次升級才會生效。
你為 Claude 設定定期排程(例如使用 /loop 隔段時間自動檢查進度)時,定時甦醒機制更為可靠。以前對話壓縮後再恢復,排程任務會無聲消失;現在不會,但只涵蓋這個版本起做的壓縮。前景排程在按 ← 或 /background 交接後,以前永遠不會觸發,現在會觸發;循環排程在 resume、respawn、fork 時以前會多跑一次,現在不會。若雲端工作階段因容器重啟導致排程遺失,Claude 會被告知並可重新排程。排程消失的背景工作階段約 20 秒後會轉為完成狀態。
多個子代理在背景協同工作時,權限隔離與運算狀態更加穩定。以前主工作階段切換至不同工作樹時,背景子代理會意外失去自己目錄的寫入與 Bash 執行權限;現在已能維持獨立存取。當 Mac 電腦從睡眠中喚醒時,背景代理不再因停滯而報錯中斷。執行途中收到訊息的子代理與隊友,不會再遺失先前的思考過程與快取(cache,把算過/查過的結果暫存起來直接用)。團隊成員的代理識別碼也更加清晰,子代理閒置時不再誤觸發隊友掛鉤。
查看背景常駐服務(daemon,在背景持續執行的支援程式)日誌時,終端機畫面不會再被特殊控制字元干擾。在執行 claude daemon run 與 claude daemon logs 輸出的日誌中,控制字元現在會安全轉義為 \uXXXX 編碼顯示,多行訊息也整合為單行 JSON 格式以利程式解析。背景工作單元在重啟時,若未明確同意免責宣告,絕不會自動套用 --allow-dangerously-skip-permissions 參數,確保操作權限安全。
執行終端機命令時,權限檢查有幾處漏洞補上了。以前用 declare、export 等前綴設定變數,再拿變數組出指令或路徑時,拒絕或詢問規則可能漏掉它;現在會正確比對。rg、git grep 這類唯讀指令的參數若會被 Shell 展開成萬用字元,以前會直接放行,現在改成先問你;zsh 與 bash 讀法不同的變數名稱也一樣。唯讀指令某些選項值裡的萬用字元,現在也會套用讀取拒絕規則與目錄外讀取封鎖。pyright 不再算唯讀指令,更多 ps 寫法也會先詢問。
在沙盒隔離環境中執行腳本時,流程更順暢且效能更好。以前將多行文字透過管線傳遞至其他指令(例如 cat <<EOF | python3)時,每次都會反覆跳出確認,現在沙盒自動放行機制已能正常識別。使用 git clone 短選項時能與完整選項一樣正確套用豁免規則。在 Linux 與 WSL 環境下,沙盒讀取規則涵蓋超大資料夾時不會再造成 /sandbox 設定頁面凍結。監控工具指令也會忠實遵循使用者的權限設定。
當你開啟安全限制或計畫模式時,敏感操作的防護機制更嚴密。以前在計畫模式下,自動分類器可能會誤放行帶有詢問策略的非唯讀連接器工具;現在這類請求均會被攔截。在受限模式(--restricted)下,系統不會再開啟跨工作階段的通訊端。透過中繼通道授權時,同一工作階段內重複的回覆識別碼會被自動忽略,避免誤核准不同的提示詞。修改設定檔符號連結(symlink,指向另一個位置的捷徑檔)指向的實際檔案時,也一定會跳出權限確認提示。
在提示詞中提及檔案或拖曳圖片時,路徑安全防護更滴水不漏。以前在 macOS 與 Windows 讀取圖片時,若連結在讀取中途被換掉,可能讀到核准範圍外的檔案;用 @ 提及檔案時,讀取中途被換掉的符號連結(symlink,指向另一個位置的捷徑檔)也可能讓 Claude 讀到工作目錄以外的檔案。這個問題已經修好,讀取中途被換掉的連結不會再讓 Claude 讀到核准範圍外的檔案。拖曳或貼入的圖片路徑以及提及資料夾內的檔名,現在均會嚴格套用讀取拒絕規則。提及子目錄檔案時也會正確附帶該目錄下的 AGENTS.md 設定說明檔。
當對話與操作中包含超長字串或機敏金鑰時,終端機不會再突然卡住。以前機敏資料掃描與遮蔽機制遇到極長連續文字、或是類似金鑰的 token(授權令牌)長字串時,授權提示視窗會導致終端機畫面直接凍結數秒;現在已修復凍結問題,掃描與提示都能順暢進行。若處理的檔案名稱中包含換行字元,以前在檔案工具報錯與授權提示視窗中會排版錯亂,現在也能正確排版並完整顯示檔案名稱。
當你使用 /ultrareview 請求深度審查當前工作區時,各種邊界環境下的程式碼打包更安全。以前在 Windows 環境下若暫存失敗可能無聲遺失未提交的變更,開啟換行安全檢查或在新版 Git(分支存於目錄外)中也可能導致上傳失敗或遺漏修改;現在這些情境都能妥善處理。若 git 過濾驅動程式剛好取名為 unset 或 unspecified,上傳會中止並請你把它改名,避免上傳未過濾的檔案。
執行程式碼同步或遠端審查遇到問題時,錯誤提示變得更親切且容易理解。以前 Git 步驟失敗時常會印出一整段生硬的原始報錯,現在提示訊息長度縮短一半,會直接點出失敗步驟與具體排解建議。在執行合併或拉取等連鎖指令時,變更檔案清單會以簡潔列表呈現。使用 /teleport 遷移若遇到同名資料夾衝突,系統也會明確拒絕並說明原因以防止檔案遺失。
在終端機中使用計畫模式構思架構時,中斷恢復更加可靠。雲端工作階段的容器重啟前,尚未呈現的計畫不再遺失;用 --continue 或 --resume <session-id> 恢復工作階段時,計畫模式也會還原。在 Windows 上儲存為 CRLF 換行格式的自訂技能指令已能正常執行。當技能資料夾名稱與 SKILL.md 裡的名稱不同(例如非英文名稱)時,用 SKILL.md 裡的名稱也找得到技能,清單會同時顯示兩種名稱。含 tab 與換行以外的原始控制字元的 ! 指令會被拒絕執行,並指出位置。
透過公司內部代理伺服器連線時,請求傳輸的穩定性更為可靠。以前代理伺服器若拒絕特定測試標頭,連線會直接中斷,現在系統已能相容各種非標準狀態碼;專案設定的自訂端點也能在首次請求時正確生效。在超長遠端控制或雲端工作階段中,回覆內容會即時逐字串流輸出,不再整塊延遲跳出。無頭模式(headless,沒有終端機畫面的執行模式)傳輸結構化輸出後若連線中斷,也不會再誤回傳錯誤狀態。電腦睡眠喚醒後的串流中斷亦獲得修正。
在進行長時間的複雜分析時,系統能應付更龐大的圖文資料。以前工作階段累積數百張圖片時,常會遭遇「無法處理」的錯誤而卡住,現在已能穩定解析。如果 Claude 在深入思考時回覆意外遭到內容過濾器中斷,系統會自動重新嘗試一次再回報錯誤。切換至備援模型時,思考力度設定不會被意外覆蓋重設;使用 SDK 搭配 --include-partial-messages 時,若串流中斷也能精準接收對話輪次結束訊號。
連接外部擴充服務(MCP,讓 AI 連接外部工具的協定)時,系統的資源管理更具防護力。HTTP MCP 伺服器回傳超大回應時,記憶體不會再無限增長,這個問題已經修好。若外部工具名稱中含有大量組合符號,清單解析時不再卡死。在網路代理環境下,若伺服器遭到 HTTP 403 封鎖,系統會立即跳過不再反覆重試三次。重新登入或恢復連線後,企業配發的工具也不會被誤標為個人工具。
在互動式工作階段中請 Claude 讀取超長網頁或搜尋最新資訊時,資料擷取不再受限於單次上限。以前讀取超過十萬字元的網頁時,超出部分會被無聲截斷;現在系統會明確回報未讀取長度,並能傳入位移參數(offset)接續讀取。網路搜尋的呼叫次數不再是固定 200 次用完為止,改為每小時自動補充 100 次額度(quota,可用次數配額)。國際化網域名稱的放行規則匹配也更一致。
你在輸入框一次貼入大量資料或多段內容時,編輯體驗更流暢。以前連續貼上文字或包含特殊重音符號的檔名時,部分內容可能被誤當成手動逐字輸入送出;現在已修正為單一完整的貼上區塊。即使發送極長訊息,終端機也不會凍結。按 Ctrl+O 展開包含箭頭與線條等非 ASCII 符號的龐大對話記錄時不再變慢。回覆中即便包含數千層的巢狀清單或引文,也不會再引發堆疊溢位而導致程式崩潰。
長時間對話累積過多內容時,背景自動整理機制運作更順暢。以前當 Mac 電腦在背景執行自動壓縮時進入睡眠,喚醒後常會出現「提示詞過長」錯誤而直接放棄;現在喚醒後已能正常接續完成壓縮作業。對話壓縮整理過程中不再偶發出現物件為空的錯誤。畫面上提示重要脈絡的「你該知道的事」(You should know)筆記區塊,現在會忠實遵循你設定的 language 語言偏好,不再強制以英文顯示。
在不同裝置或系統上進行登入授權時,憑證讀取更為可靠。在 macOS 上使用 /login 登入時,若系統鑰匙圈(credential store,存登入證明的地方)拒絕寫入,終端機會如實回報失敗而非謊報成功。完成登入或已有金鑰檔案時,初次啟動不會再重複跳出登入選單。CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS=5m 以前被當成 5 毫秒;帶 m 這類單位字尾的值不會再被當成毫秒,現在會改用預設的 dialogExpiry。雲端工作階段未登入時也會給予清晰的登入指引。
日常打字與叫出選單時,介面視覺與診斷訊息更加清楚。當你輸入 / 或 @ 叫出建議清單時,當前選取的項目開頭會顯示明顯的箭頭指標,即使終端機關閉色彩也能一眼辨識。若系統缺少 Git 等相依工具,報錯時會直接點名缺失的程式名稱。全螢幕搜尋時切換權限分頁不再卡死。讀取二進位檔案時會提示可用工具。/code-review 在中等力度(medium effort)下,對包含 Opus 5.5 與 Sonnet 5.5 等未調校過審查設定的模型,也會另外回報程式整理與 CLAUDE.md 慣例方面的發現。
讓 Claude 操控瀏覽器抓取網頁或進行自動化測試時,穩定性明顯提升。批次瀏覽操作的逾時上限從 60 秒放寬至 90 秒,給予複雜網頁更充足的載入時間。若連線中斷,在 /chrome 選單點擊重新連線擴充套件能正確恢復瀏覽器工具。瀏覽器選擇器的提示訊息更加精確。個別專案的設定檔不再能私自啟用瀏覽器整合,必須由使用者手動開啟。
在企業自家伺服器架設自託管執行器(Self-hosted runner,在自家主機上跑代理任務的環境)時,抗壓性與對話恢復更穩定。當工作階段目錄使用相對路徑的符號連結時,執行器重啟後恢復任務不再誤報工作樹衝突。遇到單行極長的錯誤日誌輸出時,主程式也不會再卡住數秒。透過指定環境參數建立對話時,底層改由標準 API 建立並保持一致的識別碼格式。
在雲端工作階段中與 Claude 協作時,各項工具與成品互動更加順手。以前當雲端容器在 Claude 送出訊息或檔案後剛好重啟,回覆內容可能會卡在未完成狀態;現在已能順利收尾。在雲端工作階段內部啟動執行時成品操作能正常運作。終端機剛啟動時整個工作階段的自訂別名與路徑不會意外遺失。輸入 /artifacts 在瀏覽器打開成品後,終端機中的選單清單會自動關閉。
透過遠端工作階段傳輸檔案或下載外掛時,處理流程更為嚴謹。以前一次同時傳送四個以上的檔案時,部分檔案可能被誤判為非核准項目而遭到拒絕;現在多檔案批次傳送已能正常接收處理。市集下載資料夾同名引發的下載衝突問題已修正。在雲端工作階段中使用內建 gh api 指令時,若在環境變數中設定了非官方主機,系統會拒絕連線並要求使用 --hostname 或完整網址,確保連線安全。
在 VS Code 編輯器中使用 Claude 擴充套件時,介面細節與無障礙體驗進一步提升。對話中的每則訊息現在預設都會顯示發送時間戳記。滑鼠懸停在檔案標籤上時會顯示相對於專案的完整路徑,方便區分不同資料夾中的同名檔案。在 Claude 運算中發送訊息時螢幕閱讀器會語音提示排隊中。外掛管理視窗可直接執行安裝指令。編輯器重載後也能接續完成中斷的任務步驟。
VS Code 擴充套件在處理背景程序與工作階段切換時更加穩定。以前開啟空白聊天視窗後若直接載入已儲存的工作階段,原本的空白對話會在背景殘留執行程序;現在未使用的程序會如實關閉釋放資源。彈出式授權請求不再搶奪其他對話框的鍵盤焦點,避免誤觸確認。分支切換視窗無法檢查未提交變更時不再貿然提供切換選項。代理階層圖表已能正確呈現巢狀子代理的從屬關係。登入或建立新工作階段失敗時,也會明確提示找不到主程式的原因。
在雲端網頁版查看 Claude 工作狀態時,介面回饋更即時。以前 Claude 說完答案後,運算中的旋轉圖示常會多轉好幾秒甚至看似一直在運作;現在回覆完畢當下狀態燈就會立刻停止。點擊「立即執行」例行任務後,歷史紀錄分頁會馬上列出新執行的記錄,不再卡在尚無執行紀錄的畫面。未封存的工作階段也不會再看似持續運作。透過環境變數關閉提示詞建議的設定,也能在全新雲端工作階段中正確生效。
你剛在電腦上啟動遠端操控(Remote Control,從其他裝置遠端接管終端機的功能),想立刻切換到新工作階段連線操作時,不再需要枯等裝置上線。以前剛啟動遠端操控的電腦,最多需要等待一分鐘才會出現在新工作階段的遠端操控選單中;現在幾秒鐘之內就會列出並可立即連線。
在 Slack 中與 Claude 討論時,你可以更靈活地控制回覆速度與安全權限。在討論串中標註 Claude 並加上 !fast 即可切換為快速模式,必要時會把討論串改用 Opus,回覆內容會標註提示,打 !fast off 就能切回標準模式。在存取權限組合包建立自訂連線時,新增了路徑前綴欄位,讓放行規則精準限制在特定目錄路徑。頻道自訂指示的字數上限改以 8,192 字元計算,讓中文等非英文指令擁有完全相同的充裕篇幅。
在 Slack 團隊工作區管理 Claude 的各項整合時,權限控制與錯誤回饋更加精確。擁有管理權限的成員現在能正常查看工作區與頻道記憶庫檔案。當訪客點擊設定卡片時,系統只會向該訪客顯示拒絕提示,不會誤把全體成員的確認按鈕移除。頻道排程任務每次啟動新工作階段時,會固定使用頻道預設模型。個人方案用量達上限時會在私訊即時通知重設時間。若無法啟動工作階段也會清楚說明原因與排除方式。
在程式碼拉取請求(PR,向專案提報修改的合併請求)中查看自動審查回饋時,評語標籤與提示訊息更加嚴謹。以前重大阻擋級的修改建議開頭有時會被誤標為微小瑣碎問題(nit),導致嚴重程度前後矛盾;現在標籤已與實際嚴重性保持一致。若組織已明確關閉程式碼審查功能,在分叉儲存庫或手動模式的拉取請求中,不會再自動張貼 @claude review 提示留言。
When writing custom extensions for Claude, plugin hooks can now access more complete contextual information. During execution steps, modules receive timestamps and the list of tools invoked by the API itself. Permission check events now include an agent identifier to distinguish between the main session and subagents. Maximum approval thresholds set by enterprise organizations are now factored directly into evaluations. The editor has also filled in theme color types.
When validating with claude plugin validate, you can also see whether error-handling logic is configured for each hook.
When installing personal extensions in a corporate environment, system security safeguards are now more rigorous. Previously, module conflicts could accidentally unload officially provisioned enterprise plugins and cause security defenses to bypass checks; the system now unloads the conflicting user module first. Even if hooks rewrite input content before tool execution, existing permission rules and security checks still guard the process strictly.
When viewing custom panels or inline blocks rendered by extensions in the terminal, the screen will no longer rerender continuously. Previously, if a module panel's tree structure changed height on every draw, the display fell into infinite rerenders; this issue has been resolved so infinite redraw loops no longer occur. If a module outputs long multiline non-Latin text such as Chinese characters, plugin hooks no longer stall during each rerender.
When developing complex plugins, state passing and exception handling across various hooks are much steadier. Previously, hooks with error catching could be unloaded by mistake under heavy load, and tool calls discarded by model fallbacks no longer linger in logs. When subagents deliver reports in auto mode, completion events no longer read empty content. Failed reloads now clearly indicate that the previous version has been unloaded. Prompt interception and teardown hooks with spaced paths also no longer trigger silent ignores or infinite loops.
When building or testing your own extensions, toolchain compatibility and guidance are more thoughtful. Previously, using claude plugin validate or loading modules rejected destructuring assignment variables sharing names with top-level functions, but they now parse correctly. Running claude plugin test after an upgrade also avoids getting stuck on legacy configurations. The built-in plugin authoring skill now proactively provides install commands and writes them to documentation. When receiving the /plugin command, the desktop app's code tab clearly guides you to the right place to manage plugins.
Extensions provide more specific messages when calling external programs or passing large amounts of data. When a subprocess spawned by one module is intercepted and rejected by another, the system clearly explains that the subprocess ran but its output was withheld. When hooks pass oversized text, the system now automatically truncates and logs it rather than rejecting it outright or silently discarding it. Running update commands on plugins loaded from local directories also prints the exact reason directly, without extraneous failure prefixes.
When logging in through an enterprise application gateway, authorization interfaces and permission controls are much friendlier. A new reject button on the browser approval page terminates the connection immediately, so the terminal no longer has to wait out timeouts. The login page also adopts brand typography, a centered layout, and dark mode support. For users connecting via gateway URLs and keys without direct Anthropic accounts, extensions can now be enabled normally.
When maintaining internal enterprise gateway servers, system compatibility and debugging diagnostics are more thorough. The minimum supported PostgreSQL database version has been lowered from 14 to 11, and legacy databases no longer accidentally purge freshly refreshed developer identities when cleaning expired records. Servers with empty certificate subjects can now boot normally, and the system actively logs warnings 30 days before certificates expire. If a database connection URL is malformed, the system highlights the configuration key and the correct format, while also appending the root cause to log ends when upstream cloud credentials fail.
When distributing unified configuration files across enterprise environments, the system effectively prevents configs from being maliciously redirected to external locations. If a managed settings file uses a symlink outside its dedicated directory, the system immediately issues a warning. Health checks will also alert you if managed settings ignore user-configured sandbox read paths or domains. Project rule files linked outside the working directory no longer bypass restrictions on out-of-directory reads. Model Context Protocol (MCP) server rules can also be fully applied.
In shared team repositories, local configuration files for individual projects can no longer disable attachment functionality on their own. The CLAUDE_CODE_DISABLE_ATTACHMENTS toggle can now only be controlled by global user settings or enterprise managed settings, preventing individual projects from overriding security policies. In environments connected through an enterprise gateway, background commands and daemon services no longer unintentionally send telemetry data externally. On slower file systems such as Windows and WSL, startup lag and launch failures caused by read restriction rules have also been resolved.
When you want to set up an automated agent architecture quickly, the new onboarding command saves you tedious configuration steps. Entering /claude-api managed-agents-onboard <url> or specifying a Console quickstart template name directly generates configuration files and applies them via command-line tools. Official samples also update permission policies, disabling web search tools by default to reduce risk unless an agent explicitly requires them.
Managing conversations running in the background is now more intuitive and responsive. When using claude attach <name> or claude logs <name>, you can connect by entering part of a session name directly, without copying lengthy IDs. When you choose to restart a session from scratch, the system opens a blank conversation instead of accidentally resending old messages. Idle conversations moved to the background fully restore their history upon restarting, and loading large conversations no longer freezes input or rendering.
When you want to revert or rewind previously sent prompts, interface interactions feel much smoother. Previously, if long code snippets or stack traces had been pasted into the conversation, pressing Esc twice or running /rewind to open the rewind menu caused several hundred milliseconds of keypress lag, but the menu now opens without delay. Prompts submitted while Claude is processing are also correctly listed. After clearing the input box, double-tapping the left arrow key to switch sessions no longer requires deliberate pauses, and holding down the arrow key switches sessions directly.
When switching between tasks in the claude agents overview window, keyboard navigation is no longer prone to accidental deletions. Previously, pressing Esc after searching or pressing Ctrl+X repeatedly could shift focus to section headers and accidentally delete entire sessions; now Esc only reopens a session and never mistakenly confirms restart prompts. When background agents trigger permission requests, the screen clearly indicates that the Ctrl+X Ctrl+K shortcut can stop all background agents at once.
Adjusting parameters while controlling busy background sessions from the agent overview interface now takes effect immediately. Sending /model, /effort, or /rename commands applies new settings on the spot without waiting for the current turn to finish or requiring manual confirmation. Slash commands or multiple-choice answers that previously failed to reach a stopped session are no longer automatically executed upon restarting. If a background session crashes and restarts, sent replies automatically retry for up to 12 seconds to ensure delivery.
Status monitoring and environment upgrades are more reliable when running multiple background agents. Previously, when a background session was created and switched to a worktree, the overview interface lost run counts and countdown timers; status line information now stays synchronized continuously. Running /clear resets and recalculates the count. Pasting images in manual permission mode no longer repeatedly prompts for read confirmation. An issue where upgrading via Homebrew displayed "Couldn't restart the background service" and halted background sessions has been fixed, though this fix takes effect starting with the subsequent upgrade.
Scheduled wakeup mechanisms are more reliable when setting up periodic schedules for Claude, such as using /loop to check progress at intervals. Previously, scheduled tasks silently disappeared when a conversation resumed after compaction; this is now prevented, though it applies only to compactions performed from this version onward. Foreground schedules handed off via ← or /background previously never fired, but now trigger properly; recurring schedules previously ran an extra turn during resume, respawn, or fork, but no longer do. If cloud sessions lose schedules due to container restarts, Claude is notified and can reschedule them. Background sessions whose schedules disappear transition to a completed state after about 20 seconds.
Permission isolation and compute states are more stable when multiple subagents collaborate in the background. Previously, when the main session switched to a different worktree, background subagents unexpectedly lost write and Bash execution permissions for their own directories; independent access is now maintained. When a Mac wakes from sleep, background agents no longer stall or crash with errors. Subagents and teammates receiving mid-execution messages no longer lose prior reasoning chains or caches. Teammate agent IDs are also clearer, and idle subagents no longer mistakenly trigger teammate hooks.
Terminal displays are no longer disrupted by special control characters when viewing daemon logs. In logs output by claude daemon run and claude daemon logs, control characters are now safely escaped as \uXXXX encodings, and multiline messages are consolidated into single-line JSON formatting for programmatic parsing. When background worker units restart without explicitly accepting the disclaimer, the --allow-dangerously-skip-permissions flag is never automatically applied, ensuring safe operational permissions.
Several gaps in permission checks during terminal command execution have been resolved. Previously, when variables were defined with prefixes like declare or export and then used to construct commands or paths, deny or prompt rules could miss them; they are now matched correctly. If arguments for read-only commands like rg or git grep expand into wildcards via the shell, they are now prompted instead of directly allowed; the same applies to variable names interpreted differently between zsh and bash. Wildcards in certain option values of read-only commands also now enforce read denial rules and out-of-directory read blocks. pyright is no longer treated as read-only, and additional ps command variations now require confirmation.
Running scripts inside the sandbox isolated environment is smoother and more efficient. Piping multiline text into other commands (such as cat <<EOF | python3) previously triggered repeated confirmation prompts every time, but the sandbox auto-approval mechanism now recognizes it properly. Short flags for git clone now correctly apply exemption rules just like long flags. On Linux and WSL, sandbox read rules that cover massive directories will no longer freeze the /sandbox configuration page. Monitoring tool commands also faithfully respect user permission settings.
Safeguards for sensitive operations are tighter when you enable security restrictions or Plan mode. Previously under Plan mode, the automatic classifier could mistakenly allow non-read-only connector tools that carried an ask policy, but such requests are now intercepted. Under restricted mode (--restricted), the system no longer opens cross-session sockets. When authorizing via relay channels, duplicate reply identifiers within the same session are automatically ignored to prevent mistakenly approving different prompts. Modifying the target file behind a configuration symlink will now also reliably trigger a permission confirmation prompt.
Path security is more comprehensive when mentioning files or dragging images into prompts. Previously on macOS and Windows when reading images, if a link was swapped mid-read, it could access files outside the approved scope. Mentioning files with @ also risked letting Claude read files outside the working directory if a symlink was swapped during reading. This issue is now fixed, and links swapped mid-read will no longer let Claude access files outside the approved scope. Dragged or pasted image paths and filenames within mentioned folders now strictly apply read deny rules. Mentioning files in subdirectories also properly includes the AGENTS.md configuration file located in that directory.
The terminal no longer abruptly freezes when conversations and operations involve extremely long strings or sensitive keys. Previously, when sensitive data scanning and redaction encountered very long continuous text or key-like token strings, authorization dialogs caused the terminal UI to freeze for several seconds. That freeze issue is now resolved, allowing scanning and prompts to proceed smoothly. If a processed filename contains newline characters, formatting that previously broke in file tool errors and permission prompts now renders correctly and displays the full filename.
Packaging code across edge-case environments is safer when requesting an in-depth review of your current workspace with /ultrareview. Previously on Windows, a stash failure could silently discard uncommitted changes, while enabling newline safety checks or using modern Git versions where branches reside outside the directory could cause upload failures or missed edits. These scenarios are now handled properly. If a git filter driver happens to be named unset or unspecified, the upload aborts and asks you to rename it to prevent uploading unfiltered files.
Error messages are clearer and more approachable when running into issues during code synchronization or remote review. When Git steps fail, instead of dumping raw error logs, message lengths are cut in half to directly highlight the failed step along with specific troubleshooting suggestions. Chained operations like merge or pull now present changed files in a concise list. When migrating with /teleport, directory name collisions are explicitly rejected with explanatory reasons to prevent file loss.
Resuming interrupted sessions is more reliable when architecting in Plan mode inside the terminal. Unrendered plans are no longer lost before cloud session containers restart, and resuming a session with --continue or --resume <session-id> properly restores Plan mode. Custom skill commands saved with CRLF line endings on Windows now execute normally. When a skill folder name differs from the name inside SKILL.md (such as a non-English name), the skill is still discoverable by the name in SKILL.md, and listings display both names. Any ! command containing raw control characters other than tabs and newlines will be rejected with its location indicated.
Request transmission is more reliable when connecting through enterprise proxy servers. Connections that previously dropped when a proxy rejected specific test headers now tolerate non-standard status codes. Custom endpoints defined in project settings also take effect on the initial request. In very long remote-control or cloud sessions, responses stream token-by-token in real time rather than popping up in delayed blocks. Disconnections after streaming structured output in headless mode no longer report false error statuses. Streaming interruptions after waking a computer from sleep are also resolved.
Long, complex analysis can now carry much larger amounts of multimodal data. Sessions with hundreds of accumulated images that previously broke with "failed to process" errors now parse reliably. If Claude's response during extended thinking is unexpectedly cut off by a content filter, the system automatically retries once before reporting an error. Switching to a fallback model no longer accidentally overrides or resets thinking effort settings. When using the SDK with --include-partial-messages, turn-complete signals are accurately received even if streaming is interrupted.
Resource management is more resilient when connecting to external extension services via MCP. Memory no longer grows unbounded when an HTTP MCP server returns massive responses; this issue is now fixed. Listing parsing no longer hangs when external tool names contain numerous combining characters. In proxied environments, if a server is blocked with HTTP 403, the system skips it immediately instead of repeatedly retrying three times. Enterprise-provisioned tools are also no longer mislabeled as personal tools after re-authenticating or reconnecting.
When asking Claude to read long web pages or search for up-to-date information in interactive sessions, data retrieval is no longer bounded by a single-turn limit. Previously, reading web pages over 100,000 characters silently truncated anything beyond that limit. Now, the system explicitly reports unread length and accepts an offset parameter to resume reading. Web search call limits are no longer fixed at 200 total uses; instead, 100 quota units are automatically refilled every hour. Allowlist rule matching for internationalized domain names is also more consistent.
Pasting large volumes of data or multiple chunks of content into the input box now offers a smoother editing experience. Previously, pasting text in rapid succession or filenames with special accented characters could misidentify parts of the content as manual keystroke input; this is now fixed to paste as a single cohesive block. Terminals no longer freeze even when sending extremely long messages. Pressing Ctrl+O to expand large conversation histories containing non-ASCII symbols like arrows and lines no longer lags. Even when responses contain thousands of layers of nested lists or blockquotes, they no longer trigger stack overflows that crash the application.
When long conversations accumulate excessive content, the background compaction mechanism runs more smoothly. Previously, if a Mac computer went to sleep during background compaction, waking it up often failed with a "prompt too long" error that caused it to give up entirely. Now, it reliably resumes and finishes the compaction job after wake-up. Empty-object errors no longer occur intermittently during compaction. The "You should know" notes callout on screen, which highlights key context, now faithfully follows your configured language preference instead of forcing English.
Credential reading is more reliable when authenticating across different devices or operating systems. When logging in with /login on macOS, if the system keychain rejects write attempts, the terminal accurately reports the failure instead of falsely claiming success. First launches no longer repeatedly prompt the login menu when already authenticated or when key files exist. Setting CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS=5m was previously parsed as 5 milliseconds; values with unit suffixes like m are no longer treated as milliseconds and now fall back to the default dialogExpiry. Unauthenticated cloud sessions also provide clearer login guidance.
Visual indicators and diagnostic messages are clearer when typing and opening menus. When typing / or @ to summon suggestion menus, an arrow indicator marks the currently selected item so you can spot it immediately even with terminal colors disabled. If required dependency tools like Git are missing, error messages name the exact missing binary. Switching permission tabs during full-screen search no longer freezes. Reading binary files now provides tips on available tools. Under medium effort, /code-review also reports code cleanup and CLAUDE.md convention findings for untuned review models, including Opus 5.5 and Sonnet 5.5.
Stability is significantly improved when having Claude drive browser interactions for page scraping or automated testing. The timeout cap for batch browser actions has increased from 60 seconds to 90 seconds, granting complex web pages more time to load. If disconnected, clicking reconnect extension in the /chrome menu properly restores browser tools. Prompt messages for the browser picker are now more precise. Individual project configuration files can no longer automatically enable browser integration without explicit manual activation by the user.
Resilience and conversation recovery are more dependable when deploying self-hosted runners on internal servers. When session directories use relative symlinks, resuming tasks after a runner restart no longer falsely reports worktree conflicts. The main process no longer freezes for several seconds when encountering extremely long single-line error log outputs. Creating sessions with specified environment parameters now routes through standard APIs under the hood, maintaining consistent identifier formatting.
Tooling and artifact interactions are smoother when collaborating with Claude in cloud sessions. Previously, if a cloud container restarted right after Claude sent messages or files, the response could get stuck in an incomplete state; it now wraps up cleanly. Artifact operations work properly when launched from within cloud sessions. Custom aliases and paths across the session are no longer accidentally lost when the terminal launches. Typing /artifacts to open an artifact in the browser now automatically closes the menu list in the terminal.
File transfers and plugin downloads in remote sessions follow stricter workflows. Previously, transferring four or more files at once could misclassify some files as unapproved and reject them; batch multi-file transfers are now accepted and processed normally. Download conflicts caused by identical marketplace directory names have been resolved. When using the built-in gh api command in cloud sessions, configuring unofficial hosts via environment variables is rejected in favor of --hostname or full URLs to guarantee connection security.
Interface polish and accessibility are improved when using the Claude extension in VS Code. Every message in conversations now displays a sent timestamp by default. Hovering over file tabs displays full paths relative to the project, making it easy to distinguish identical filenames across different folders. When sending messages while Claude is busy computing, screen readers announce queued status. The plugin management interface can execute install commands directly. Reloading the editor also resumes interrupted task steps.
The VS Code extension is now more stable when handling background processes and session switching. Previously, opening an empty chat window and directly loading a saved session left running processes lingering in the background; unused processes now close properly to release resources. Pop-up authorization requests no longer steal keyboard focus from other dialogs, preventing accidental confirmations. The branch-switching window no longer offers switch options prematurely when unable to check uncommitted changes. The agent hierarchy chart accurately renders nested subagent relationships. When login or creating a new session fails, the system clearly explains why the main binary could not be found.
Interface feedback is more immediate when checking Claude's working status on the cloud web interface. Previously, after Claude finished answering, the active spinner icon often spun for several extra seconds or appeared to run indefinitely; the status indicator now stops immediately the moment a reply finishes. Clicking "Run now" on scheduled tasks instantly displays the new run in the history tab instead of staying stuck on an empty screen. Unarchived sessions no longer appear to remain running continuously. Disabling prompt suggestions via environment variables also takes effect properly in fresh cloud sessions.
When you launch Remote Control on your computer to connect and operate immediately from a new session, you no longer have to wait around for the device to come online. Previously, a computer with newly launched Remote Control took up to one minute to appear in the Remote Control menu of a new session; it is now listed within seconds for immediate connection.
When collaborating with Claude in Slack, you can now manage response speed and security permissions with greater flexibility. Mentioning Claude in a thread with !fast switches to fast mode, routing the thread to Opus when necessary with an explanatory note in the response, while typing !fast off returns to standard mode. When creating custom connections in access bundles, a new path prefix field lets allowlist rules restrict access strictly to specific directory paths. The length limit for channel custom instructions is now calculated as 8,192 characters, giving non-English instructions like Chinese the exact same generous capacity.
Permission controls and error feedback are more precise when managing Claude integrations in Slack team workspaces. Members with administrative permissions can now view workspace and channel memory files properly. When a guest clicks a configuration card, the system displays a rejection notice only to that guest, rather than mistakenly removing confirmation buttons for all members. Channel scheduled tasks consistently use the channel default model every time a new session launches. When individual plan usage hits its quota limit, direct messages provide real-time notification of the reset time. Clear explanations and troubleshooting steps are also provided if a session fails to start.
Review tags and prompt messages are more rigorous when inspecting automated review feedback on pull requests. Previously, suggestions containing major blocking issues were sometimes erroneously prefixed as minor remarks (nits), creating inconsistencies in severity; labels now remain consistent with actual severity. If an organization has explicitly disabled code review, prompt comments for @claude review are no longer automatically posted on pull requests in forked repositories or manual mode.
Added `serverToolUses` to the result of a mod's `turn.step` hook: the tool calls the API ran itself (the advisor), each with its id, name, input, start and end
Added `agentId` to the `tool.check` event of plugin hooks, so a hook can tell a subagent's permission check from the main session's
Added `ceiling` to the question and verdict a mod's `tool.check` hook reads, naming the approval an organization requires for a tool
Added `ThemeKey` and `Color` types to the plugin hooks typings, so an editor lists the theme colors a mod's drawing can name
Added to `claude plugin validate`: each hook a mod registers at a gating site is listed with whether it has a `.catch` (`gatingHooks` under `--json`)Fixed a case where a user-installed mod could get an organization's plugin unloaded; the mod is now the one unloaded
Fixed a case where a user-installed mod could make an organization's guard skip its check; such a mod is now unloaded
Fixed some permission rules and safety checks not being applied to a tool call after a PreToolUse hook rewrote its inputFixed a mod's pane or band being redrawn without end when it followed its end over a tree that changed height at every drawing
Fixed a mod's inline pane being redrawn without end when its tree changed height at every drawing
Fixed plugin hooks stalling each redraw when a mod draws a long multi-line text holding non-Latin charactersFixed a plugin hook with a `.catch` being unloaded, and its `.catch` skipped, when the hook kept the hooks worker busy on a prompt or tool call
Fixed a mod's `turn.step` result listing a tool call that a mid-response model fallback had discarded
Fixed plugin hooks reading an empty `answer` on `turn.complete` for a subagent that hands its report back in auto mode
Fixed a mod being unloaded without a message when a refresh followed its failed reload; its failure line now says the version loaded before is unloaded
Fixed a mod's `prompt.submit` hook that drops a prompt after calling `next(e)` being ignored silently: the hook is now reported as failed, by name
Fixed Claude replying in an endless loop when a plugin's async Stop hook passes an unquoted script path under a folder with a space, such as Application SupportFixed `claude plugin validate` and plugin loading refusing a hooks module that destructures an option named like one of its top-level functions
Fixed `claude plugin test` refusing to run after an upgrade because of an out-of-date saved setting
Improved the built-in `plugin-authoring` skill: Claude now gives the one command another person runs to install a mod you made, and writes it in a README's install section
Improved the reply to `/plugin` in the desktop app's Code tab: it now says where to install and manage plugins thereChanged what a mod's `$.process.spawn` rejects with when another mod denies it after the child ran: it now says the call ran and a plugin withheld its result
Changed plugin hooks so long text is clipped and logged instead of being refused or dropped silently
Changed `claude plugin update` on a plugin loaded from a directory to print just its reason, without the "Failed to update plugin" prefix, as for built-in pluginsAdded a Deny button to the Claude apps gateway's sign-in approval page: it ends the pending sign-in, so the waiting terminal stops within seconds
Fixed mods staying off for people who reach Claude through a gateway (`ANTHROPIC_BASE_URL` with `ANTHROPIC_AUTH_TOKEN`) and have no Anthropic account
Improved the Claude apps gateway's browser sign-in pages: brand fonts, centered layout, and dark modeFixed the Claude apps gateway's retention sweep deleting a returning developer's identity row refreshed at the same moment, on PostgreSQL versions without the November 2025 fixes
Fixed the Claude apps gateway failing to start when the certificate it presents to the identity provider has an empty subject
Fixed the Claude apps gateway exiting with a bare "Invalid URL" when `store.postgres_url` can't be parsed; the error now names the setting and says what the URL may hold
Improved the Claude apps gateway's log when an upstream's cloud credentials or connection fail: the warning now ends with the underlying cause
Improved the Claude apps gateway to log a warning during the last 30 days before the certificate it presents to the identity provider expires
Changed the Claude apps gateway's minimum supported PostgreSQL version from 14 to 11Added a warning when a managed settings file is a link to a file outside the managed settings folder
Added a /status and doctor warning when managed settings ignore user-configured sandbox allowRead paths or allowed domains
Fixed a project `CLAUDE.md`, rule or `AGENTS.md` symlinked outside the working directories loading under `permissions.blockReadsOutsideWorkingDirectories` or a `Read` deny rule
Fixed `disableClaudeAiConnectors` and `allowedMcpServers` URL rules not being applied to some MCP entries declared in `.mcp.json`, plugins or agentsFixed slow or failed startup since 2.1.285 under SDK hosts such as the VS Code extension when managed settings deny reads of many paths on a slow filesystem (notably Windows drives under WSL)
Fixed background commands, the agents view and daemon workers sending telemetry and a feature-flag request to Anthropic behind a Claude apps gateway when no managed settings on the machine force gateway login
Changed `CLAUDE_CODE_DISABLE_ATTACHMENTS` so a repository's `.claude/settings.json` or `.claude/settings.local.json` can no longer set it; shell, user and managed settings still canAdded `/claude-api managed-agents-onboard <url>` to set up the Managed Agents pattern a page describes as `ant apply` files
Added `/claude-api managed-agents-onboard <quickstart-name>` to build a Console quickstart template, such as `deep-researcher`, with the `ant` CLI
Changed the `claude-api` skill's Managed Agents examples to turn off the web tools unless the agent needs them and to use the `auto` permission policyAdded `claude attach <name>` and `claude logs <name>`: part of a session name works in place of the id
Fixed `claude respawn` re-sending an earlier message to a backgrounded session that has no saved transcript instead of starting it with an empty conversation
Fixed agent view's "restart this session fresh" re-sending an earlier message from the session instead of starting with an empty conversation
Fixed sessions moved to the background while idle reopening as "no saved transcript" after a restart or idle cleanup; they now resume their conversation
Improved responsiveness while resuming large sessions: timers, input and rendering keep running while the transcript loadsFixed `/rewind` not listing a prompt sent while Claude was still working
Fixed the rewind menu (Esc Esc / `/rewind`) freezing for hundreds of milliseconds per keypress when the conversation contains a very large pasted stack trace or source file
Changed the "Press ← again" confirm on a just-cleared prompt: a second ← no longer has to wait a second before it switches, and holding ← down now switches tooFixed Esc in the agents view confirming "Press enter again to restart this session — it isn't responding"; Esc now just reopens the session
Fixed repeated Ctrl+X in the agents view deleting the whole next section after the bottom session of a section was deleted
Fixed Esc after an `n:` or Ctrl+F search in the agents view moving focus to a section header, where Ctrl+X twice would delete every session in the section
Fixed Esc confirming agent view's "Press enter again to restart this session fresh" prompt
Improved permission prompts from background agents to show the Ctrl+X Ctrl+K shortcut that stops all background agentsFixed `claude agents` saving a slash command it could not deliver to a stopped session and then running it by itself the next time that session restarted
Fixed replies sent from `claude agents` just after a background session crashed being refused after 2 seconds: they are now retried for up to 12 seconds while the session restarts
Fixed slash commands and answers to a multiple-choice question that `claude agents` could not deliver to a running session being saved and sent by themselves the next time it was restarted
Changed `/model`, `/effort` and `/rename` sent from `claude agents` to a busy background session to apply right away, without a confirmation, instead of when the turn endsFixed agent view losing a background session's `/loop` run count, countdown and live status line after the session enters a worktree that it creates
Fixed `claude agents` sessions in manual permission mode asking for approval to read an image pasted into a reply or a new agent's prompt
Fixed agent view's `/loop` run count freezing and its countdown disappearing after `/clear`; the count now restarts with the new conversation
Fixed `claude agents` failing with "Couldn't restart the background service" and background sessions stopping after a Homebrew upgrade (takes effect from the upgrade after this one)Fixed scheduled tasks (`/loop` with an interval, reminders) silently not coming back on resume once the conversation was compacted; covers compactions made from this version on
Fixed scheduled tasks set in the foreground never firing after a ← or `/background` hand-off, and recurring ones firing an extra run on every resume, respawn or fork
Fixed cloud sessions staying asleep after a container restart lost a pending `/loop` wakeup or scheduled task; Claude is now told and can schedule it again
Fixed `/loop` and other recurring session-only scheduled tasks running an extra time after a sandboxed Bash command on Linux or after `.claude/scheduled_tasks.json` was deleted
Changed background sessions whose scheduled task is gone: they now move to Completed about 20 seconds later and can be updated or shut down when idle
Changed background sessions waiting on a scheduled wakeup (`/loop`): they are now left running through updates and low memory, where being restarted or shut down could silently lose the wakeupFixed resumed subagents and teammates losing their earlier thinking and prompt cache after receiving a message mid-run
Fixed background agents failing with "Agent stalled" and Workflow tool subagents restarting from their prompt when a Mac woke from sleep
Fixed background subagents losing write and Bash access in their worktree after the main session enters or exits a different worktree
Changed an in-process teammate's `agent_id` in Agent results to its agent ID (its `name@team` address stays in `teammate_id`); TeammateIdle hooks no longer fire from its subagents or forksFixed the background daemon's log passing terminal control characters to the screen under `claude daemon run` and `claude daemon logs`; they now show as `\uXXXX` escapes
Fixed background workers honoring `--allow-dangerously-skip-permissions` on respawn without the bypass-permissions disclaimer having been accepted
Changed the background daemon's log to write a multi-line message as one JSON-quoted lineFixed a deny or ask rule missing a command or path whose name came from a variable set as a prefix on `declare`, `typeset`, `export` or `readonly`
Fixed Bash permission checks auto-approving some read-only commands (such as `rg` or `git grep`) whose arguments the shell would still expand as wildcards; these now prompt for approval
Fixed Bash permission checks auto-approving certain commands whose variable names zsh reads differently from bash; these now prompt for approval
Fixed Bash permission checks not applying Read deny rules or the outside-directory read block to a wildcard in some option values of read-only commands
Changed the Bash tool to ask for permission before running `pyright`, which is no longer treated as a read-only command
Changed Bash permission checks so that more forms of the `ps` command ask for approval instead of running without askingFixed sandboxed commands that pipe a heredoc into another command (`cat <<EOF | python3`) asking for approval on every run
Fixed a short form of a `git clone` option keeping the sandbox exemption from a git pattern such as `git *` in `sandbox.excludedCommands`; it is now treated like the long form
Fixed sandboxed Monitor tool commands skipping the permission prompt under sandbox auto-allow; they now follow your permission rules
Fixed a freeze before the first request and in the `/sandbox` Config tab on Linux and WSL when a sandbox read rule such as `~/**/.env` covers a large folder
Fixed sandboxed Bash commands on Linux running `ConfigChange` hooks and reloading settings mid-command when `.claude/settings.json` or `.claude/settings.local.json` does not existFixed plan mode letting the auto mode classifier approve non-read-only connector tools that carry a server-pushed ask policy
Fixed auto mode denials suggesting a permission rule that would skip the classifier for a whole tool or that Claude Code would ignore
Fixed `--channels` permission relay: a reply ID that repeats within a session is now ignored instead of approving a different prompt
Fixed `--restricted` (and `CLAUDE_CODE_RESTRICTED=1`) sessions opening the cross-session messaging socket
Fixed edits to the file a symlinked settings file points at running without the settings-file permission questionFixed an image read on macOS and Windows being able to return a file outside what was approved, through a link swapped in mid-read
Fixed an `@`-mention under the read block or `--restricted` being able to read a file outside the working directories through a link changed mid-read
Fixed Read deny rules not applying to image paths pasted or dragged into the prompt, or to file names listed for an @-mentioned folder
Fixed a subdirectory's AGENTS.md not being attached when a file under it is @-mentionedFixed a freeze when the secret scan or a permission prompt met long token-like text
Fixed a freeze of several seconds when secret masking met very long unbroken text
Fixed file names containing line breaks being displayed incorrectly in file tool errors and permission promptsFixed `/ultrareview` dropping uncommitted changes without a warning on Windows when `git stash create` failed, and refusing them after a `git add -N` file was deleted or moved
Fixed `/ultrareview` failing to upload uncommitted changes when `core.safecrlf=true` is set in git's configuration
Fixed `/ultrareview` uploading uncommitted changes unfiltered for files under a git filter driver named `unset` or `unspecified`; the upload now stops and asks you to rename the driver
Fixed `/ultrareview` of a local branch silently leaving uncommitted work out of the upload in a repository that keeps its branches outside `.git` (git 2.54+); it now refuses with an explanationFixed `claude --teleport` and `/teleport` deleting the files in a folder that had replaced a tracked file of the same name when you chose to stash: the stash is now refused, and says why
Improved the Bash changed-files view: when a chained command includes git merge, pull or checkout, it lists the files without full diffs
Improved the error shown when a git config file stops the `/ultrareview` upload: it is about half as long and says what kind of file is the problem
Improved the errors shown when the `/ultrareview` upload refuses a checkout: each known cause now has its own message, with a way to fix it
Changed the errors shown when the `/ultrareview` upload fails at a git step: they name the step and what to try, and no longer repeat git's own error textFixed the `plansDirectory` setting's project-root check for paths that contain a backslash on macOS and Linux
Windows: Fixed multi-line `!` shell blocks in skills and commands failing when the file is saved with CRLF line endings
Fixed skills not being found when asked for by the name in SKILL.md when their folder has a different name (for example a non-English name): the skill listing now shows both names
Fixed a plan written in plan mode being lost when a cloud session's container restarted before the plan was presented
Fixed plan mode not being restored when resuming a session with `--continue` or `--resume <session-id>` in the terminal
Changed skills and custom commands to refuse a `!` shell command that contains raw control characters other than tab and newline, with a message that shows where they areFixed requests failing behind proxies and gateways that reject one of Claude Code's beta headers with a status other than 400, or together with a second beta
Fixed headless `--json-schema` runs exiting non-zero with `is_error: true` on a `success` result when the connection dropped after the structured output was already delivered
Fixed replies in very long Remote Control and cloud sessions that could appear a block at a time instead of streaming in
Fixed the first feature-flag request of a session ignoring a proxy or API endpoint set in a project's settings
Fixed a response interrupted by computer sleep being treated as a stalled stream on Bedrock, Vertex, Foundry, and custom gateways
Changed `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` to also skip the startup connection warm-upFixed long sessions with hundreds of images getting stuck on "Request rejected as unprocessable by the model" errors
Fixed a turn ending at once when the API's output content filter stopped a reply while Claude was still thinking; the request is now retried once before the error is shown
Fixed the effort level changing when a flagged message is retried on a fallback model that has a different level saved in settings
Fixed SDK hosts using `--include-partial-messages` seeing a reply stay open after the turn ended when its stream was cut, interrupted or fell back to non-streamingFixed an MCP server provided by your organization being relisted as your own after signing in or reconnecting, including from a late result in headless and SDK sessions
Fixed unbounded memory use when an HTTP MCP server sends a very large response
Fixed a stall when an MCP server's tool listing contains very long runs of combining characters
Improved MCP startup behind a network proxy: a server the proxy blocks (HTTP 403) is no longer retried three timesFixed WebFetch silently dropping page text past 100,000 characters; it now says how much was unread and takes an `offset` to read on
Fixed URL allow and deny patterns with a wildcard inside an `xn--` host label matching differently from one process to the next
Changed the interactive session's WebSearch budget to refill over time (100 calls/hour; `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` sets the rate, 0 turns it off) instead of ending after 200 callsFixed a crash ("Maximum call stack size exceeded") when a response nested lists or quotes thousands of levels deep
Fixed a freeze after sending some very long messages
Fixed a slowdown when expanding the transcript (ctrl+o) or resizing over large tool output that contains non-ASCII characters such as arrows, dashes or box-drawing
Fixed two pastes that overlap in one prompt being sent to the model partly as typed text instead of as one pasted block
Fixed a large paste expanded in place being sent to the model as typed text after the next keystroke when it held accents stored as separate characters, as macOS file names doFixed conversation compaction sometimes failing with a "null is not an object" error
Fixed You should know writing its notes in English regardless of the `language` setting
Fixed automatic compaction giving up with "Prompt is too long" when a Mac went to sleep while it was runningFixed `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS=5m` being read as 5 ms and cancelling remote dialogs at once; values with a unit suffix now fall back to `dialogExpiry`
Fixed first launch asking to pick a login method again after `claude auth login` or with a credentials file already in the config directory
Fixed macOS `/login` reporting success when the keychain refused the new login and kept an old one it could not remove
Improved the error shown when a cloud session is started without a claude.ai sign-in: it now names `claude auth login` and /login and no longer blames API-key authenticationFixed Claude Code hanging until killed when a `/permissions` tab was clicked while searching in fullscreen mode
Fixed errors reading "Premature close" instead of naming the missing program when a tool Claude Code runs, such as git or gh, is not installed (macOS, Linux)
Improved the Read tool's message for binary files: it now points Claude to a skill or a shell command that can read the format
Improved the / and @ suggestion lists: the selected row now starts with a ❯ pointer, so you can see it without color
Changed `/code-review` at medium effort to also report cleanup and CLAUDE.md conventions findings on models without tuned review settings, including Opus 5.5 and Sonnet 5.5Fixed `/chrome` "Reconnect extension" not restoring browser tools after a failed Chrome connection, and added an explanation when it can't (anthropics/claude-code#98135)
Fixed Claude in Chrome's browser picker showing a message meant for Claude when the chosen browser is no longer connected, and the VS Code dialog's list going stale after a switch
Improved Claude in Chrome: a `browser_batch` call now gets 90 seconds, up from 60, before it is reported as timed out
Changed Claude in Chrome so that a project's settings files can no longer turn it on; use `--chrome`, `/chrome` or your user settingsSelf-hosted runner: Fixed a crafted, very long line of a session's error output freezing the runner for several seconds
Fixed self-hosted runner sessions resumed after a stopped runner failing with "missing but already registered worktree" when the sessions folder is a relative symlink
Self-hosted runners: Changed `claude --environment <id>` to create its session through the current Sessions API; printed and JSON session ids keep their session_… formFixed a Cowork cloud session's reply sometimes never finishing when its container restarted just after Claude sent a message or a file
Fixed the Bash tool occasionally losing shell aliases, functions and plugin PATH entries for a whole session when its first command ran seconds after startup on a new config directory
Fixed artifact operations failing in a Claude Code run started from inside a cloud session (for example `claude -p` run from the Bash tool)
Changed `/artifacts`: opening an artifact in your browser now closes the listFixed files sent from remote sessions sometimes being refused as "not the one approved" when four or more were sent at once
Fixed a marketplace named after another GitHub marketplace's download folder stopping that marketplace from downloading
Changed the built-in `gh api` in cloud sessions: a host other than github.com set in `GH_HOST` or `GH_REPO` is now refused (use `--hostname` or a full URL), and stderr notes requests to other hosts[VSCode] Added a screen reader announcement, "Message queued.", when you send a message while Claude is working
[VSCode] Added a way to review and run a plugin marketplace's install or update command from the Manage plugins dialog
[VSCode] Improved Continue After Reload: tabs reopened after VS Code restarts its extensions now also finish a step the restart interrupted
[VSCode] Improved file pills in messages: hovering one now shows the file's path from the project folder, so same-named files can be told apart
[VSCode] Changed message timestamps to show by default (turn them off with the Claude Code: Show Message Timestamps setting)[VSCode] Fixed a blank chat you never typed into keeping a background Claude process running after you open a saved conversation in its place
[VSCode] Fixed settings dialogs blaming a timeout when Claude Code stopped unexpectedly during a save
[VSCode] Fixed the branch switch dialog offering to switch when it could not check for uncommitted changes
[VSCode] Fixed a permission prompt that arrived behind an open dialog taking keyboard focus, so a key pressed in the dialog could answer it
[VSCode] Fixed sign-in and new sessions giving no clear reason when Claude Code cannot find or start its program
[VSCode] Fixed the agent map showing a nested sub-agent with "Tool calls (0)" and placing the agents it starts under the main agent[Cloud sessions] Fixed turning off prompt suggestions through a cloud environment's environment variables having no effect in new cloud sessions
[Cloud sessions] Fixed the working indicator in a cloud session spinning on for several seconds after Claude's reply had finished; it now stops with the reply
[Cloud sessions] Fixed History on a never-run routine's page still saying "No runs yet" after you pressed Run now; it now shows the new run
[Cloud sessions] Fixed an unarchived cloud session looking as if Claude were still working until you sent another message[Remote Control] Fixed a computer that just started Remote Control taking up to a minute to appear in the Remote Control menu of a new session; it now appears within seconds[Claude Tag] Added fast mode in Slack: mention Claude with `!fast` to switch a thread to fast mode, moving it to Opus if needed, and `!fast off` to switch back; replies show (fast) while it's on
[Claude Tag] Added the optional Path prefixes field when creating a custom connection in an access bundle, so its allow rule can cover only those paths instead of the whole host
[Claude Tag] Changed the channel instructions limit to 8,192 characters instead of bytes, so non-English text gets the same room, and added a character count beside Save on the Configure page[Claude Tag] Fixed members with the Claude Tag Admin permission getting "Couldn't load memory files" on the Activity page's Memory tab; they can now read workspace and channel memory
[Claude Tag] Fixed a workspace guest's Confirm on a Claude settings card in Slack removing its buttons for everyone; only the guest sees the refusal, and members can still confirm or cancel
[Claude Tag] Fixed scheduled routines in Slack channels running on a model other than the channel's default; each run that starts a new session now uses the current default model
[Claude Tag] Fixed GitHub repositories in an access bundle attached by a channel-name rule being refused in the channels the rule covers; Claude can now add, list and clone them there
[Claude Tag] Improved Claude's notice in your direct messages when your own Claude plan's usage limit is reached: it shows within seconds and says when the limit resets
[Claude Tag] Improved the earlier Claude in Slack app's reply when it can't start a session: it now says what failed and who can fix it, in full only once per thread[Code Review] Fixed blocking review comments sometimes opening with a "nit" label that contradicted their severity
[Code Review] Fixed tips to comment "@claude review" being posted on fork and Manual-mode pull requests in organizations that have turned Code Review off