DSH Hub
dsh-recall-plugin cover

limbo947/dsh-recall-plugin

dsh-recall-plugin

UIMemory45 GitHub stars· updated 2026-10-27

dsh-recall-plugin is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-recall-plugin

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-recall-plugin DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-recall-plugin.svg)](https://dshhub.dev/plugins/dsh-recall-plugin)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from limbo947/dsh-recall-plugin, cleaned of badges and images.

简体中文 | English

在任意一条你发过的消息下方点「↶ 撤回」——工作区文件和对话历史一起回到那条消息发出之前的状态。

每条消息发送时,工作区先被快照进一个独立的影子 git 仓库(不碰项目自身的 git);撤回时按快照恢复文件,并经 DSH 官方 sessions.fork 把对话切回该消息之前的 turn 边界,原会话归档保留、随时可找回。被撤回消息的文本与附件自动放回输入框,改完即可重发;也可以点消息旁的「✎ 编辑」就地改完直接重发(不动文件),同一段对话的多个版本经 ‹ X/N › 翻页器来回切换。快照存储默认落在 $DSH_HOME 下。最主要的边界:快照只在消息发送时创建,插件启用前的历史消息没有快照、不显示撤回按钮。

更新日志

目录

界面预览

撤回按钮确认面板 · 变更文件清单
  • 设置页 · 插件配置卡片(配置表单 / 排除表 / 快照管理,保存即热生效)

功能亮点

带括号版本号的能力需要该版本或更高;其余无特殊版本要求。

  • 文件 + 对话,整段回退:撤回的不只是聊天记录,agent 改过的文件也一并回到原样;不受项目 .gitattributes 转换影响,换行与二进制内容字节级保真(2.1.1+)。
  • 只想重来对话?文件可以不动(2.3.24+):确认面板可二选一撤回范围——默认「回退文件与对话」为完整回退;「仅撤回对话」则项目文件一个字节都不动(也不打安全快照),适合对回复不满意、但文件改动正是想要内容的场景。
  • 不碰项目自身的 git,目录保持干净:快照存在独立的影子 git 仓库,分支、暂存区、未提交改动统统不受影响;存储默认落在 $DSH_HOME 下、与会话沙箱权限无关(workspace-write / read-only 照常工作),仅当 home 不可写才降级到项目内 .dsh-recall-snapshots。
  • 先看清单再动手,可反复后悔:撤回前展示将变更的文件清单(修改 / 恢复 / 删除),确认后才执行;撤回后还能再撤到更早,被覆盖的文件一直找得回来。
  • 撤回完就能重发(2.3.15+):消息的文本与附件(图片、文件)一起放回输入框,改完直接发送,不必重新挑一遍附件。
  • 只改一个字也不用三连(2.5.0+):消息旁的「✎ 编辑」在该消息位置长出一张与官方输入框同款的编辑卡(预填原文、随内容增高),底部输入框保持原样;卡内可改字、粘贴/拖入附件,按 Enter 或点发送即新建会话、把改后的文本自动发出(原会话照常归档可找回),但只回退对话、不动项目文件。原消息附件以可移除的标签显示,权限以只读标签展示,模型与推理等级可在卡内按官方同款菜单切换(同步到底部输入框);Esc 取消。不想立刻发可在设置里关掉「编辑后自动发送」,改为只回填输入框。
  • 同一句话的多个版本可以来回翻(2.5.0+):每次撤回或编辑重发都会 fork 出新会话,最后一轮回答的操作区出现 ‹ X/N ›——点一下切到别的版本,侧栏始终只留当前那个(其余自动归档),切回时视口停回原位置。
  • 撤回全程有防护(2.0+,救援 2.1+):预览后出现新快照会强制重新预览;执行前自动打「回退前」安全快照,回退失败自动救援,救援失败给出可直接复制执行的手动恢复命令。
  • 磁盘友好、自动维护:快照走 git delta 增量压缩,大文件自动跳过(阈值可配);定期无损 git gc、会话删除联动清理、按条数与保留天数自动清理;设置页提供工作区 → 会话 → 快照三级树形管理,支持搜索与分级删除。
  • 失败不静默、能自愈(自愈 2.1+):失败按根因分类(git 缺失 / 磁盘满 / 无权限 / 锁冲突 / 目录冲突)给出可行动提示,同类故障 10 分钟只打扰一次,原因进设置卡片「最近错误」;自动清理残骸、连续 3 次失败指数退避、多实例按心跳互让;无法索引的路径跳过并告知,不中断整条快照(撤回时也不触碰它们)。

技术栈与依赖

本插件是 DSH bundle 形态:host 半跑在 DSH 进程内(Node ESM),client 半跑在浏览器会话页内,两侧同出一个 npm 包,包本体零运行时 dependencies。

  • 运行时:Node.js ≥ 20、git CLI;Windows 走 PowerShell 5.1/7,Linux/macOS 走 bash(按平台自动分叉)。
  • 语言与构建:TypeScript + ESM;npm run build 经 esbuild 产出 lib/(host 逐文件转译、client 打包为单文件),产物随源码提交。
  • 测试与门禁:vitest(纯逻辑单测、jsdom client 组件测试、官方 API 字段探针)+ tsc --noEmit 类型门禁 + 装配门禁脚本,详见「参与贡献 → 测试」。
  • 宿主依赖(peerDependencies,随 DSH 安装提供,无需单独安装):@deepseek-ai/cordis 4、@deepseek-ai/dsh-*(host-webserver / sandbox-policy / session / session-query / settings / shell)、@deepseek-ai/schemastery 3.18;react 18 为可选 peer(client 由宿主注入)。

已知限制

设计上接受的边界与尚未覆盖的极端情形,使用前值得先确认。

…

Related plugins