前言¶
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 或使用插件管理器。
- 在 DSH 裏安裝(推薦):
使用plugin_manager install_bundle,目標爲倉庫的絕對路徑。
plugin_manager install_bundle target=<你克隆這個倉庫的路徑>
- 使用桌面端自帶 CLI:
調用dsh命令將插件添加到當前 profile。
$dsh = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
& $dsh plugin --profile desktop add "<你克隆這個倉庫的路徑>"
首次使用配置¶
Host 側的重啓路由在第一次安裝後需要手動引導才能生效。
- 在
$env:USERPROFILE\.dsh\profiles\desktop\cordis.patch.yml中添加配置項:
- id: dsh-plugin-restart
config:
dryRun: true
- 先重啓應用。此時點擊按鈕只會返回計劃,不會真正重啓。
- 確認狀態 API 返回正常,隨後刪除
dryRun: true配置項。之後每次點擊按鈕即可執行真實重啓。
使用方法¶
安裝並完成引導配置後,常規使用流程如下:
- 在本地重建插件(如運行
pnpm build)。 - 點擊側邊欄底部的「重啓 DSH」圖標,選擇「立即重啓」。
- 應用自動退出並在幾秒內重新啓動,頁面重連後繼續當前會話。
- 若應用未自動回來,可查看
%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