
limbo947/dsh-recall-plugin
60最近提交 2026年8月15日
dsh-recall-plugin DSH 插件
该插件在插件启用后发送的每条用户消息上添加“撤回”按钮。点击后,对话历史和项目文件都会回到该消息发出前的状态。它使用独立的影子 git 仓库来避免影响项目自身的 git 状态。
如何安装 dsh-recall-plugin DSH 插件
dsh plugin --profile web add dsh-recall-plugin复制不会执行命令。安装 dsh-recall-plugin DSH 插件前请核对仓库和版本。
dsh-recall-plugin DSH 插件数据来源
dsh-recall-plugin DSH 插件快照日期:2026年8月16日
discovered
dsh-recall-plugin DSH 插件能做什么
- 文件 + 对话整段回退:撤回的不只是聊天记录,agent 改过的文件也一并回到原样。
- 不碰项目自己的 git:快照存在独立的影子 git 仓库里,不影响项目的分支、暂存区或未提交改动。
- 项目目录保持干净:快照始终存在 $DSH_HOME 下,不会往项目里塞任何东西。
- 可以反复后悔:只要会话还在(含归档),快照全量保留,撤回一次后还能再撤到更早。
- 先看清单再动手:点撤回先弹出将变更的文件清单,确认后才执行。
dsh-recall-plugin DSH 插件适合哪些场景
- 撤回 agent 所做的错误文件修改,同时恢复对话记录。
- 从某个对话节点重新开始,工作区和聊天记录一起回退。
- 多次撤回,逐步回到更早的状态,方便尝试不同方案。
- 意外修改后快速恢复,无需担心项目 git 历史被污染。
dsh-recall-plugin DSH 插件适合谁
- 使用 DSH 并希望撤销 agent 操作、恢复工作区文件的用户。
- 经常进行实验性操作,需要安全回退文件和对话的开发者。
dsh-recall-plugin DSH 插件的限制
- 快照在消息发送时创建,插件启用前的历史消息没有快照,不显示撤回按钮。
- 会话第一条用户消息无法回退对话(仅文件回退)。
- macOS 尚未真机实测,仅按 bash 3.2 兼容编写了脚本。
- 工作区内嵌套的其他 git 仓库(子目录自带 .git)不进快照,其内容不参与回退。
dsh-recall-plugin DSH 插件的仓库 README 摘录
以下文字摘自 dsh-recall-plugin DSH 插件的上游仓库 limbo947/dsh-recall-plugin 的 README,版权归原作者,仅作引用。
> 撤回一条消息,项目文件也一起回去。 简体中文 | [English](README.en.md)      --- **在任意一条你发过的消息下方**,**点「↶ 撤回」**,**工作区文件和对话历史一起回到那条消息发出之前的状态**。 ## 界面预览 - 撤回按钮位置  --- | 确认面板 · 变更文件清单| | | --- | --- | |  |  | ## 功能亮点 - **文件 + 对话,整段回退**:撤回的不只是聊天记录,agent 改过的文件也一并回到原样。 - **不碰你项目自己的 git**:快照存在独立的影子 git 仓库里,你的分支、暂存区、未提交改动统统不受影响;`.git`、`node_modules` 自动排除。 - **项目目录保持干净**:快照始终存在 `$DSH_HOME` 下,不会往项目里塞任何东西;与会话的沙箱权限无关(workspace-write / read-only 会话照常快照与回退),仅当 home 本身不可写(如指到只读盘)才降级到项目内 `.dsh-recall-snapshots`(降级时页面会提示),home 恢复后自动迁走、清理干净。 - **可以反复后悔**:只要会话还在(含归档),快照全量保留、不修剪。撤回一次后还能再撤到更早;撤回时被覆盖的文件也一直找得回来。会话被彻底删除后,其快照随之清理(见下)。 - **先看清单再动手**:点撤回先弹出将变更的文件清单(修改 / 恢复 / 删除),确认后才执行,不会稀里糊涂覆盖。 - **磁盘友好**:快照走 git delta 压
阅读完整 README仓库许可: MIT
dsh-recall-plugin DSH 插件常见问题
安装后没有显示撤回按钮。
请确保已重启 DSH 进程并硬刷新页面(Ctrl+Shift+R)。检查 git CLI 是否已安装且在 PATH 中。Windows 用户需确保 PowerShell 5.1/7 可用。注意:撤回按钮只出现在插件启用后发送的消息上。
能否撤回插件安装前发送的消息?
不能。快照仅在消息发送时创建,插件安装之前的消息没有快照,因此不会显示撤回按钮。
快照数据存储在什么地方?
快照存储在 $DSH_HOME/dsh-recall-snapshots/ 下(默认是 ~/.dsh/dsh-recall-snapshots/)。如果 $DSH_HOME 不可写,会降级到项目目录下的 .dsh-recall-snapshots,并给出提示。
如何卸载插件并彻底清理快照数据?
运行 'dsh plugin --profile web remove dsh-recall-plugin' 卸载插件。快照数据保留在 home 目录下的 dsh-recall-snapshots/ 中,如需彻底删除,手动移除该目录即可。
插件会影响我项目自身的 git 仓库吗?
不会。快照存储在独立的影子 git 仓库中,与项目的 .git 完全隔离,不会影响分支、暂存区或未提交的改动。