mandarin715/dsh-autostart

前言

在 Windows 环境下使用 DeepSeek Harness (DSH) 时,重启服务是一个常见操作。常规做法中,重启后如果看护进程异常或端口探测失败,DSH 可能无法自动恢复,导致对话中断。

mandarin715/dsh-autostart 是一个 Windows 专用的 DSH 插件。它通过常驻看护进程接管重启逻辑,解决了“重启失败导致 DSH 停摆”的问题。同时,它提供无控制台窗口的运行环境,并支持一键开机自启。

核心功能

  1. 一键开机自启:通过写入注册表实现开机自动运行。
  2. 一键重启且保证恢复:重启失败时,插件会拒绝关闭 DSH,确保服务始终在线。
  3. 常驻看护进程无控制台窗口:DSH 依附于隐藏控制台启动,避免弹窗。
  4. 服务状态监控与端口探测:实时探测服务状态。
  5. 支持钩子脚本:服务启动后可执行自定义脚本。
  6. 注册表自启管理:管理启动项的读写。

安装与启用

通过命令行安装插件:

dsh plugin --profile web add "github:Mandarin715/dsh-autostart#v0.2.1"

安装后重启 DSH,进入「设置 → 通用设置」,在页面下方找到插件卡片。

  1. 点击「启用自启」,插件会将配置写入注册表 HKCU\...\Run。
  2. 在卡片中点击「重启服务」进行测试。

配置

插件配置位于 profile 的 cordis.patch.yml 文件中:

- id: dsh-autostart
  name: dsh-autostart
  config:
    hookScript: ''                 # 可选,服务起来后执行的脚本绝对路径
    dshPort: 3080
    allowedHosts: []               # 必须显式填写,如 ['derp.example.com']

重要说明:hookScript 等配置项在启用自启时会被快照写入配置文件。因此,修改配置(如 hookScript)后,必须重新在设置页点击「启用自启」才能生效。

关于 allowedHosts:默认为空数组,即不信任任何非回环的 Host。若通过反向代理访问,必须将域名显式填入白名单,否则写操作会被拒绝。

注意事项

  • 系统限制:仅支持 Windows 系统。
  • 运行环境:需要 Node.js >= 20 和 DSH >= 0.1.0-rc.6。
  • Agent 影响:重启时会中断正在执行的 Agent 回合,结果可能未落盘。
  • 配置生效:配置修改需重新启用自启。
  • 重启保底:重启失败时不会关闭 DSH,但可能产生竞态条件(与其他自启项同时启动)。
  • 安全软件:写入注册表可能被安全软件拦截,导致「启用自启」失败。

短结尾

该插件通过常驻看护机制,解决了 Windows 环境下 DSH 重启不可靠的痛点。安装后需在设置页重新启用以应用配置。更多细节可参考项目目录页或 GitHub 仓库。

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

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

小夜