跳到正文

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) ![npm](https://img.shields.io/npm/v/dsh-recall-plugin?label=npm&color=cb3837) ![License](https://img.shields.io/badge/license-MIT-blue) ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-blue) ![DSH](https://img.shields.io/badge/DSH-0.1.0--rc-blue) ![Build](https://img.shields.io/badge/%E7%BA%AFJS-%E9%9B%B6%E6%9E%84%E5%BB%BA-green) --- **在任意一条你发过的消息下方**,**点「↶ 撤回」**,**工作区文件和对话历史一起回到那条消息发出之前的状态**。 ## 界面预览 - 撤回按钮位置 ![悬停出现撤回按钮](docs/screenshots/recall-button.png) --- | 确认面板 · 变更文件清单| | | --- | --- | | ![确认面板 · 变更文件清单](docs/screenshots/confirm-panel-1.png) | ![确认面板](docs/screenshots/confirm-panel-2.png) | ## 功能亮点 - **文件 + 对话,整段回退**:撤回的不只是聊天记录,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 完全隔离,不会影响分支、暂存区或未提交的改动。