前言¶
DeepSeek Harness (DSH) 的原生行为不支持已发送消息的编辑或撤回。dsh-rewind-plugin 插件通过将对话表面回溯到已发送消息之前,隐藏该消息及之后的所有内容,并将原始文本放回编辑器来解决此痛点。
它是什么¶
该插件由 JochenYang 维护,旨在为 DSH 提供消息召回能力。它将选定的用户消息视为“边界”,隐藏该消息及之后的内容,并允许你用原始文本重新发送。
安装与启用¶
Web Profile¶
使用命令行安装:
dsh plugin --profile web add @jochenyang/dsh-rewind-plugin
也可以直接使用发布包地址或仓库地址:
dsh plugin --profile web add https://github.com/JochenYang/dsh-rewind-plugin/releases/latest/download/dsh-rewind-plugin.tgz
dsh plugin --profile web add github:JochenYang/dsh-rewind-plugin
Desktop Profile¶
官方桌面客户端没有命令行支持。需在应用内安装:Settings -> Plugins -> Add plugin,在“Package name or address”字段输入 @jochenyang/dsh-rewind-plugin,安装后重启应用。
基本用法¶
命令行¶
- 列出可召回的消息:
/rewind - 召回第 n 条消息:
/rewind <n> - 预览召回效果(不执行):
/rewind plan <n>
界面交互¶
在对话记录中悬停用户消息,会显示召回图标。
核心特性¶
- 编辑器预填充:召回后,文本会回到输入框,供你重新编辑或发送。
- 隔离区管理:在 Settings -> Recall quarantine 中,所有被覆盖的文件和字节都会被移动到隔离区,不会直接删除,可按会话或单行清理。
- 文件保留:被召回范围创建的文件会移至隔离区,而不是被取消链接。
- 日志完整性:会话日志是仅追加的,召回操作会追加一个事件,确保原始数据不丢失。
注意事项¶
- 压缩限制:召回操作在最近的压缩处停止。压缩会替换历史摘要,因此无法回溯到压缩之前。
/rewind命令会明确指出这个边界。 - 状态声明:如果召回无法覆盖全部内容,插件会明确提示,而不是声称已完全回溯。
- 运行时依赖:插件运行时依赖 DSH 内置包(如
@deepseek-ai/cordis,@deepseek-ai/dsh-session等),不锁定特定版本,因此可以在不同版本的 DSH 上运行。 - 写入权限:会话中同一时刻只允许一个编写者,这是 DSH 的底层机制。
总结¶
该插件通过 surfaceOp: { op: 'replace' } 机制在会话日志层面实现回溯,保证了数据的可读性和完整性,同时通过隔离区管理文件变更,适合需要在 DSH 中修正已发送消息的场景。