FileSnapFOR DSH使用文档

快速开始

恢复已捕获的文件,保留完整原对话;如果选错了点,再撤销这次回退。本教程使用 Web UI,基于 dsh-filesnap 0.2.2

使用消息旁的回退按钮,或会话头部的 redo/status 操作即可。

安装插件#

准备 Node.js ^22.19 或 >=24 和 DSH Web UI profile。安装包支持 Linux、macOS、Windows 的 x64 或 arm64,所需组件随包提供,无需单独安装工具链或创建 Git 仓库。

dsh plugin --profile web add dsh-filesnap

安装后重启对应 Web UI profile。0.2.2 自带 bundle,不需要手动添加 loader。若要复现本教程版本,改为安装 dsh-filesnap@0.2.2

从旧的手动配置升级? 启动 0.2.2 前,在 profile 的 cordis.patch.yml 中删除旧的手动 id: filesnap 加载项,保留其他条目。具体操作见 安装排障

1. 先留下可以恢复的状态#

从测试工作区开始。分别在几个完整轮次中,让 agent 创建 data.txt、修改内容,再删除文件。FileSnap 必须提前捕获状态才能恢复,安装前已丢失、从未捕获的内容无法凭空恢复。

悬停在已完成的 assistant 轮次旁,找到回退控件。读取提示中的实际目标轮次和文件覆盖范围。

回退控件提示目标轮次和已捕获文件查看原图 ↗

2. 选择正确的回退点#

点击按钮,或在对话中列出已捕获的恢复点:

/rewind

选择删除发生之前的恢复点。只有当你自己的会话中第 2 轮就是目标时,才使用:

/rewind 2

数字表示明确的第 2 轮之前,不是“往前退两轮”。恢复前先等待 agent 停止工作。

回退结果显示已恢复文件和子会话查看原图 ↗

浏览器按钮会打开恢复后的对话;手动命令会返回继续目标,如果界面没有跳转,请打开该目标,并检查磁盘文件。

原对话仍完整保留。 恢复会修改当前工作区,打开原对话不会自动把文件切回去。

3. 用 redo 撤销这次回退#

在继续编辑之前,在回退后打开的对话中执行:

/redo

这会撤销刚才的回退;根据返回结果打开原对话继续。

redo 返回撤销结果和原会话继续目标查看原图 ↗

在这个删文件的练习里,redo 会再次删除文件,因为它恢复的是 rewind 发生前的状态。每一步都检查磁盘内容和当前所在会话。

检查覆盖范围与存储#

/rewind status

捕获合并已知路径、观察到的 ctx.fs 写入与编辑,以及有界的近期变化扫描。忽略规则、文件大小和捕获时机都会影响覆盖。这不是全盘备份,也不保证捕获任意 shell 改动;当前 status 不能证明某个历史点一定包含某个文件。

status 显示工作区记录与共享内容存储查看原图 ↗

具体边界见 捕获架构,相同内容如何复用见 去重实验

卸载与重新打开会话#

卸载插件不会删除对话记录或工作区文件。含插件记录的会话,目前需要重装插件后才能在 DSH 中重新打开。源码 checkout 使用 pnpm dsh 启动也可能遇到事件注册问题;使用构建版或 npm 安装的 CLI,详情见 排障指南

观看完整演示#

演示以 1.5 倍速展示完整操作。中文 2:24,英文 2:29;这是操作演示,不是性能测试。

完整中文演示 · 2:24加载播放器将连接至哔哩哔哩。

中文演示 · Bilibili · English walkthrough · YouTube

接下来可以阅读 版本化插件对比后续功能计划

实现细节:工作原理 · 界面与兼容性证据

编辑本页 ↗开始使用 →

↑ ↓ 选择 · Enter 打开 · Esc 关闭