DS_RESTAR:DeepSeek Harness 自助重啓插件

前言

在 DeepSeek Harness(DSH)裏改插件、調配置或長時間跑任務時,常常需要整進程重啓才能生效。直接在插件進程裏調用類似 app.relaunch() 的做法,往往無法乾淨地結束當前 DSH 再拉起新實例——插件本身跑在 DSH 進程內,很難扮演「先殺再起」的執行者。下面介紹社區插件 dsh-restar(倉庫名 dsh-restar,界面品牌 DS_RESTAR):用倒計時、前端卡片和進程外看守程序,把「說一句重啓 → 等倒計時 → 自動結束並重啓 → 窗口回前臺」做成可撤銷的一整套流程。

這是什麼

DS_RESTAR 是維護者 a1422398302aa-hash 發佈的 DSH 客戶端類插件。一句話定位:給 DeepSeek Harness 用的「自助重啓」小部件——排倒計時,時間到了由獨立 Node 看守進程結束 DSH、等待空檔、再啓動,用戶只需對助手說「重啓」或點卡片上的按鈕。

整體流水線(資料原文):

倒計時 → 結束進程 → 空檔 30s → 重新啓動 → 窗口回到前臺 → 看守進程自行退出

架構:爲什麼拆成「插件 + 看守進程」

角色 位置 職責
dsh-restar(本插件) DSH 進程內 下單(寫排期文件)、查單、提供工具和前端卡片
DS_RESTAR 看守進程 獨立 node 進程 執行 kill / 等待 / start,並驗證新進程是否存活

看守進程由 WMI 拉起,父進程是 WmiPrvSE.exe,不在 DSH 的 job object 裏——否則 taskkill /F 會把看守一起帶走(README 中說明爲第一版踩過的坑)。存活判據只看進程名,不把 DSH 端口當作依據(port 保持 0;第二版踩過的坑)。

核心功能

助手與工具

對助手說:

  • 「重啓一下」→ 調用 dsh_restart,默認 60 秒後執行
  • 「90 秒後重啓,我要保存東西」→ 使用 delaySec: 90
  • 「別重啓了」→ dsh_restart_cancel,或直接點卡片上的紅色按鈕

註冊的工具(README 表格):

工具 作用
dsh_restart(delaySec?, reason?) 排一次重啓,返回時間線
dsh_restart_status() 還有多久、看守進程在不在、上次花了多久、最近日誌
dsh_restart_cancel() 撤銷:刪排期 + 結束看守進程 + 撤掉兜底任務

屏幕上的倒計時卡片

有排期時,輸入框上方會出現一張卡片:

  • 文案「DS_RESTAR 即將重啓」+ 大號 mm:ss 倒計時
  • 進度條按「排期時刻 → 觸發時刻」推進;最後 10 秒整體轉紅
  • 底行顯示看守進程狀態,右側紅色 取消重啓 按鈕
  • 沒有排期時卡片不存在(display:none),也不攔截點擊(pointer-events:none,按鈕除外)

配置與安全邊界

插件側(DSH 插件設置):

鍵 默認 說明
watchdogRoot %USERPROFILE%\.dsh\dsh-restar 看守程序運行目錄
defaultDelaySec 60 默認倒計時
defaultGapSec 30 殺完到重啓的空檔(展示用;實際空檔在 config.json 的 timing.killGapMs)

首次執行重啓時,插件會把自帶的 watchdog/ 目錄鋪到 %USERPROFILE%\.dsh\dsh-restar,並生成指向當前 DSH 的 config.json,無需另外克隆倉庫。

看守程序 config.json 中還包含應用路徑、時序(如 killGapMs: 30000)、可選目錄監聽自動重啓、重啓前 sync 等字段;詳見倉庫 README。

安全邊界(資料原文要點):

  • 只在本機操作,只結束 imageName 匹配的進程
  • 排期文件是唯一事實來源;撤銷即刪除排期
  • 看守在重啓成功後會自行退出;失敗時不退出,保留兜底計劃任務 DS-Watchdog-Fallback,5 分鐘後嘗試補拉一次

安裝與啓用

環境要求:Windows(使用 taskkill / schtasks / explorer.exe 相關行爲),Node 20+。

官方安裝命令(README 原文,請將佔位替換爲倉庫地址或本地路徑):

dsh plugin add <本倉庫地址或本地路徑>

社區目錄頁:https://www.skillhub.cn/plugins/a1422398302aa-hash/dsh-restar
源碼與說明:https://github.com/a1422398302aa-hash/dsh-restar

安裝前請自行查看倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,涉及結束本機進程與計劃任務,僅在可信環境中使用。

典型用法小結

  1. 用上述 dsh plugin add 安裝插件並啓用客戶端注入(package.json 中 dsh.client.platform 爲 web,immediately: true)。
  2. 需要對 DSH 整進程重啓時,對助手說明延遲秒數或直接說「重啓一下」。
  3. 在卡片上確認倒計時;若要放棄,點 取消重啓 或說「別重啓了」。
  4. 需要排查時用 dsh_restart_status() 查看剩餘時間、看守狀態與日誌。

適用場景與注意

適合:在 Windows 上長期用 DSH、頻繁改插件或配置、希望可撤銷的延遲重啓而不是手動關進程再點開客戶端的開發者。

務必注意:

  • 僅 Windows;Linux/macOS 不在 README 支持範圍內。
  • 插件與看守程序會結束名爲 DeepSeek Harness.exe(可配置 imageName)的進程,安裝前確認配置與源碼。
  • SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;星標與版本以 GitHub 頁面爲準(資料中 package.json 版本爲 0.3.0)。

結尾

DS_RESTAR 把「重啓 DSH」從進程內做不到的 relaunch,拆成插件下單 + 進程外看守執行,並用卡片和取消按鈕把風險控在可見倒計時之內。若你需要在 Harness 生態裏找同類能力,可在社區目錄檢索 dsh-restar,或打開 GitHub 倉庫閱讀 watchdog/ 與 lib/ 的實現細節。

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

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

小夜