dsh-restart:从侧边栏或智能体工具重启 DSH,并可选续接同一会话

前言

改 DSH 插件、cordis.patch.yml 或 profile 之后,往往需要关掉进程再开,改动才会进新进程。手动关窗口、找可执行文件再点一次,会打断当前会话;若还要让智能体接着上一轮对话,就得自己记 session、复制提示词。下面介绍的 dsh-restart(维护者 machine202502,社区分类:工作流)把「重启应用」做成侧边栏一键操作,并在开发场景下提供 dsh_restart 工具:重启后可写 [auto.continue] 回到同一会话。插件还带本地桥接、启动看门狗(watchdog)与 profile 回滚,并针对 Desktop Host 反复启动导致的 dsh-auth-* cookie 堆积做了清理。

这是什么

dsh-restart 是 DeepSeek Harness(DSH)社区插件,仓库 machine202502/dsh-restart,目录页 SkillHub。一句话:从侧边栏或(仅限开发调试的)智能体工具重启 Harness,可选在重启后继续同一会话;附带看门狗、profile 回滚与自动续聊逻辑。

插件以当前 DSH 进程权限运行。安装前请自行查看仓库源码与 MIT 许可证(package.json 中为 0.1.0,要求 Node >= 20)。

核心功能

侧边栏重启

能力 位置
「Restart DeepSeek Harness」按钮 侧边栏页脚,账号旁(电源图标)
确认 模态框两个按钮,无多余选项

点击后只重启应用:不写入 pending 标记,不自动续接会话,不发送 [auto.continue]。模态框会提示:正在执行回合的工作区会话可能被中断。

智能体工具 dsh_restart

供扩展开发、调试插件与 profile 使用,不是日常「刷新状态」或无需改代码/配置时的重启手段。

dsh_restart({ fake: true })
→ Preflight passed; fake restart requested, nothing was restarted.
  • fake: true:跑完预检,不真正重启,便于测试。
  • 无 fake:重启应用,并通过会话消息 [auto.continue](或看门狗回滚 profile 时为 [auto.continue.failed])让客户端回到同一会话。

若插件配置里关闭了工具,旧会话里仍会调用失败:unknown tool "dsh_restart"。

重启后自动续接(仅工具路径)

重启进程不能是当前应用的子进程(Windows 上 taskkill /T 会连同重启器一起杀掉)。插件流程概要:

  1. 写入标记 %LOCALAPPDATA%\dsh-restart\pending.json(含 token、sessionId 等);
  2. Windows:创建一次性计划任务 DSH-Restart,由 helper 等待约 1.5s、结束应用进程树、再等待约 1.8s 后启动 .exe 并删除任务;macOS/Linux 使用独立 sh 流程(kill + open/启动)。
  3. 新进程通过本地桥 127.0.0.1:49233 原子领取标记(GET /claim),避免双重初始化发两条消息。

客户端打开同一会话,等 Composer 就绪后插入并发送 [auto.continue](Enter 为备选)。输入框里已有草稿会先暂存到 localStorage,发送后再还原到输入框且不自动发送。消息队列属于会话状态,插件不读写。

侧边栏按钮不走上述标记与续接路径。

本地桥与看门狗

桥接接口(资料原文):

GET  /claim      → { marker } — 仅一个客户端原子领取
POST /restart    → 写标记并重启
GET  /health     → 看门狗判断宿主是否健康启动
GET  /settings   → 当前覆盖项
POST /settings   → 保存覆盖项(无需重启)

每次由 dsh_restart 触发的重启带有 token:pending.json 与 watchdog.json 绑定;宿主正常启动后会删除 watchdog.json。看门狗在配置的超时内等 /health;失败则对比重启前 SHA-256(package.json、cordis.patch.yml、cordis.yml),若文件未被手动改过则回滚 profile。启动前 helper 还会运行 src/cookie-clean.py,清理 127.0.0.1/localhost 上多余的 dsh-auth-* cookie,缓解 Web authentication failed(431 / Cookie 过大)。若崩溃日志已是该错误,看门狗会清 cookie 再启一次而不回滚 profile。

dsh_restart 何时拒绝

仅在「安静」模式下对主智能体开放(Full access);侧边栏按钮不做这些检查。

检查 结果
子智能体调用 拒绝,需上报父智能体
非 Full access 拒绝
其他会话/子智能体仍在 running 或队列非空 拒绝
仍有 background job running 拒绝

已知缺口:子智能体结束回合后,其后台任务可能已从 ctx.jobs 注销但进程仍在,预检可能看不到,重启不会被拒绝。

安装与启用

官方安装命令:

npx --yes github:machine202502/dsh-restart

或手动在 profile 中声明依赖并加入 bundle:

"dsh-restart": "github:machine202502/dsh-restart#main"

并将 dsh-restart 写入 dsh.profile.bundles。

安装后需重启 DSH(侧边栏按钮出现后可用该按钮完成首次重启)。

插件配置

路径:Plugins → Restart → Configure。覆盖项保存在 %LOCALAPPDATA%\dsh-restart\settings.json;cordis.patch.yml 仍为默认值。保存设置无需重启应用,工具注册/注销即时生效。

设置 默认 作用
智能体可用 dsh_restart 开 关则工具消失,旧记忆调用报错
看门狗启用 开 关则重启仅关开应用,不回滚 profile
看门狗等待秒数 10 启动健康信号超时前等待(1–120)

典型用法

  1. 日常只想干净重启:侧边栏页脚电源图标 → 确认。不续会话。
  2. 改 patch/profile 后让主智能体接着聊:在 Full access、无其他 running 会话/任务时,由主智能体调用 dsh_restart()(开发调试);重启后会话收到 [auto.continue]。
  3. 测预检逻辑:dsh_restart({ fake: true })。
  4. 冒烟测试(仓库内):node tests/smoke.mj(README 中另有截断说明)。

适用场景与限制

适合:插件与 Cordis 配置开发者;需要在不丢当前会话的前提下重启进程验证改动;受 cookie 堆积影响反复 welcome 失败的环境(插件会清理 dsh-auth-*)。

注意:

  • 无法在系统托盘或 Electron 主进程 Application 菜单加项(插件跑在子 host 进程)。
  • Windows 依赖计划任务;策略禁止创建任务时重启会失败。
  • 工具与子智能体、权限、并发会话/任务强相关;生产对话里应优先用侧边栏重启。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属;DSH 生态是「一切皆插件」,安装第三方插件前请审阅源码。

结尾

dsh-restart 把 Harness 重启收进侧边栏,并把「重启 + 同会话续聊 + 启动失败回滚 + auth cookie 清理」做成一条可配置的工作流;开发时用 dsh_restart,日常用页脚按钮即可。

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

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

小夜