GitHub Repo
Hermes Agent 修補終端拖放路徑處理,社群補上四種 shell 實測
Hermes Agent 社群於 10 月 28 日補上終端檔案拖放修補的實測,四種 shell 均完整接收測試路徑。相關修補已合併主線,對無法可靠處理的路徑改為拒絕輸入並顯示警告。

Hermes Agent 的終端拖放修補有了新的實機驗證。10 月 28 日,貢獻者在瀏覽器 Webapp 回報,zsh、fish、tcsh 與 PowerShell 各自測試的 27 個檔案路徑,均以原始內容傳入程式參數,未出現測試用的指令注入。修補 PR #144719 已於 26 日合併主線,維護者並在 27 日確認相關工作完成。實測與維護者確認
問題出在把檔案路徑轉成終端輸入的方式。原先程式遇到未辨識的 shell,會套用 POSIX 單引號規則;但 nu、xonsh、elvish 各有語法,特殊檔名可能突破預期的引用邊界。PR 討論記錄了 nu 與 elvish 的重現:使用者拖入特製檔名,再按 Enter,就可能執行額外指令。Windows cmd 則有另一項問題:啟用延遲展開時,雙引號內的驚嘆號仍可能改變路徑。修補與重現紀錄
新版依 shell 的程式名稱選擇規則,避免目錄名稱含有「cmd」就誤判。對未列入支援的 shell,只輸入符合限制的簡單路徑;含空白或引號等複雜內容時,會略過並提示。cmd 下含驚嘆號的路徑也直接拒絕。由於引用函式共用,原生 Desktop 的自訂 shell 與 SSH 分頁同樣受到影響。實作說明
這類差異不能靠統一加上引號解決。以 fish 為例,官方文件明訂單引號內不展開變數,但仍有特定反斜線跳脫規則;雙引號內則仍允許變數與部分命令替換。對提供終端介面的代理工具而言,路徑進入 shell 前的處理,是值得獨立檢查的輸入邊界。fish 引號規則
目前證據仍有範圍限制:28 日的測試在 macOS 執行,未涵蓋 cmd、Windows PowerShell 或 SSH 分頁,也不是本文獨立重測。部署者接下來應確認所用版本包含合併提交 72e47c1,並檢查實際使用的 shell 是否會出現新的路徑拒絕提示;主線合併本身不代表所有發行套件都已更新。測試限制