dsh-reset-button:给 DSH 工具栏加一个重启按钮

前言

在 DSH(DeepSeek Harness)里安装或修改插件、切换 profile patch、更换 MCP 配置后,都需要重启宿主才能生效。以往的做法是关闭 DSH Desktop,重新打开,再找回刚才的会话窗口。这个过程重复出现,既打断思路又浪费时间。

dsh-reset-button 在对话框工具栏「完全权限」所在行的右侧增加一个「重启」按钮。点击后 DSH 自身完成重启,无需手动关闭窗口再重新打开。

这是什么

这是一个给 DSH Desktop 加上「一键重启」功能的客户端插件,由 IDKURLOVE 维护,使用 MIT 协议开源。

它解决的是「装完插件要重启」这个高频动作的繁琐问题:在工具行从左到右的布局中,重启按钮位于「完全权限」的右侧、dsh-purge 的回退按钮左边。

核心功能

重启按钮挂载在工具栏右侧的紧凑控件区,槽位为 conversation.input.right,排序为 order: 10。工具行从左到右的顺序为:

位置 内容 来源
最左 + · ⚠ 完全权限 ∨ 宿主自带
右侧紧凑控件区 ↻ 重启 本插件,槽位 conversation.input.right,order: 10
再往右 ↩ 回退 dsh-purge 的 rewind,order: 20
最右 模型选择器 宿主自带

点击按钮后,DSH 会尝试通过两条通道完成重启:

  1. 桌面端原生桥(首选):调用 globalThis.dshDesktop.restartHarness(),底层为 ipcRenderer.invoke('harness:restart'),由 Desktop 主进程负责重启。
  2. Host 兜底(浏览器打开 DSH Web 时):向 POST /dsh-reset-button/restart 发起请求(只接受回环地址),Host 端写入一个一次性 .cmd 文件到临时目录,使用 detached 模式执行 taskkill /IM "DSH Desktop.exe" /T /F,随后启动同一个 exe 文件。

两条通道都失败时,按钮只上报错误(红色),不做任何破坏性动作。Host 兜底仅在 process.execPath 确实是 DSH 桌面应用时生效;在 Node/Electron 开发运行时下返回 501 not-a-dsh-desktop-runtime,避免误杀其他进程。

安装与启用

推荐使用方式 A,通过本地插件目录安装。

方式 A:本地插件目录(DSH Desktop)

$plugins = "$env:APPDATA\dsh-desktop\harness\plugins"
$profile = "$env:APPDATA\dsh-desktop\harness\profiles\web"

# 1) 放包(这里用 junction 指到源码仓库,改完即生效)
New-Item -ItemType Directory -Force -Path "$plugins\dsh-reset-button" | Out-Null
Copy-Item -Recurse -Force .\* "$plugins\dsh-reset-button\"

# 2) 接到 profile 的 node_modules
New-Item -ItemType Junction -Force -Path "$profile\node_modules\dsh-reset-button" `
  -Target "$plugins\dsh-reset-button" | Out-Null

在 $profile\cordis.patch.yml 末尾添加:

# dsh-reset-button: 一键重启
- insert:
    - id: dsh-reset-button
      name: 'dsh-reset-button'

重启一次 DSH(此时还未显示按钮,手动重启;之后按钮会一直出现)。

方式 B:从 GitHub

git clone https://github.com/IDKURLOVE/dsh-reset-button.git
cd dsh-reset-button
# 然后照方式 A 的第 1~4 步;或把它作为 bundle 装进 profile

典型用法

重启按钮无需额外配置。安装后,在 DSH Desktop 的对话框工具栏「完全权限」右侧即可看到「↻ 重启」按钮。

点击按钮后等待几秒,DSH 完成重启,页面自动刷新回到当前会话,继续之前的操作。

适用场景与注意

  • 适合经常安装或修改 DSH 插件的用户,减少重启操作。
  • 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。

结语

dsh-reset-button 把「装完插件要重启」这个高频操作从手动关闭再打开,简化为点击工具栏上的按钮。对于需要频繁折腾 DSH 插件的用户,这个改动可以节省大量时间。

  • 插件目录页:https://www.skillhub.cn/plugins/IDKURLOVE/dsh-reset-button
  • GitHub 仓库:https://github.com/IDKURLOVE/dsh-reset-button
羽毛球分组比赛记分
小程序二维码

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

Xiaoye