前言¶
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 或使用插件管理器。
- 在 DSH 里安装(推荐):
使用plugin_manager install_bundle,目标为仓库的绝对路径。
plugin_manager install_bundle target=<你克隆这个仓库的路径>
- 使用桌面端自带 CLI:
调用dsh命令将插件添加到当前 profile。
$dsh = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
& $dsh plugin --profile desktop add "<你克隆这个仓库的路径>"
首次使用配置¶
Host 侧的重启路由在第一次安装后需要手动引导才能生效。
- 在
$env:USERPROFILE\.dsh\profiles\desktop\cordis.patch.yml中添加配置项:
- id: dsh-plugin-restart
config:
dryRun: true
- 先重启应用。此时点击按钮只会返回计划,不会真正重启。
- 确认状态 API 返回正常,随后删除
dryRun: true配置项。之后每次点击按钮即可执行真实重启。
使用方法¶
安装并完成引导配置后,常规使用流程如下:
- 在本地重建插件(如运行
pnpm build)。 - 点击侧边栏底部的「重启 DSH」图标,选择「立即重启」。
- 应用自动退出并在几秒内重新启动,页面重连后继续当前会话。
- 若应用未自动回来,可查看
%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