前言¶
在 DeepSeek Harness 的会话流程里,如果刚提交的一条用户消息需要修改,并且希望基于这条消息之前的上下文重新发起一轮响应,而不是直接改动原始会话历史,就需要一个能在指定消息前创建子会话的插件。
ChisaAlter/dsh-plugin-message-edit 是为 DSH 提供的 Web 插件,用来把“编辑最新用户消息并重发”落到具体操作上。
这是什么¶
这是由 ChisaAlter 维护的 DSH 插件,许可证为 MIT。
它给最新一条 committed user message 增加 Edit and resend 入口:在所选消息前创建 child session,把原始文本恢复到 composer 供编辑。源会话保持不变,旧消息和旧 assistant response 不进入新子会话。
核心功能¶
下面列出已核实的插件行为:
- 只在最新 committed user message 上显示 pencil action。
- 点击 pencil action 不会立即发送。
- 在所选消息的 turn 之前 fork child session。
- 把原始文本恢复到 child composer,供继续编辑。
- 源会话保持 unchanged。
- 旧消息和旧 assistant response 不包含在 child session 中。
- 仅支持 text-only message 编辑;image 和其他 non-text message 不可用。
- 当前响应未结束时,编辑会等待其完成。
- 该入口只在 Chat view 中可用。
宿主能力要求¶
插件要求宿主提供以下三项 capabilities:
conversation.chat.user-actions
session.fork.beforeSeq
session.fork.blank
在兼容宿主上,如果任一能力缺失,安装和 browser composition 会 fail closed。插件需要宿主侧改动,不能从浏览器代码中 polyfill。
当前公共 0.1.0-rc.6 host 不提供该功能。
安装与启用¶
当你的 DSH build 暴露全部所需 host capabilities 时,可以从:
Settings > Plugins
安装。
手动安装等价命令为:
dsh plugin --profile web add github:ChisaAlter/dsh-plugin-message-edit#<commit-sha>
命令中的 <commit-sha> 是占位符,需要指定 commit。通过 GitHub 安装不需要 allowBuilds exception。
典型用法¶
1、进入 Chat view,并等待当前响应结束。
2、最新一条 committed user message 会显示 pencil action。
3、点击 pencil action。此时不会立即发送。
4、宿主在所选消息的 turn 之前 fork child session。
5、原始文本被恢复到 child composer,供你修改。
6、完成编辑后重发。源会话仍保持原来的消息和 assistant response。
异常或不可用场景:
- 正在运行中的 session 会显示 unavailable action,并给出原因。
- 包含 non-text blocks 的消息会显示 unavailable action,并给出原因。
- fork pending 时,action 会被 lock,避免重复点击。
- fork 失败时,源会话保持 selected,并在 composer 中给出 localized notice。
适用场景与注意¶
适合需要修改最近一条已提交用户消息、并希望在干净子会话中重发一轮响应的使用场景。
使用前注意:
- 仅文本消息可编辑,图片和其他非文本消息不可用。
- 只在 Chat view 可用。
- 需要宿主提供全部声明的 capabilities;缺失时会 fail closed。
- 当前公共
0.1.0-rc.6host 不支持该功能。 - 插件会在当前 DSH 进程权限下运行,安装前应先检查源码和许可证。
结尾¶
dsh-plugin-message-edit 的价值在于把“改一句最新消息并重新生成”拆成一个可预期的子会话操作:不修改源历史,不在旧上下文上追加,也不把上一轮 assistant response 带进新会话。
GitHub 仓库: