dsh-macos-restart:macOS 桌面版一鍵重啓插件

前言

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 倉庫查看。

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

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

小夜