dsh-restart-confirm: DSH Web UI 側邊欄一鍵重啓按鈕

前言

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 進程的權限運行,安裝前應檢查源碼與許可證。

結尾

相關鏈接:
- DSH 插件目錄
- GitHub 倉庫

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜