limbo947/dsh-recall-plugin
limbo947★ 5JavaScript最后同步: 2026-08-15
DSH 消息撤回插件:回到发送该消息时的状态
README 摘要
dsh-recall-plugin 撤回一条消息,项目文件也一起回去。 简体中文 English 在任意一条你发过的消息下方 , 点「↶ 撤回」 , 工作区文件和对话历史一起回到那条消息发出之前的状态 。 界面预览 - 撤回按钮位置 确认面板 · 变更文件清单 功能亮点 - 文件 + 对话,整段回退 :撤回的不只是聊天记录,agent 改过的文件也一并回到原样。 - 不碰你项目自己的 git :快照存在独立的影子 git 仓库里,你的分支、暂存区、未提交改动统统不受影响; .git 、 node modules 自动排除。 - 项目目录保持干净 :快照始终存在 $DSH HOME 下,不会往项目里塞任何东西;与会话的沙箱权限无关(workspace-write / read-only 会话照常快照与回退),仅当 home 本身不可写(如指到只读盘)才降级到项目内 .dsh-recall-snapshots (降级时页面会提示),home 恢复后自动迁走、清理干净。 - 可以反复后悔 :只要会话还在(含归档),快照全量保留、不修剪。撤回一次后还能再撤到更早;撤回时被覆盖的文件也一直找得回来。会话被彻底删除后,其快照随之清理(见下)。 - 先看清单再动手 :点撤回先弹出将变更的文件清单(修改 / 恢复 / 删除),确认后才执行,不会稀里糊涂覆盖。 - 磁盘友好 :快照走 git delta 压缩,是增量不是整目录拷贝;超过 100MB 的大文件自动跳过。 - 自动瘦身 :定期 git gc 把 loose 对象压 pack(无损,快照一个不丢);会话删除后其快照自动清理;构建产物可经 exclude.txt 全局排除(见下)。 已知限制 - 快照在 消息发送时 创建,插件启用前的历史消息没有快照,不显示撤回按钮。 - 会话第一条用户消息无法回退对话(仅文件回退),因为 fork 需要更早的 turn 边界。 - 支持 Windows(PowerShell 5.1/7 + git CLI)与 Linux/macOS(bash + git CLI)。Windows 真机验证充分;Linux 已在 WSL2(Ubuntu 26.04,bash 5.3 + git 2.53)实测全流程(含中文路径、home 降级、会话清理、gc);macOS 侧脚本按 bash 3.2 兼容编写,尚未真机实测。 - 工作区内嵌套的其他 git 仓库(子目录自带 .git )不进快照,其内容不参与回退。 - 文件名含换行/TAB 的极端情形不在 diff 清单的解析能力内(概率可忽略)。 安装 前置:git CLI(未装时撤回按钮不出现,页面顶部会提示安装 git,不影响 DSH 运行);Windows 上 PowerShell 5.1 / 7 均可,Linux/macOS 需 bash…
在 GitHub 查看完整 README →