dsh-plugin-restart:一鍵重啓 DeepSeek Harness

前言

DeepSeek Harness(DSH)採用“一切皆插件”的架構,插件或 Host 的改動通常需要重啓應用才能生效。在桌面端,官方菜單中的“重啓應用與 Host”選項在正式版構建中未對外暴露,開發者或用戶無法通過界面直接觸發重啓。

下面介紹 dsh-plugin-restart 插件。它通過側邊欄按鈕和脫離進程的守護腳本,實現對整個桌面應用(Electron 外殼 + Host)的一鍵重啓,讓本地構建的插件或配置變更立即生效。

核心功能

該插件包含以下已覈實的能力:

  • 側邊欄重啓按鈕:在左下角頭像/設置一排的圖標按鈕中添加 ui-dsh-restart(order: 10),點擊後彈出確認面板。
  • 脫離進程的守護者:使用 WMI(Win32_Process.Create)創建子進程,確保在主進程退出後守護腳本繼續運行,從而拉起新的應用實例。
  • 托盤菜單支持:提供可選的 Windows 托盤入口,不依賴界面也能重啓或拉起應用。
  • 狀態自檢與演練:提供 HTTP API 用於查詢狀態和執行 Dry-run 演練,不產生副作用。

安裝與啓用

安裝該插件需要訪問桌面端 CLI 或使用插件管理器。

  1. 在 DSH 裏安裝(推薦):
    使用 plugin_manager install_bundle,目標爲倉庫的絕對路徑。
    plugin_manager install_bundle target=<你克隆這個倉庫的路徑>
  1. 使用桌面端自帶 CLI:
    調用 dsh 命令將插件添加到當前 profile。
    $dsh = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
    & $dsh plugin --profile desktop add "<你克隆這個倉庫的路徑>"

首次使用配置

Host 側的重啓路由在第一次安裝後需要手動引導才能生效。

  1. 在 $env:USERPROFILE\.dsh\profiles\desktop\cordis.patch.yml 中添加配置項:
    - id: dsh-plugin-restart
      config:
        dryRun: true
  1. 先重啓應用。此時點擊按鈕只會返回計劃,不會真正重啓。
  2. 確認狀態 API 返回正常,隨後刪除 dryRun: true 配置項。之後每次點擊按鈕即可執行真實重啓。

使用方法

安裝並完成引導配置後,常規使用流程如下:

  1. 在本地重建插件(如運行 pnpm build)。
  2. 點擊側邊欄底部的「重啓 DSH」圖標,選擇「立即重啓」。
  3. 應用自動退出並在幾秒內重新啓動,頁面重連後繼續當前會話。
  4. 若應用未自動回來,可查看 %USERPROFILE%\.dsh\dsh-plugin-restart\restart.log 與 restart-result.json 日誌。

技術實現與注意事項

該插件基於 Windows 平臺的 Electron 應用特性設計,需注意以下事實:

  • 僅支持 Windows:依賴 Get-Process、Start-Process、taskkill 和 WMI,不支持 Linux 或 macOS。
  • 必須使用 PowerShell 5.1:插件運行時需要系統 PowerShell(powershell.exe),不支持 PowerShell 7(pwsh)。
  • 進程終止順序:必須先單獨終止 Electron 主進程,再終止 Host 等子進程。否則 Electron 會將 Host 退出視爲崩潰,彈出“DeepSeek Harness 無法使用”的對話框。
  • 無熱重載:Host 側的代碼修改必須通過重啓進程才能生效,插件本身無法實現熱重載。

卸載

如需移除插件,使用以下命令:

& $dsh plugin --profile desktop remove dsh-plugin-restart

GitHub:https://github.com/SOH4C4759/dsh-plugin-restart
目錄頁:https://www.skillhub.cn/plugins/SOH4C4759/dsh-plugin-restart

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

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

小夜