前言¶
DeepSeek Harness (DSH) Web 進程同時承載 WebUI 和 harness 後端。重啓 dsh web 會同時刷新這兩部分。直接重啓存在誤觸風險,可能導致正在進行的任務中斷。該插件在 Web UI 側邊欄添加了一個重啓按鈕,要求用戶在重啓前進行強制二次確認,並在確認後自動重新拉起進程。
插件介紹¶
- 定位:DSH Web UI 側邊欄一鍵重啓按鈕,強制二次確認,自動重新拉起。
- 維護者:seanwhy
- 許可證:MIT
核心功能¶
- 強制二次確認:點擊按鈕後彈出兩個確認對話框,只有第二次確認纔會發送重啓請求,兩次均可取消。
- 自適應佈局和尺寸:按鈕固定在側邊欄摺疊/展開按鈕附近,SVG 圖標大小隨佈局自動調整。
- 自動重新拉起並立即刷新:重啓進程後,客戶端輪詢
/dsh-health端點,檢測到新進程就緒後立即刷新。 - 跨平臺,零硬編碼路徑:根據當前進程的
process.execPath和process.argv重建啓動命令,適配各種啓動方式(CLI、PWA、supervisor 腳本)。 - 優雅終止 (SIGTERM -> SIGKILL):先發送 SIGTERM,若進程未退出則發送 SIGKILL。
- 可配置:支持設置延遲、自定義命令、僅終止模式。
- 重入保護:重啓進行中時拒絕第二個請求。
- 僅環回訪問:重啓接口僅接受 127.0.0.1 / ::1 的請求。
- 主題感知 UI:使用 DSH 主題 token,適配淺色/深色模式。
- 等待中圓點:默認隱藏,輪詢市場操作快照,僅在另一個插件處於待安裝/更新/移除狀態時顯示(需重啓)。
安裝與啓用¶
使用以下命令安裝插件:
dsh plugin --profile web add github:seanwhy/dsh-restart-confirm
安裝完成後,重啓 dsh web 一次以加載插件。
典型用法¶
- 點擊側邊欄按鈕進行強制二次確認後重啓。
- 配置
killOnly模式配合外部監控器使用:當啓用killOnly時,插件僅終止進程,不負責重新拉起,適合由外部進程管理器(如 supervisor)接管重啓邏輯。 - 配置自定義命令:通過
customRestartCommand指定替代默認 argv 的啓動命令。
工作原理與安全¶
- 安全機制:
POST /restart-dsh僅接受環回調用者。Web 服務器默認綁定到環回地址。插件不會向任何地方發送數據,/dsh-health僅用於本地健康檢查。 - 重啓機制:插件啓動一個 detached helper 進程(獨立於 DSH 主進程),該 helper 負責執行延遲、終止進程、延遲重新拉起等操作。主進程的客戶端輪詢
/dsh-health端點,檢測到bootId變化後立即刷新。 - 重入保護:重啓進行中時拒絕第二個請求。
- 優雅終止:先發送 SIGTERM,若進程未退出則發送 SIGKILL。
注意事項¶
- 版本兼容性:版本 0.1.2 適配 DSH 0.1.0-rc.6 到 0.1.0-rc.8。
- 權限與安全:插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。