前言¶
開發或調試 DSH 插件時,改完 bundle 或 client 代碼後往往需要「完全退出應用再打開」才能加載新版本。macOS 上常見做法是 ⌘Q 退出後再從 Dock 或啓動器點開,兩步且容易漏掉「完全退出」。下面介紹社區插件 dsh-restart:在側欄頂部增加常駐「重啓」按鈕,確認後由獨立腳本完成退出、等待進程結束並自動重新打開 DSH。
這是什麼¶
dsh-restart 由維護者 Arc-huangjingtong 發佈,分類爲客戶端插件。倉庫簡介爲:One-click restart plugin for DeepSeek Harness desktop(package.json 中描述爲桌面端一鍵重啓按鈕)。它不改變 DSH 核心邏輯,只在界面側欄頂欄、摺疊按鈕左側放置 72×28 的膠囊按鈕,點擊經確認後觸發完整重啓流程。
社區目錄頁:https://www.skillhub.cn/plugins/Arc-huangjingtong/dsh-restart
源碼與說明:https://github.com/Arc-huangjingtong/dsh-restart
核心功能¶
以下能力均來自倉庫 README 與實現說明。
一鍵重啓
點擊按鈕彈出確認;確認後 Host 以 detached: true 啓動 scripts/restart-dsh.sh,由 helper 執行「正常退出 → 等待進程消失 → 重新打開」。界面會先消失,約 4–6 秒後應用自動回來。
失敗兜底
helper 先嚐試正常退出,最多等 10 秒;不行再發 TERM,再不行 KILL,確認完全退出後才 open 重開。重開前會清理 Electron/Node 相關環境變量(避免新實例以 Node 模式啓動導致無窗口);失敗每 2 秒重試,最多 3 次。
日誌
每次重啓寫入 ~/.dsh/restart.log,便於排查「關了沒起來」的情況。
平臺與安全
僅 macOS:非 macOS 上按鈕自動隱藏,接口返回 501。POST /api/dsh-restart/restart 只接受迴環來源,降低跨站誤觸發風險。
Host / Client 分工
- GET /api/dsh-restart/status 返回 { canRestart, platform }
- Client 通過 shell.overlay 註冊按鈕,測量側欄頂欄摺疊按鈕位置並隨側欄寬度、窗口大小、全屏狀態對齊;全屏下摺疊按鈕移到左側時,重啓按鈕改放到其右邊。
安裝與啓用¶
本倉庫是標準 DSH bundle 插件(dsh.bundle + dsh.client)。安裝後必須完全退出並重新打開 DSH 一次,插件纔會加載,按鈕纔會出現。
方式一:插件頁安裝(推薦)¶
- 打開 DSH → 設置 → 插件 → 添加插件
- 選擇本倉庫目錄(包含
package.json的那一層) - 完全退出 DSH 再打開
方式二:命令行¶
將路徑換成本機倉庫目錄的絕對路徑(README 示例):
dsh plugin --profile desktop add /absolute/path/to/this/repo
裝完同樣需要完全退出 DSH 再打開。
卸載示例(README 原文):
dsh plugin --profile desktop remove @local/dsh-restart
卸載後也需完全退出並重新打開 DSH。
典型用法¶
DSH 重啓並加載插件後,側欄左上角會出現環形箭頭按鈕:
- 懸停提示「重啓 DeepSeek Harness」
- 點擊彈出確認,說明正在運行的會話與任務會中斷
- 點「立即重啓」後應用退出並自動重新打開
調試 helper 時可幹跑,只打印識別到的主進程 PID、不退出應用:
DRY_RUN=1 bash scripts/restart-dsh.sh
package.json 還提供:
npm run dry-run
(等價於上述 DRY_RUN=1 調用。)
適用場景與注意¶
適合誰
經常在 macOS 桌面端改插件、需要頻繁「全量重啓 DSH」的開發者;希望省掉 ⌘Q 再手動點開的一步。
務必知曉的限制
- 重啓會中斷當前會話里正在運行的任務。
- 若 helper 退出後 open -a 失敗,DSH 不會自動回來,需查看 ~/.dsh/restart.log 並手動打開。
- 插件只對安裝它的 profile 生效(文檔示例爲 desktop)。
- 僅在 macOS 桌面端測試;Web 端因 canRestart: false 隱藏按鈕。
- 按鈕佈局依賴 DSH 0.2.1-rc.5 側欄頂欄結構,DSH 大版本改版後選擇器可能需要維護者微調。
安裝前建議
插件在 DSH 進程權限下運行,安裝前應閱讀倉庫源碼與許可證(MIT)。Skillhub 目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。
結尾¶
dsh-restart 把桌面端「完全退出再打開」收成側欄一次確認操作,並用獨立 helper、進程等待、環境清理與日誌降低重啓失敗概率。需要安裝或貢獻時,可訪問目錄頁與 GitHub 倉庫覈對最新 README 與版本(當前 package.json 爲 0.1.0)。
- 目錄頁:https://www.skillhub.cn/plugins/Arc-huangjingtong/dsh-restart
- GitHub:https://github.com/Arc-huangjingtong/dsh-restart