dsh-rewind-plugin: 消息召回

前言

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 中修正已发送消息的场景。

羽毛球分组比赛记分
小程序二维码

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

小夜