前言¶
在 DeepSeek Harness(dsh)桌面端裏,改插件、調 host 配置或 Cordis 補丁之後,往往需要整應用連同 host 進程一起退出再拉起,光刷新瀏覽器頁面不夠。從任務管理器手動結束 DeepSeek Harness.exe 再點開,步驟多,也容易和正在進行的對話狀態攪在一起。下面介紹的 dsh-restart-button(維護者 NYSM803,客戶端類插件)在 Web GUI 上掛一個可拖動的浮動按鈕:確認後由插件負責關閉桌面應用及其 host,並在數秒內重新啓動;若安全軟件攔截或關閉失敗,對話框會說明原因,而不會一直轉圈。
這是什麼¶
插件全名對應倉庫 NYSM803/dsh-restart-button,在 SkillHub 目錄 歸類爲客戶端。它在 dsh 瀏覽器側渲染浮動按鈕與設置頁,在 host 側註冊 API 並拉起獨立的 relauncher 進程,專門面向 Windows 桌面版 dsh(dsh web 等純 CLI host 上按鈕仍可顯示,但重啓 API 無法找到可關閉的桌面進程,會失敗)。
package 當前版本爲 0.2.2,要求 dsh >= 0.2.2-rc.1、Node >= 22,許可證 MIT。host 提供 React 18。
核心功能¶
- 可拖拽浮動按鈕:拖到任意角落;位置寫入
~/.dsh/restart-button.json,重啓後保留。 - 確認後再執行:單擊打開對話框;在關閉請求發出前可用「取消重啓」撤回;發出後流程不可逆,對話框會提示。
- 超時與自清理:若 45 秒內應用未關閉,插件自動終止任務並說明原因;失敗時按鈕會告知原因並清理狀態,避免無限 loading。
- 圖標與外觀:四種內置矢量圖標,或上傳 PNG / JPG / WebP / GIF / SVG(≤ 2 MB),存於
~/.dsh/restart-button/icon.*;背景色可自定義,未設置時跟隨 UI 主題,字標隨深淺自動切換。 - 位置鎖定:可在設置裏凍結按鈕,防止誤拖,仍保留點擊重啓。
- 設置入口:Settings → Restart button,改動即時生效。
重啓進行中會打斷正在生成的回答;已保存的會話 transcript 不受影響(README 明確說明 in-flight answer 會被中斷)。
安裝與啓用¶
任選一種方式安裝(命令須與倉庫 README 一致)。
圖形界面:打開 插件 / Plugins → 安裝插件,粘貼包地址(見下)。
終端(使用你日常的 profile,例如 desktop):
dsh plugin --profile desktop add https://codeload.github.com/NYSM803/dsh-restart-button/tar.gz/refs/heads/main
上述 codeload 形式僅需 pnpm。亦可使用 github:NYSM803/dsh-restart-button 簡寫,但 本機須已安裝 git;否則 pnpm 解析會報 ERR_PNPM_GIT_RESOLVE_FAILED。
說明:host 側在下次應用啓動時掛載;瀏覽器側在頁面重載後生效。
典型用法¶
- 安裝並重啓/重載 dsh Web 界面後,在界面一角看到浮動重啓按鈕。
- 需要完整重啓桌面 dsh 時,點擊按鈕,在對話框中確認;在關閉指令發出前仍可取消。
- 按需打開 Settings → Restart button 調整圖標、背景色或鎖定位置。
- 若重啓異常,可查看啓動器日誌:
%LOCALAPPDATA%\dsh-restart-button\relaunch.log,或通過GET /api/restart-button/log讀取末段日誌(每次嘗試會重寫該文件,再次點擊前宜先讀)。
重啓鏈路概要:客戶端 POST /api/restart-button/restart 後,host 以 detached 方式在應用自身可執行文件上啓動 lib/relauncher.mjs(ELECTRON_RUN_AS_NODE),避免依賴易被安全軟件攔下的 PowerShell 計劃任務等路徑;host 在 1.8 秒內校驗啓動器是否寫出首行日誌,否則以錯誤對話框反饋。
適用場景與注意¶
適合:長期在 Windows 桌面 dsh 上開發、頻繁裝/改插件或 host 配置,希望用一次確認完成「關應用 + 再起應用」的開發者。
限制與風險:
- 僅 Windows 桌面應用 具備完整重啓能力;relauncher 使用
tasklist/taskkill/cmd/powershell,且只識別單個鏡像名DeepSeek Harness.exe。 - 360、火絨、Windows Defender 等可能攔截啓動器或未簽名腳本拉起的進程;README 給出了信任區/排除項示例路徑,並說明臨時退出安全軟件也可驗證,但加入白名單更穩妥。
- 插件以 當前 dsh 進程權限 運行,安裝前應自行審閱 源碼與 MIT 許可證。
- 若強制結束被攔截且進程仍存活,啓動器 不會 再啓第二個實例,需手動退出應用後重開。
常見界面提示與含義見倉庫 README 的 Troubleshooting 表(例如啓動器未跑起、超過 45 秒未生效、已不可取消等)。
配置與 API(摘錄)¶
設置頁字段:Icon、Background(含跟隨主題)、Lock position。
開發者可調用的 HTTP 路由包括:/api/restart-button/config、/icon、/restart(支持 {"dryRun":true})、/status、/cancel、/log 等,詳見 GitHub README。
結尾¶
dsh-restart-button 把「確認 → 關桌面進程 → 自動再拉起」收成 Web 界面上的一步操作,並處理取消、超時與安全軟件導致的失敗反饋。插件目錄:SkillHub - dsh-restart-button;源碼與完整說明:GitHub - NYSM803/dsh-restart-button。