dsh-restart-button:侧栏一键重启 DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里改插件、动宿主配置时,经常需要整进程重启才能生效。Windows 上退出再点快捷方式也能做到,但步骤分散;若从任务管理器结束进程,还可能撞上 Electron 的崩溃对话框,或留下不该出现的控制台窗口。下面介绍社区维护的客户端插件 dsh-restart-button:在侧栏左下角加「重新启动」按钮,用两段式确认降低误触,并在重启流程里处理 job object、权限与窗口可见性等问题。需事先说明:仅支持 Windows,实现依赖 schtasks、wscript、taskkill 等系统机制。

这是什么

dsh-restart-button(GitHub:yami0310/dsh-restart-button)由 yami0310 维护,在 SkillHub 插件目录 归类为客户端插件。它通过 Cordis 补丁向网页侧栏注入 UI,并向宿主注册 POST /api/dsh-restart-button,在桌面端完成「结束当前实例 → 拉起新实例 → 等待 Web 就绪」,且助手进程结束后不常驻、不留控制台窗口。

DSH 生态强调「一切皆插件」;SkillHub 等目录由社区维护,与 DeepSeek / 幻方无官方从属关系。安装前建议阅读仓库源码与 MIT 许可证,并知晓插件以当前 DSH 进程权限运行。

核心功能

侧栏按钮与确认

左侧栏底部会出现圆环箭头按钮。点第一次变为「确认重启?」;再在 3 秒内点第二次才真正触发重启。展开侧栏时显示文字,收成竖条时仅显示图标。设计上不一点即重启:按钮紧贴设置入口,误触会立即掐断当前会话。

重启链路(概要)

按钮 ──POST──> 宿主半边 ──schtasks /run──> 任务计划服务
                                              │
                                              ▼
                                          wscript
                                              │
                                              ▼
                                       node 助手(helper.mjs)

助手会先结束 GUI 主进程(避免 renderer 先死触发崩溃弹窗),再按镜像名清理剩余进程,最后 spawn 新 DSH 实例,并探测 Web 界面是否就绪。计划任务名 DSHRestartButton 用于让助手脱离 DSH 的 job object,避免父进程退出时助手被一并杀掉。

安全与并发

接口只接受本机同源:Host 须为 127.0.0.1 / localhost / [::1],且 Origin(若有)须与 Host 一致。同一时刻只允许一次重启在进行,重复请求返回 409。

安装与启用

资料中的安装方式为克隆仓库后,用插件管理器以 link: 加载目录(便于后续 git pull 更新):

git clone https://github.com/yami0310/dsh-restart-button.git

在 DSH 插件管理器中执行(将 <仓库路径> 换为本地克隆目录):

plugin_manager install_bundle target=link:<仓库路径>

插件管理器会把包名写入 profile 的 dsh.profile.bundles。客户端半边会热加载;宿主半边需重启一次 DSH 后路由与计划任务逻辑才完整生效。package.json 标明版本 1.0.0,运行环境 Node >= 18,os: win32。

典型用法

  1. 按上一节完成安装,并重启 DSH 一次。
  2. 在侧栏底部找到重新启动按钮;需要重启时点两次确认。
  3. 若只想看助手如何归类进程、不写死重启,可在仓库目录使用自检模式:
DSH_RESTART_DRYRUN=1 node lib/helper.mjs "<DSH 的 exe 路径>"

Windows CMD:

set DSH_RESTART_DRYRUN=1
node lib\helper.mjs "C:\Program Files\DeepSeek Harness\DeepSeek Harness.exe"

日志写入 %USERPROFILE%\.dsh\restart-button.log,自检时不会结束任何进程。

配置与环境变量

环境变量 作用
DSH_RESTART_DRYRUN=1 只自检,不重启
DSH_RESTART_NODE 指定内置 node.exe 路径;默认从 exe 同级 resources/runtime/... 与 ~/.dsh/dsh-runtimes/... 查找,都不存在时再设置

适用场景与注意

适合在 Windows 上长期使用 DSH、且经常因插件或宿主配置变更需要完整重启桌面的用户。不适合 macOS / Linux:README 明确写明整包建立在 Windows 任务计划与 wscript 之上。

常见「点了没反应」多与计划任务权限有关(DSH 常以管理员运行,任务须 /RL HIGHEST);仓库 README 的「九个坑」表记录了 job object、windowsHide、端口探测、ELECTRON_RUN_AS_NODE、busy 超时等细节,排查时可对照日志 restart-button.log。

卸载:在插件页停用 dsh-restart-button;若要删除计划任务:

schtasks /delete /tn DSHRestartButton /f

相关链接

经过上面的步骤,侧栏即可用可控的方式完成 DSH 桌面端重启,而不必反复走系统退出或任务管理器路径。

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

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

小夜