前言¶
DeepSeek Harness(DSH)桌面版運行在 Electron 框架上,插件熱更新並非對所有插件都有效。當遇到需要重啓桌面進程的場景時,手動關閉應用再重新打開會打斷對話上下文,且容易遺漏賬號或會話狀態的保存。本插件爲 macOS 桌面版提供了一鍵重啓的機制,在保證進程優雅退出和自動重載的同時,也提供了診斷與安全防護。
是什麼¶
dsh-macos-restart 是一個爲 DSH macOS 桌面版設計的社區插件,由 chai-yinfeng 維護。它通過在會話標題欄、側邊欄或設置頁面中提供入口,讓用戶能夠觸發對 Electron 主進程的優雅關閉與自動重載。插件的核心價值在於:在無需離開 DSH 的情況下,完成桌面進程的重啓,從而支持無法熱重載的插件重新加載。
核心功能¶
- 入口點:會話標題欄右側的圖標(默認開啓),側邊欄設置頁旁的圖標(默認關閉),設置中「Desktop Restart」頁面,以及
/restart-desktop命令。支持可選的浮動按鈕,位置會被記憶。 - 重啓流程:客戶端發送
{ "confirm": true }到 Host,Host 校驗請求合法性後,寫入狀態記錄,並啓動獨立的輔助進程。輔助進程向 Electron 主進程發送 SIGTERM,等待其退出和端口釋放後,使用open -a重新啓動應用。整個流程會記錄狀態變化,並通過日誌與狀態文件提供診斷。 - 安全與限制:僅接受來自本地迴環的請求,拒絕跨站點訪問。運行中的對話會返回 409 busy,要求二次確認後才允許 force 重啓。插件安裝/更新時返回 423,除非處於安裝卡死的高級強制路徑。可通過
allowRestart: false在配置中關閉操作。 - 診斷信息:狀態文件
~/.dsh/dsh-restart/state.json記錄最後重啓的階段與時間,設置頁提供「Reveal latest log」按鈕,Host 提供POST /plugins/dsh-restart/open-logs接口以在連接斷開時打開日誌目錄。 - 卡死安裝恢復:若插件管理器在 5 分鐘內無進度,會顯示「Force restart (advanced)」選項,該路徑會強制殺死 Host 進程並釋放鎖,僅用於安裝卡死場景。
安裝與啓用¶
在 DSH 中通過官方目錄頁安裝:
dsh plugin add https://www.skillhub.cn/plugins/chai-yinfeng/dsh-macos-restart
安裝後,在設置中啓用側邊欄入口即可使用。命令 /restart-desktop 可在對話中直接調用。
典型用法¶
- 常規重啓:在會話標題欄點擊圖標,或在設置頁點擊「Restart Desktop」按鈕。流程會自動檢查是否有正在進行的對話或插件更新,並在狀態文件中記錄階段變化。
- 強制重啓:當對話正在運行時,使用
/restart-desktop --force觸發強制重啓。此時會列出受影響的會話 ID,要求二次確認。 - 查看日誌:在設置頁「Desktop Restart」中點擊「Reveal latest log」,或從命令行調用
POST /plugins/dsh-restart/open-logs,可在 Finder 中打開日誌目錄。 - 安裝卡死恢復:若插件管理器無響應,在對話框中會彈出「Force restart (advanced)」選項,選擇後可強制重啓並釋放安裝鎖。
適用場景與注意¶
本插件僅適用於 DSH 的 macOS 桌面版 Electron 應用,不支持 Windows、Linux、dsh web 或獨立 CLI。重啓操作會停止主進程並釋放 Web 端口,建議在重啓前保存當前對話狀態。插件以當前 DSH 進程的權限運行,使用前應查看源碼與許可證。僅當確實需要重啓桌面進程時使用,避免不必要的中斷。
短結尾¶
dsh-macos-restart 爲 DSH macOS 桌面版提供了一鍵重啓的能力,配合狀態記錄與安全校驗,適合需要在桌面進程層面進行維護與恢復的場景。插件信息與源碼可在目錄頁與 GitHub 倉庫查看。