dsh-message-edit
Moeblack/dsh-message-edit
基于分支的消息编辑、reroll、重试与版本时间线。
安装
把 dsh-message-edit 装进 DeepSeek Harness
npm 方式
直接拉已发布的 tarball,不用克隆整个仓库,也不需要额外配置。如果你用的是别的 profile,把 `web` 换成对应的名字。
GitHub 方式 · npm 包
从 GitHub 装会执行项目自己的构建脚本,而 pnpm 默认拦着不让跑——先跑一次这条命令,pnpm 会打印出要加到 ~/.dsh/profiles/web/pnpm-workspace.yaml 里 `allowBuilds` 下面的那个 key。
我们跑过之后
我们跑过,装得上
这里每条命令都在一次性容器里、对着干净 profile 真跑过,结果取自 harness 自己的记录,不是读源码猜的。 最近一次 3 天前.
安装前须知
装 dsh-message-edit 之前,先看这几条
- 源码在这里: Moeblack/dsh-message-edit——已进入社区精选库,DSH 自带的插件市场就是从这儿装的。
- 没检测到协议文件。没有协议的代码,默认保留全部权利。
- 自动识别到:终端执行。授权之前请先读一遍源码。
- 被收录在这里不代表通过了安全审计。插件是带着你 agent 的权限在跑。
AI 锐评
是什么 — dsh-message-edit 是 DeepSeek Harness 的插件,它提供基于事件溯源的消息编辑、重生成以及版本时间线管理功能。
谁该装 — 当你需要在 DeepSeek Harness 会话中编辑已落定的用户消息、助理 reasoning 块或回复文本,并在 Timeline 中重试特定历史回合时,该插件能提供支持。 如果你的对话流程不需要版本分支切换或 Timeline 展示,那么可以不安装此插件。
注意 — 沙箱实测显示,在全新 profile 安装后该插件被 harness 注册进 profile。 静态检查提示插件会执行 shell 命令。 未发现明显的运行时问题。
锐评 — 我会装它,因为它允许在不修改历史事件的前提下切换会话版本,这对精确控制多轮对话流程有帮助。
grok-4.6 写的,只当参考,不当结论。里面说装得上或装不上,是在干净 profile 里真跑过的;其余都是读仓库读出来的。以实际运行为准。
dsh-message-edit 是做什么的

dsh-message-edit 是一个 DeepSeek Harness 插件,用于在会话中编辑消息、reroll、重试历史回合,并查看版本时间线。它不直接改写原会话,而是在目标回合之前的闭合边界创建新的会话版本;原版本继续保留,可以通过标题栏的撤销、重施加和 Timeline 在分支之间切换。
DeepSeek Harness 插件把每次操作记录为 message-edit/version 事件,保存操作类型、目标回合、编辑前后内容、级联策略和逆操作对应的 Session ID。插件通过公开的 sessionQuery.traceSession()、readSession() 读取会话投影,并使用 sessions、agents、sessionPersistence、workspaceRegistry 和 webServer 等服务创建、发布新版本。浏览器端注册 conversation.view,同时提供 GET /message-edit 和 POST /message-edit。
它适合需要保留对话分支、重新生成某个回合且不破坏 append-only 历史的开发者。preserve 会重新执行后续用户输入,并重新生成助手输出和工具链;插件不会恢复工作区文件、撤销命令的外部效果或修改既有产物。检测到的 terminal surface 对应 dsh plugin 的安装和激活流程,README 没有说明运行时执行 shell 命令。
dsh-message-edit 的文档
dsh-message-edit 的配置
DeepSeek Harness 通过 dsh.bundle 声明把插件加入 web profile。README 没有记录用户可配置的 key 或环境变量。浏览器端注册 conversation.view:ID 为 message-edit-timeline,order 为 15;标题栏操作 ID 为 message-edit-controls。
dsh-message-edit 的命令与 HTTP API
DeepSeek Harness 提供两个接口:
GET /message-edit?sessionId=<id>:读取可编辑消息、可重试回合和完整版本树。POST /message-edit:执行edit、reroll或retry,返回新 Session ID。
操作可针对已落定的用户消息、assistant.reasoning、assistant.response 或 Timeline 中选择的历史回合。级联值为 truncate 和 preserve,默认是 truncate。
行为说明
每次操作都从目标回合前创建新 Session 版本,原版本保持不变。message-edit/version 事件的 schemaVersion 为 2,记录操作类型、级联策略、目标回合、事件序号、可选 block 信息以及 before、after。Session 头中的 parentSession 构成版本树。撤销和重施加通过逆效果切换已有版本,不删除事件。
使用 preserve 时,后续用户输入会按顺序重新交给 agent,助手输出和工具链全部重新生成。编辑助手 block 时,原工具链不会复制到新版本。
已知限制
插件不修改 DSH engine、ReactLoopAgent、AgentLoop 私有方法、apiproxy 或官方 UI 包,也不会恢复工作区文件、命令外部效果和既有产物。构建使用 @deepseek-ai/*@0.1.0-rc.6 类型,并生成 index.mjs、client.js 和 client.js.map。
根据项目自己的文档整理,会跟着上游更新。两边对不上时以源码仓库为准—— 去 GitHub 看原始 README
同一分类
dsh-message-edit 的同类插件
dsh-chat-import
Nwflower
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
我们跑过,装得上
dsh-claude-ux
eri64
DSH plugin: Claude-style Chinese risk control & conversation autonomy for DeepSeek Harness web
我们跑过,装得上
plugin-session-export
whyihaveyou
把 append-only 会话日志导出为按轨迹来源分组的可读 Markdown 或 HTML。
没有一行式安装命令——这个插件在一个大仓库的子目录里,也没发 npm 包。
deepseek-harness-control-center
feibi-mochi
DeepSeek Harness account monitoring, usage accounting, completion alerts, official recharge, flexible layout, and agent-assisted session controls. / 账户监控、提醒、充值与会话控制中心
我们跑过,装得上