dsh-conversation-rewind:DSH Web 的同 Session 分支与历史消息编辑

前言

在 DSH Web 中处理智能体会话时,一个已完成 Session 里某条用户消息如果表述不理想,常见需求是让 assistant 重新回答,但不希望丢失原路径,也不希望创建新的子 Session。dsh-conversation-rewind 针对这个场景,为 DeepSeek Harness Web UI 提供同 Session 的 append-only 对话分支,以及可编辑用户消息的安全编辑能力。

这是什么

dsh-conversation-rewind 是一个 DSH Web 插件,由 DTSFO 维护,许可证为 MITpackage.json 中版本号为 0.1.7

它把“修改历史用户消息并重新生成回复”做成在同一 Session 内创建 sibling branch 的操作,同时保持持久事件日志 append-only,避免直接重写或删除历史事件。

核心功能

历史用户消息的内联编辑

插件在可编辑的用户消息旁增加 Edit history message 操作。编辑在该消息行内联完成,不打开 modal。

用户修改文本后,可以点击 ConfirmCancelConfirm 会从该消息在原 Session 中创建新的 sibling branch,并将编辑后的文本作为真实新的 user turn 发送,以便 assistant 响应被重新生成。

编辑确认后,后续消息不再作为可编辑选项提供。

分支树浏览

插件用可视化 Branches 树替代原 history-switching 表单。每个语义分支的最终消息可点击;中间消息显示为静态树节点。

非端点消息显示为静态树节点。Host 对非端点的调用会以 BRANCH_NOT_ENDPOINT 拒绝。

同 Session 内的只读浏览

点击分支端点只是客户端只读查看已有路径。它不发送消息、不调用 Provider、不唤醒 Agent、不写 inbox、不追加替换、不截断 Session。

分支浏览保持在原 Session 内:Session ID 与浏览器 URL 不变,也不创建子 Session。

append-only 日志与 replacement marker

插件保持持久事件日志 append-only。历史事件保留用于审计/恢复;插件追加 replacement marker,而不是重写或删除历史事件。

它使用 DSH Surface replacement metadata 隐藏被选消息、旧回复和后续活跃路径,使其不进入当前 transcript 和未来模型上下文。

编辑触发的安全保护

内部编辑触发器被永久保护,确保在 provider dispatch 前被取消,包括重启后的 orphan recovery。

安装与启用

环境要求如下:

  • DeepSeek Harness >=0.1.0-rc.6
  • Node.js ^22.19>=24
  • DSH Web profile

安装命令:

dsh plugin --profile web add \
  https://github.com/DTSFO/dsh-conversation-rewind/archive/refs/tags/v0.1.7.tar.gz
dsh web

第一条命令将插件加入 Web profile,第二条命令启动 DSH Web。

典型用法

1、在 DSH Web 中打开一个已完成的 Session。

2、点击目标用户消息下 Copy 旁边的 Edit history message;在该消息行内修改文本,然后点击 ConfirmCancelConfirm 会在同一 Session 中创建新的 sibling branch。

3、打开 Branches 视图检查消息树;只点击分支端点以在 Chat 中浏览该已有路径。

4、浏览时发送功能被禁用且 Session 保持不变;发送或编辑前先返回活跃端点。

5、旧路径仍保留在 append-only log 中;只有编辑确认会创建替换并重新生成回复。

适用场景与注意

可编辑条件

只有包含恰好一个直接、普通、纯文本用户消息的已完成 turn 可编辑。

包含附件、歧义 user-role 上下文或 unsafe-to-replay turn 的分支在树中仍可见,但消息不可编辑。

编辑要求 Session 在当前 DSH 进程中 live。如果 Surface 或 inbox 并发变化,操作会失败关闭。

编辑不做什么

编辑只改变会话历史;不恢复 workspace 文件,也不回滚工具调用、命令、网络请求或其他外部副作用。

分支浏览是只读客户端投影;不能重建 Host 未在当前窗口暴露的 Chat 行。

安全与安装前检查

该插件会在当前 DSH 进程中生效,并以当前 dsh 进程权限运行。安装前应检查源码、插件配置和 MIT 许可证,确认其注入行为与自身环境一致。

结尾

dsh-conversation-rewind 的价值在于:把“修改历史并重新生成回复”限制在同一 Session、append-only 日志和明确的只读浏览边界内,同时保留旧路径用于审计/恢复。

已核实资料未给出独立目录页 URL,本文不附未核实的目录页链接。GitHub 仓库地址如下:

  • https://github.com/DTSFO/dsh-conversation-rewind
羽毛球分组比赛记分
小程序二维码

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

小夜