dsh-wm-toolkit:DSH 会话与消息工作区工具集

前言

在 DeepSeek Harness(DSH)里长对话时,常见需求并不复杂:发错一句想撤回或改字、助手回复想微调或整段重跑、某条历史消息希望从后续上下文里消失、工作区目录改名或搬家后会话路径对不上。官方 UI 未必覆盖这些操作,社区里也有撤回、会话管理、删除回合等分散插件。dsh-wm-toolkit 把消息侧与会话/工作区侧能力收进一个插件包,装完后插件列表只多一行「WM 工具集」,维护者为 Jessicaisleep,在 SkillHub 目录中归类为「记忆」。

下面介绍它做什么、如何安装,以及使用时需要知道的边界。

这是什么

dsh-wm-toolkit(npm 包名 dsh-wm-toolkit,GitHub:Jessicaisleep/dsh-wm-toolkit)面向 DSH Web 端,用官方扩展点实现:撤回与编辑用户消息、编辑助手回复(含思考块)、按原提问重新生成、按条删除指令或回复、会话重命名/归档/删除、跨工作区移动与工作区文件夹真迁移等。插件数据写在独立目录,卸载不会动你的会话档案;除一处可回滚的工作区菜单补丁外,不改写 DSH 自身文件。

内部由三个可独立维护的半边组合而成(上游分别为 dsh-message-recall、dsh-session-manager、dsh-delete-turn 的分叉或移植,详见仓库 NOTICE.md),经 build.mjs 生成 lib/index.js 与 lib/client.js,对外仍是一个可安装的包。

消息侧能力

撤回、编辑与分支

  • 撤回我的消息:对话回退到某条提问之前,可改完再发或原样重发。
  • 编辑我的消息:改完后用新内容重跑;机制为归档旧会话并开新分支,旧版本可通过版本家族 < 1 2 > 切回。
  • 编辑我的回复:可改助手正文与思考块;改完后对话从该条回复处继续。只改文本,保留该回合原有工具调用(不重造回合)。若回复无文本块(纯工具调用)或未闭合回合,不提供编辑入口。
  • 用原提问重新生成:对任意历史回复使用,等价于用对应原提问重试该回合。重生成采用 truncate 语义:该回合之后的内容留在旧会话里,不会自动重放后续用户输入。

每次编辑或重生成形成独立分支,通过 < > 切换版本;不提供专门的版本对照面板。

删除任意一条指令或回复

与「编辑 / 重生成」(改完重来)互补:删除是「当作没说过」——确认后追加官方 surfaceOp: { op: 'replace', startSeq, endSeq } 替换事件(与 /compact 同一套契约),被遮蔽内容不再进入 deriveMessages(),转录中一并隐藏;原始 append-only 日志一个字节都不改写。隐藏台账从日志里的替换事件重建(source 标记 plugin:dsh-wm-toolkit),不依赖 localStorage。

点哪里 删掉什么
用户消息行上的垃圾桶(在「撤回 / 复制」后) 仅该条用户提问或注入上下文行;助手回复保留
思考卡 / 工具调用卡上的垃圾桶 仅该步的 assistant/message 及配对的 tool/result
助手回复操作条上的垃圾桶 整条回复(含思考、工具调用与注入上下文);用户提问保留

路由为 GET /wm-delete/state?sessionId=、POST /wm-delete/delete,仅回环、同源、Host 本机;落地与拒绝写入 $DSH_HOME/dsh-wm-delete.log。删除为软删除,不可反删除;回合进行中不能删;系统提示词头(surface 节点 0)不可删;已被官方 /compact 移出上下文的内容不再显示删除入口。

不要与另一个跨工作区移动器或另一个消息删除插件同时启用。

会话与工作区侧

  • 会话 重命名 / 删除 / 归档 / 取消归档,入口挂在官方 ⋯ 菜单,不重画侧边栏。
  • 跨工作区移动、工作区文件夹真迁移:目录搬家或改名后,可把工作区记录、每条会话的 cwd 与日志物理位置一并迁过去,带备份与回滚。
  • 未分组会话归位与启动自愈:父会话在某工作区而子会话掉进未分组时,自动挂回。

在 DSH 0.2.1-rc.3 起,工作区迁移入口位于左侧栏面板列表的「更多」菜单(sidebar.panellist.actions),会话右上角不再有该入口。

安装与启用

官方安装(命令来自仓库 README):

dsh plugin --profile <你的 profile> add dsh-wm-toolkit
# 重启 DSH

从本地源码安装:

dsh plugin --profile <profile> add "file:/path/to/dsh-wm-toolkit"

卸载:

dsh plugin --profile <profile> remove dsh-wm-toolkit

装完或改完后必须重启 DSH:宿主半边(含删除相关路由)只在启动时读取;仅改浏览器半边时刷新页面即可。组合层加载结果写入 $DSH_HOME/dsh-wm-toolkit.log(各半边「已应用」或「应用失败(已隔离)」)。

兼容性与适用注意

  • 目标环境:engines.dsh 为 ^0.1.5-rc.1 || ^0.2.0-rc.1 || ^0.2.1-rc.1,Node ≥ 22。只使用 DSH 公开服务,不修改引擎与官方 UI 包。
  • 已在 DSH 0.2.1-rc.3(Windows / Web 端)实测撤回、编辑、重生成、删除、会话管理与工作区迁移可用;与侧边栏、皮肤、记忆、导出类插件无冲突。
  • 插件以当前 dsh 进程权限运行,安装前应自行查看 GitHub 源码与 MIT 许可证(及 NOTICE.md 中的上游声明)。
  • 本插件为本地/组合构建,设置里「检查更新」只回报当前版本,没有 npm 更新通道以外的特殊说明。

SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与目录元数据以站点展示为准(当前 GitHub 星标为 0)。

结尾

若你希望在一个插件里完成「消息可改可删 + 会话/工作区可管」,可先按 profile 安装 dsh-wm-toolkit 并重启 DSH,再按上表选择撤回、编辑、重生成或删除。细节与测试说明见仓库 README 与各 parts/*/README.md。

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

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

Xiaoye