dsh-relaunch:从 DSH 侧栏一键重启桌面客户端

前言

DeepSeek Harness(DSH)桌面版没有面向普通用户的「重启应用」入口。源码里虽有重启菜单项,但挂在 development 开关之后,正式构建不会暴露。常见做法是改安装目录里的 app.asar,能临时加上按钮,却会在应用更新时被整包替换掉,补丁随之消失,还要反复改别人的安装文件。

DSH 的生态思路是「一切皆插件」:能力放在 profile 里的 bundle,不碰应用本体,更新也不会抹掉。dsh-relaunch 走的就是这条路——在侧栏增加一条 rail,点面板里的按钮即可关闭当前 Harness 并重新拉起进程。下面介绍它是什么、怎么装、怎么用,以及 Windows 上的实现要点与限制。

这是什么

@yishuiliufang/dsh-relaunch 由维护者 yishuiliufang 发布,分类属于客户端插件。它解决的是:在 DSH 自身 UI 里完成桌面应用重启,且安装方式不依赖修改 app.asar,因此能扛住应用更新。

官方简介:Restart DeepSeek Harness from its own sidebar. A DSH plugin that survives application updates. 仅支持 Windows;在 macOS / Linux 上侧栏入口仍可能出现,但点击会干净失败,不会误操作。

核心功能

以下能力均来自项目 README 与 manifest,无额外配置项。

能力 说明
侧栏一键入口 与内置 panel 并列的 rail 项,图标为循环箭头
无控制台闪屏 通过 wscript.exe 无窗口启动 worker,不在屏幕上闪控制台
无确认弹窗 面板上的按钮即确认,不会二次询问
更新后仍可用 作为 profile 插件安装,不由 updater 覆盖
需手动触发 不会自动重启,必须点击按钮
中英文 跟随应用语言设置

重启会中断当时正在跑的任务;会话/checkpoint 会按 DSH 机制保留,但执行中的任务不会继续。这是重启的语义,不是插件 bug。

安装与启用

1、安装 npm 包

npm install @yishuiliufang/dsh-relaunch

2、写入 profile 的 bundles

在 profile 的 package.json 里把包名加入 dsh.profile.bundles(与现有 bundle 并列,保留你已有的 "..." 条目):

{
  "dsh": {
    "profile": {
      "bundles": ["...", "@yishuiliufang/dsh-relaunch"]
    }
  }
}

bundle 自带 cordis.patch.yml,会在进程范围内插入插件行。

3、重启 profile / 应用

loader 在启动时读取 bundle 组合,侧栏不会出现新入口,直到你重启一次 DeepSeek Harness(或等价地重启 profile)。仅在运行中 npm install 只会链接包,不会立刻出现 rail。

环境要求

  • 操作系统:Windows(重启逻辑使用 wscript.exe、taskkill 等 Windows 设施)。
  • DSH 桌面:engines.dsh 要求 >= 0.1.7-rc.2(package.json 中声明)。

插件不声明 @deepseek-ai/* peer dependency,避免 profile 兼容性检查因 peer 范围不匹配而整包跳过、表现为「装了但没效果」。

典型用法

  1. 在左侧 rail 点击循环箭头图标,打开 relaunch 面板。
  2. 阅读面板内一行说明后,点击唯一按钮。

按钮按下后的顺序(README 描述):

  1. 向插件 Host 路由 POST /dsh-relaunch/restart 发请求(需认证)。
  2. 短暂等待,让响应先回到浏览器。
  3. 结束当前 Harness 相关进程。
  4. 再次启动应用,验证进程仍在,并记录各步骤。

实现上,插件不能在被重启的进程内直接「自杀式」重启,因此交给 detached worker:rail → Host 路由 → launch-hidden.vbs(wscript.exe)→ 以 ELECTRON_RUN_AS_NODE=1 无窗运行 DeepSeek Harness.exe → restart-harness.mjs 执行 terminate → wait → start → verify。worker 在真正拉起桌面应用前会清掉 ELECTRON_RUN_AS_NODE,否则 Electron 会以裸 Node 退出,出现「重启后什么都没跑」的严重问题(项目 test/host.mjs 覆盖该场景)。

适用场景与注意

适合谁

  • 在 Windows 上长期使用 DSH 桌面,需要偶尔完整重启进程(加载新 profile bundle、排查卡死、释放资源等),又不想每次改 app.asar 或找外部脚本。

安装前建议

  • 插件以当前 DSH 进程权限运行;重启会结束 Harness 并重新拉起,等同于你手动关进程再开。安装前应浏览 GitHub 仓库 源码与 MIT 许可证,确认可接受其行为。
  • 社区目录 SkillHub 插件页 与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系,不是官方应用商店。

已知限制(README)

  • 仅 Windows 上重启有效;其他平台 rail 可能出现但操作失败。
  • 安装后必须 profile/应用重启一次,侧栏才有入口。
  • 同一时间只应有一次重启在进行;按钮会禁用,但多个窗口仍可能各点一次。
  • 无配置项:路由与延迟固定,无法在插件内改选项。

结尾

若你的痛点是「DSH 没有重启按钮、改 asar 又扛不住更新」,dsh-relaunch 用 profile 插件在侧栏补这一环,Windows 下一键 relaunch,且不闪控制台、不要确认框。安装命令与 bundle 写法以 README 为准;细节与变更见仓库 CHANGELOG.md。

  • 目录页:https://www.skillhub.cn/plugins/yishuiliufang/dsh-relaunch
  • GitHub:https://github.com/yishuiliufang/dsh-relaunch
羽毛球分组比赛记分
小程序二维码

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

Xiaoye