在 DeepSeek Harness (DSH) 中,暫停一個正在運行的目標是一個不可逆的操作:它會立即中止當前的輪次,停止所有正在執行的子任務(包括工具調用、命令執行和子代理)。爲了避免誤觸導致的工作流中斷,需要引入確認機制。dsh-goal-pause-guard 是一個爲此設計的插件,它在檢測到用戶點擊暫停按鈕時,攔截操作並彈出確認模態框。
核心功能¶
該插件通過以下機制實現功能:
- 雙重檢測機制:通過識別
aria-label(支持 pt-BR、en、zh 語言)或 SVG 圖標路徑(如IconPauseOutline16)來定位暫停按鈕。定位範圍限定在[data-goal-bar]內部。 - 確認模態框:在用戶點擊暫停後,攔截操作並顯示確認窗口。
- 確定性行爲:插件不依賴定時器、網絡請求或本地存儲,確保行爲完全可預測。
- Fail-open 機制:如果無法識別按鈕(例如頁面結構變更),點擊操作會直接通過(fail-open),確保插件永遠不會導致原本正常的暫停操作失敗。
- 動態重定位:在確認時,插件會重新定位當前激活的暫停按鈕,防止因頁面重渲染導致點擊目標錯誤。
安裝與啓用¶
該插件作爲 web 配置文件的 Bundle 插件運行。安裝後無需額外配置,插件會在啓動時自動激活。
- 進入插件所在的目錄。
- 執行安裝命令:
dsh plugin --profile web add /caminho/para/dsh-goal-pause-guard
- 重啓 DSH Web 實例以加載插件:
dsh web
典型用法¶
- 觸發暫停:在運行中的 Goal Bar 上,用戶點擊 “Pause goal” 按鈕。
- 模態框彈出:Guard 捕獲點擊事件,打開確認模態框(支持 Cancel、Esc 或點擊背景關閉)。
- 確認或取消:
- 確認:用戶點擊 Confirm。插件重新定位按鈕並執行一次未信任的點擊,觸發 DSH 的
goals.pauseRPC,導致目標暫停及當前輪次中止。 - 取消:用戶點擊 Cancel、Esc 或背景。模態框關閉,目標繼續運行,沒有任何副作用。
- 確認:用戶點擊 Confirm。插件重新定位按鈕並執行一次未信任的點擊,觸發 DSH 的
注意事項與兼容性¶
- 兼容版本:該插件已驗證兼容 DSH 0.1.5-alpha.2。
- 無狀態設計:插件不包含定時器、網絡請求或存儲邏輯,符合輕量級工具的定義。
- 許可證:遵循 MIT 許可證。
- 目錄鏈接:更多詳情和源碼可參考插件目錄頁或 GitHub 倉庫。