DS_RESTAR: DeepSeek Harness Self-Restart Plugin

前言

在 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/ 的实现细节。

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

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

Xiaoye