前言¶
在 DSH 的会话流程里,用户消息一旦发出,后续内容通常会继续追加到会话日志中。对于需要修正提示词、重新基于同一上下文生成回复的场景,直接编辑历史消息并重新生成会更方便。
dsh-plugin-edit-regenerate 是一个 DSH 插件,用来处理这个流程:在用户消息下确认修改,丢弃该消息之后的内容,并从修改后的提示重新生成。
这是什么¶
dsh-plugin-edit-regenerate 的定位是:在 DSH 会话历史中编辑一条用户消息,并基于修改后的提示重新生成后续回复。
它适合需要在对话中途修正用户提示,而不是从头新建会话的场景。插件以 fork 的方式完成“编辑后重新生成”,原会话保持不改动。
该插件使用 MIT 许可证。仓库地址为:
https://github.com/ExploringBB/dsh-edit-regenerate
本次资料中未明确声明维护者信息,只给出了上述仓库地址。
核心功能¶
下面介绍已核实的能力。
- 在用户消息下提供 “✎ Edit” 编辑入口。
- 确认修改后,丢弃该消息之后的内容,并从修改后的提示重新生成。
- 非首条消息:在上一轮结束处分叉出新的子会话。
- 首条消息:在同一工作区创建空白新会话,并以修改后的文本作为开场提示。
- 保留用户消息原有的 “⧉ 复制” 动作,与编辑按钮并存。
- 注册 Cordis 服务
editRegenerate,并在浏览器端覆盖user消息渲染器。
需要注意,附件不会被保留。带附件的消息在修改后会以纯文本重发。
安装与启用¶
安装按 DSH profile 区分。desktop 和 web 相互独立,安装到其中一个 profile 不会影响另一个。
如果使用的是 DSH Desktop,安装到 desktop profile:
dsh plugin --profile desktop add file:./dsh-plugin-edit-regenerate
如果使用的是 official launcher / CLI,也就是 dsh web,安装到 web profile:
dsh plugin --profile web add file:./dsh-plugin-edit-regenerate
也可以手动安装。做法是:
- 将
dsh-plugin-edit-regenerate加入dsh.profile.bundles。 - 在该 profile 的
package.json的dependencies中加入file:<absolute path>。 - 在该 profile 目录下运行
pnpm install。
安装或更新后,需要重启 DSH 才生效。
如果后续更新了插件源码,已经安装到 profile 中的 file: 依赖副本可能不会自动更新。需要刷新该副本,或者在对应 profile 目录中运行:
pnpm install --force
完成刷新或更新后,再次重启 DSH。
典型用法¶
下面是文档中的基本用法。
- 安装插件并重启 DSH。
- 在会话中找到要修改的用户消息。
- 点击用户气泡下的 “✎ Edit”。
- 确认修改。
- 插件会丢弃该消息之后的内容,并从修改后的提示重新生成。
如果修改的是非首条用户消息,插件会在上一轮结束处分叉出新的子会话,原会话保持不改动。
如果修改的是首条用户消息,插件会在同一工作区创建空白新会话,并以修改后的文本作为开场提示。
用户消息上仍会保留原有的 “⧉ 复制” 动作,和 “✎ Edit” 并存。
适用场景与注意¶
这个插件适合希望在既有会话中修正用户提示,并基于修正后的提示重新生成回复的使用者。它不改变原会话,而是通过 fork 生成新的会话路径。
使用时需要特别注意以下几点:
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 带附件的消息在修改后会以纯文本重发,附件不会被保留。
- DSH 的会话存储为 append-only,不能原地截断,插件通过 fork 实现编辑后重新生成。
desktop与web两个 profile 相互独立,需要按实际运行方式分别安装。- 更改配置、安装或更新后,需要重启 DSH 才生效。
- 更新源码后,已安装 profile 中的
file:依赖副本可能不会自动更新,需要刷新副本或运行pnpm install --force。
如果 forked 会话在重启 DSH 后加载失败,可先停止 DSH,再运行:
node scripts/repair-session-logs.mjs
结尾¶
dsh-plugin-edit-regenerate 解决的是一个很具体的问题:在 DSH 会话中修改已经发出的用户消息,并基于修改后的提示重新生成后续内容。它通过 fork 会话避免直接改动原会话,同时保留用户消息上的复制动作,适合作为日常开发中的提示修正工具。
GitHub 仓库:
https://github.com/ExploringBB/dsh-edit-regenerate
本次资料中未提供已核实的社区目录页地址。