前言¶
在 DSH 会话中,日志是追加的,无法原地修改消息。当你发现自己发送了错误的上下文,或者需要调整上一轮对话的措辞时,通常只能通过重新生成上下文来补救,这会消耗大量算力且破坏原有记录。
下面介绍的 dsh-reedit 插件允许你双击自己的消息进行重写,并在新的分支中重新发送。原始对话保持不变。
插件介绍¶
dsh-reedit 是一个客户端插件,由 Arbeiter-bit 维护。它通过拦截和重渲染 DOM,实现了对用户消息的编辑与重发功能。
核心功能¶
- 悬停提示:将鼠标悬停在自己的消息上时,会显示操作提示。
- 双击编辑:双击消息后,编辑器会自动预填充该消息的内容。
- 会话分叉:确认发送后,插件会在原始消息之前创建一个新的会话分支。该分支不包含原始消息及之后的任何内容。
- 重发内容:编辑后的文本会被发送到这个新分支中。
- 主面板展示:新分支会在主面板中打开,方便你继续交互。
- 退出编辑:点击编辑器外部区域,会退出编辑模式且不保存修改。
- 视觉标记:用户消息会附带一个淡蓝色气泡,防止将其误判为助手回复。
安装与启用¶
使用官方安装命令将插件添加到你的配置文件中:
dsh plugin --profile <profile> add github:Arbeiter-bit/dsh-reedit
注意事项¶
- 颜色限制:蓝色气泡的颜色为十六进制
#2563eb,透明度 12%。由于主题没有提供对应的蓝色别名 Token,该颜色在不同主题下可能显示效果略有不同。 - 重新实现:操作栏是插件重新实现的,文件卡片和间距是手写的,可能与宿主 UI 存在细微差异。
- 不可原地修改:由于会话日志是追加的,该插件无法修改消息本身,而是通过创建分支来实现“重写”的效果。
- 依赖容错:插件读取
@deepseek-ai/dsh-client-ui-primitives时使用了 try/catch,如果依赖缺失,内容会降级为纯文本显示。
结语¶
dsh-reedit 提供了一种低成本修改历史上下文的方式,适合需要微调指令或纠正错误的场景。插件源码与目录信息可参考下方链接。