dsh-plugin-restart:一键重启 DeepSeek Harness

前言

DeepSeek Harness(DSH)采用“一切皆插件”的架构,插件或 Host 的改动通常需要重启应用才能生效。在桌面端,官方菜单中的“重启应用与 Host”选项在正式版构建中未对外暴露,开发者或用户无法通过界面直接触发重启。

下面介绍 dsh-plugin-restart 插件。它通过侧边栏按钮和脱离进程的守护脚本,实现对整个桌面应用(Electron 外壳 + Host)的一键重启,让本地构建的插件或配置变更立即生效。

核心功能

该插件包含以下已核实的能力:

  • 侧边栏重启按钮:在左下角头像/设置一排的图标按钮中添加 ui-dsh-restart(order: 10),点击后弹出确认面板。
  • 脱离进程的守护者:使用 WMI(Win32_Process.Create)创建子进程,确保在主进程退出后守护脚本继续运行,从而拉起新的应用实例。
  • 托盘菜单支持:提供可选的 Windows 托盘入口,不依赖界面也能重启或拉起应用。
  • 状态自检与演练:提供 HTTP API 用于查询状态和执行 Dry-run 演练,不产生副作用。

安装与启用

安装该插件需要访问桌面端 CLI 或使用插件管理器。

  1. 在 DSH 里安装(推荐):
    使用 plugin_manager install_bundle,目标为仓库的绝对路径。
    plugin_manager install_bundle target=<你克隆这个仓库的路径>
  1. 使用桌面端自带 CLI:
    调用 dsh 命令将插件添加到当前 profile。
    $dsh = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
    & $dsh plugin --profile desktop add "<你克隆这个仓库的路径>"

首次使用配置

Host 侧的重启路由在第一次安装后需要手动引导才能生效。

  1. 在 $env:USERPROFILE\.dsh\profiles\desktop\cordis.patch.yml 中添加配置项:
    - id: dsh-plugin-restart
      config:
        dryRun: true
  1. 先重启应用。此时点击按钮只会返回计划,不会真正重启。
  2. 确认状态 API 返回正常,随后删除 dryRun: true 配置项。之后每次点击按钮即可执行真实重启。

使用方法

安装并完成引导配置后,常规使用流程如下:

  1. 在本地重建插件(如运行 pnpm build)。
  2. 点击侧边栏底部的「重启 DSH」图标,选择「立即重启」。
  3. 应用自动退出并在几秒内重新启动,页面重连后继续当前会话。
  4. 若应用未自动回来,可查看 %USERPROFILE%\.dsh\dsh-plugin-restart\restart.log 与 restart-result.json 日志。

技术实现与注意事项

该插件基于 Windows 平台的 Electron 应用特性设计,需注意以下事实:

  • 仅支持 Windows:依赖 Get-Process、Start-Process、taskkill 和 WMI,不支持 Linux 或 macOS。
  • 必须使用 PowerShell 5.1:插件运行时需要系统 PowerShell(powershell.exe),不支持 PowerShell 7(pwsh)。
  • 进程终止顺序:必须先单独终止 Electron 主进程,再终止 Host 等子进程。否则 Electron 会将 Host 退出视为崩溃,弹出“DeepSeek Harness 无法使用”的对话框。
  • 无热重载:Host 侧的代码修改必须通过重启进程才能生效,插件本身无法实现热重载。

卸载

如需移除插件,使用以下命令:

& $dsh plugin --profile desktop remove dsh-plugin-restart

GitHub:https://github.com/SOH4C4759/dsh-plugin-restart
目录页:https://www.skillhub.cn/plugins/SOH4C4759/dsh-plugin-restart

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

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

小夜