前言¶
DSH(DeepSeek Harness)採用插件化架構。在開發或調試過程中,重啓 DSH Desktop 是應用配置更新或插件變更的常見需求。手動重啓應用不僅效率低下,還可能中斷當前的上下文會話。本插件旨在提供一套標準化的重啓入口,覆蓋命令行、設置面板以及 API 接口。
核心功能¶
該插件由 MicroWearld 維護,提供以下核心能力:
- 重啓應用本體:保持當前 Profile 不變,重啓 DSH Desktop 應用進程。
- 切換 Profile 並重啓:支持切換至指定 Profile 並執行重啓操作。
- 多入口支持:通過命令行、Web 設置面板、獨立 Web 頁面以及 API 接口提供統一操作入口。
安裝與啓用¶
在 DSH Desktop 終端(或任何 dsh CLI)中,針對 desktop profile 執行以下命令:
dsh plugin --profile desktop add "link:D:/workspace/dsh-quick-restart-desktop"
安裝後需要重啓 DSH Desktop,插件纔會隨下一次 Loader 組合激活。
典型用法¶
1. 命令行入口¶
插件註冊了以下斜槓命令:
/desktop-restart:重啓當前 Profile 的應用本體。/desktop-restart <profile>:切換至指定 Profile 並重啓。/desktop-profiles:列出當前 Profile 與全部可發現 Profile。
2. 設置與 Web 入口¶
- 設置頁面:進入設置頁面的「快速重啓」面板,列表第一行爲「重啓 DSH Desktop」主按鈕,其他行對應「切換並重啓到此 profile」。
- 獨立頁面:在瀏覽器中直接打開
http://localhost:<port>/desktop-restart,可查看完整的面板與操作按鈕。
3. API 接口¶
插件提供基於 JSON 的 HTTP API,監聽在 127.0.0.1:
- 重啓接口:
POST /desktop-restart/api/restart- 請求體:
{ profile?: string }。不傳參數或參數爲當前 Profile 時,重啓本體;其他情況切換並重啓。 - 行爲:立即返回「已受理」,不等待進程結束。
- 限制:要求 JSON content-type,Body 超過 64 KiB 返回 413。
- 請求體:
- 狀態查詢接口:
GET /desktop-restart/api/state- 返回:
{ current, profiles[] }。
- 返回:
技術細節與安全¶
- 協議依賴:重啓本體依賴
desktopRuntime.requestRestart()(內部接口);切換 Profile 依賴desktopProfiles.select()(官方契約)。 - 安全邊界:API 無鑑權保護,但 webServer 僅綁定迴環地址(127.0.0.1),且重啓請求強制要求 JSON content-type,有效防禦跨源表單攻擊。
- 兼容性:在普通的
dsh web(無desktopProfiles)環境中,插件會正常加載但不掛載任何功能,避免報錯。
注意事項¶
- 托盤菜單:DSH Desktop 托盤菜單已內置 Profile 切換功能,由
desktop-profiles插件處理。本插件不註冊托盤條目。 - 依賴:本插件以當前 dsh 進程的權限運行。安裝前建議檢查源碼與許可證(MIT)。
總結¶
該插件通過標準化接口解決了 DSH Desktop 的重啓與 Profile 切換問題,適用於開發調試及自動化腳本場景。