dsh-restart-button:DSH Web 界面可拖拽的一鍵重啓按鈕

前言

在 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 側在下次應用啓動時掛載;瀏覽器側在頁面重載後生效。

典型用法

  1. 安裝並重啓/重載 dsh Web 界面後,在界面一角看到浮動重啓按鈕。
  2. 需要完整重啓桌面 dsh 時,點擊按鈕,在對話框中確認;在關閉指令發出前仍可取消。
  3. 按需打開 Settings → Restart button 調整圖標、背景色或鎖定位置。
  4. 若重啓異常,可查看啓動器日誌:%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。

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

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

小夜