dsh-easy2restart:侧边栏双击重启 DSH,归档前确认与自动备份

前言

在 DeepSeek Harness(DSH)里做 Agent 开发,经常会遇到两类操作:进程卡死或配置改完需要整进程重启,以及归档会话时误点、会话仍在跑就被关掉。DSH 自带归档入口,但缺少「一键整进程重启」和「归档前统一确认 + 活动会话保护」的组合能力。社区维护者 SMPcosy 发布的客户端插件 dsh-easy2restart(npm 包名,仓库 SMPcosy/dsh-easy2restart)把原先两个旧包 dsh-plugin-easy2restart 与 dsh-plugin-safe-archive 合并为单一插件,当前版本 0.2.3,MIT 许可证。下面介绍它做什么、如何安装,以及使用时需要注意的环境限制。

这是什么

dsh-easy2restart 是 DSH 桌面端的客户端插件:在侧边栏底部注入「重启 DSH」按钮(双击触发整进程重启);拦截各归档入口,先弹确认框,会话仍活动时展示活动清单并强制 10 秒倒计时后才能「停止并归档」;归档成功后按配置自动把会话文件、附件、标题缓存与元数据复制到备份目录,并在右侧栏提供「已归档会话」文件树浏览(根目录为 DSH 归档会话目录,不指向备份副本)。

插件以当前 DSH 进程权限运行,安装前建议在 GitHub 仓库核对源码与许可证;社区目录页见 skillhub.cn 条目(独立站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

重启 DSH

  • 按钮位置:sidebar.footer.action(账号头像、设置上方),图标为手绘缺口环 + 箭头。
  • 双击后,宿主通过 Windows 计划任务拉起脱离 DSH 进程树的 PowerShell 脚本,对整棵 DSH 进程树执行 taskkill /T,再重新启动 DeepSeek Harness.exe。
  • 当任意 Agent 会话状态为 running 时按钮置灰,悬停说明原因;宿主会保存「重启待办」(pending.json),便于后续扩展「重启后回到原会话」等流程。

安全归档

  1. 从菜单、行尾按钮或快捷键触发归档时,先出现确认框;若开启自动备份,文案会写明备份目录;若关闭自动备份,会以红字提示本次不生成备份副本。
  2. 点「确认归档」后若 Host 因 workspace/session-active 拒绝,对话框切换为「会话正在活动」,列出进行中回合、子代理、后台任务、定时任务等;「停止并归档」需 10 秒倒计时 结束后才可点击。

归档即备份

  • 宿主包装 workspaceRegistry.archiveSession:归档成功约 3 秒后,将会话相关文件复制到
    <备份根目录>\<会话名>-<归档日期-时间>\。
  • 去重与状态记录在 <备份根目录>\_auto-backup-state.json;插件启动 5 秒后补扫「已归档但未备份」的会话,也可通过 POST /api/dsh-easy2restart/scan 手动补扫。
  • 每次备份追加到 归档清单.md 与 _auto-backup-manifest.json;进度可查看 ~/.dsh/archive-backup/auto-backup.log。
  • 备份根目录可在右侧栏修改,自动备份可整体关闭;关闭后归档仍进行,只是不复制副本。

右侧栏「已归档会话」

  • 在 DSH 右侧栏引导页新增条目,以 <DSH_HOME>/sessions 为根做只读文件树(含归档清单与会话存储目录两棵树),点击文件可在资源管理器中定位;顶部有「自动备份」设置卡片与备份状态展示。

配置优先级

环境变量 > ~/.dsh/storages/dsh-easy2restart/config.json > 内置默认。

名称 作用
DSH_EASY2RESTART_BACKUP 设为 off / 0 / false 等可关闭自动备份
DSH_EASY2RESTART_BACKUP_DIR 绝对路径,覆盖界面中的备份目录
config.json 示例 {"backup":{"enabled":true,"dir":"D:\\DSH备份"}}
内置默认目录 F:\AI\会话归档备份\DSH(未配置时)

环境变量存在时,界面上的开关与路径框变为只读并提示,避免误以为改界面即可覆盖 env。

保存备份目录前会探测:目录不存在则尝试创建并写探针文件;不可写则红字提示且不落盘。

安装与启用

前提:dsh 命令已在 PATH 中(DeepSeek Harness 自带),且为 DeepSeek Harness 桌面版 0.2.0-rc 以上、Node.js ≥ 22、Windows(重启与文件夹选择依赖计划任务、PowerShell 与 Windows 路径守卫)。

在 DSH「插件 / 查检中心」搜索 dsh-easy2restart,或执行:

dsh plugin --profile desktop add dsh-easy2restart@0.2.3

README 建议钉死版本号:pnpm 的 minimumReleaseAge(默认 24 小时)可能导致只写包名时装到上一版。装完后用 dsh plugin --profile desktop list 核对,并重启 DeepSeek Harness(插件不支持热加载)。成功后侧边栏底部可见重启按钮,右侧栏引导页出现「已归档会话」。

从旧包迁移:先移除 dsh-plugin-easy2restart(若曾本地装过未发布 npm 的 dsh-plugin-safe-archive 也一并 remove),再安装本包;状态文件、备份目录与配置兼容,无需迁移数据。

卸载:

dsh plugin --profile desktop remove dsh-easy2restart

重启 DSH 后生效;磁盘上的备份、config.json 与日志需自行删除。

典型用法

  1. 重启:会话空闲时双击侧边栏「重启 DSH」;会话运行中请等待 Agent 结束或先停止任务。
  2. 归档:沿用 DSH 原有归档入口;按确认框操作;若会话仍在活动,等倒计时结束再点「停止并归档」。
  3. 改备份位置:右侧栏「已归档会话」→ 展开「自动备份」→ 修改目录或点「选择…」→ 保存;只影响之后的归档,已有备份不会移动。
  4. 健康检查(可选):GET /api/dsh-easy2restart/health 可确认宿主是否已加载本插件。

离线自检(不启动 DSH、不触发重启、不动真实备份):

node test/plugin.selftest.mjs

(需在插件包目录内执行,一般用于开发或装包后验货。)

适用场景与注意

适合:经常在 Windows 桌面版 DSH 上开发 Agent、需要快速整进程重启而不手动找 exe;希望归档前统一确认、避免误归档仍在跑的会话;希望归档后自动留一份可配置的本地备份,并在 UI 里浏览已归档会话目录。

务必知晓:

  • 重启能力仅 Windows;Linux/macOS 用户若安装包,归档与备份相关能力仍可能部分可用,但 README 明确重启依赖 Windows。
  • 插件与 DSH 同权限运行;第三方插件应自行审阅 GitHub 源码 后再安装。
  • README 单独说明了一项与插件无关的 DSH 启动问题:频繁重启会导致 127.0.0.1 上 dsh-auth-* cookie 累积,约 71 条后请求头超限、桌面握手失败。处理方式是清理 %APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies 中相关条目,或安装 dsh-cookie-guard 做长期清理;点 DSH 弹窗里的「Disable third-party plugins…」不能解决 cookie 问题。若你 heavily 使用本插件的重启功能,应了解该宿主侧限制。

结尾

dsh-easy2restart 把「双击重启整进程」「归档确认 + 活动会话倒计时」「归档后可选自动备份」和「已归档会话」侧栏收进一个客户端插件,适合在 Windows 桌面 DSH 上日常归档与会话运维。目录与详情:skillhub.cn/plugins/SMPcosy/dsh-easy2restart;源码与完整 API 表:github.com/SMPcosy/dsh-easy2restart。

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

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

小夜