🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

对话文件回退 extracurricular-ai/dsh-filesnap

DeepSeek Harnessv0.4.2
extracurricular-ai13 天前有提交已提供中文文档扫描:含敏感能力code

DSH Rewind & Redo — 由 FileSnap 出品。把对话和它改过的文件一起恢复到某一轮之前(受 claude code rewind 启发并改进),不需要 git 仓库…

51.7/100
综合分
44
GitHub 星标
565
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-filesnap
npm 源 · dsh-filesnap 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · chat
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-filesnap @ 0.4.2
✓Node 引擎要求 ^22.19 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 02:38:57

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 24 处,展示前 21 条)
  • 读取本地文件
    lib/migrations.js:56
    await access(target);
  • 读取本地文件
    lib/migrations.js:61
    candidates = (await readdir(dir))
  • 读取本地文件
    lib/migrations.js:74
    bytes = await readFile(path);
  • 读取本地文件
    lib/migrate-session-logs.js:78
    const stat = await lstat(path);
  • 读取本地文件
    lib/migrate-session-logs.js:81
    const before = await readFile(path);
  • 写入本地文件
    lib/migrate-session-logs.js:90
    await copyFile(path, backup, constants.COPYFILE_EXCL);
  • 读取本地文件
    lib/migrate-session-logs.js:100
    if (!(await readFile(path)).equals(before))
  • 写入本地文件
    lib/migrate-session-logs.js:102
    await rename(temporary, path);
  • 删除本地文件
    lib/migrate-session-logs.js:105
    await rm(temporary, { force: true });
  • 读取本地文件
    lib/migrate-session-logs.js:110
    for (const entry of await readdir(root, { withFileTypes: true })) {
  • 发起网络请求
    lib/route.js:200
    const response = await fetch(request);
  • 写入本地文件
    lib/recovery.js:33
    await mkdir(dirname(path), { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/recovery.js:43
    await rename(temporary, path);
  • 读取本地文件
    lib/recovery.js:52
    if ((await lstat(parent)).isSymbolicLink())
  • 读取本地文件
    lib/recovery.js:61
    const stat = await lstat(path);
  • 读取本地文件
    lib/recovery.js:64
    return `${stat.mode & 0o7777}:${hash(await readFile(path))}`;
  • 读取本地文件
    lib/recovery.js:102
    const value = document.parse(JSON.parse(await readFile(this.path(cwd), 'utf8')));
  • 读取本地文件
    lib/recovery.js:114
    cwd = await realpath(cwd);
  • 读取本地文件
    lib/recovery.js:127
    cwd = await realpath(cwd);
  • 读取本地文件
    lib/binary.js:45
    triples = readdirSync(vendor);
  • 读取本地文件
    lib/binary.js:53
    if (existsSync(candidate))
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-commands@deepseek-ai/dsh-fs@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-session-persistence
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

1 张 · 点击查看大图

功能亮点

  • 恢复对话与改动文件
  • 撤销恢复操作
  • 无需git仓库
展开完整介绍(231 字)↓

DSH Rewind & Redo — 由 FileSnap 出品。把对话和它改过的文件一起恢复到某一轮之前(受 claude code rewind 启发并改进),不需要 git 仓库,还能撤销恢复(redo 受 opencode 启发并改进),由 Rust 驱动,是市面上最快最可靠的 dsh rewind 插件。一个极速的 DeepSeek Harness 回退与重做插件,核心用 🦀 Rust 驱动,跟踪对话和它改过的文件,不需要 git,磁盘占用低。

v0.4.22026-10-20
· 变更内容 · 积分读取失败时重试,不用等应用重启 · 通过任一代持久化读取冷会话日志和迁移产物 · 把回退对话的子代理带入新分支 · 把子代理带入回退创建的分支,截断到分叉点 完整变更日志:
v0.4.12026-10-20
· 变更内容 · Connection 无法注册 UI 通道时,直接挂载该通道 · 桌面客户端完成回退:显示新建分支并重新填入提示词 · 把每个控件的图标绑定到运行中客户端导出的名称 · 新贡献者 · @1Dreamer666 首次贡献于 完整变更日志:
v0.4.02026-09-11
· 0.4.0:回退与 redo 中断恢复 回退或 redo 被打断后,可以在独立设置面板查看状态,预览继续还原或回滚到操作前,并确认将影响的文件。 · 新增与改进 · 独立中断恢复入口:在「设置 → FileSnap → 中断恢复」处理未完成的操作,无需先打开原会话。 · 修改文件前保存救援点:在写入前持久化救援快照和恢复状态;重启后可以继续处理。完成状态与 redo 栈一起保存,避免操作结果丢失后重复消费撤销记录。 · 恢复前检查冲突:预览列出将还原和删除的文件,确认时再次检查。中断后产生的额外修改会被列为冲突,并禁止直接覆盖。 · 待恢复工作区保护:存在未完成操作时,阻止该工作区的新 Agent 步骤、受监控编辑及回退/redo,并暂停插件的空间清理。 · 保持原生会话格式:恢复所需的状态独立保存,不向对话历史写入操作日志;兼容会话在卸载插件后仍可由 DSH 原生打开。 · 更新界面演示:新增 10 张 0.4.0 真实界面截图,商店展示切换为 8 张新版图片;原有 6 张截图按 0.2.2 归档。双语手册增加截图与历史版本图库,并提供可复现的重拍脚本。 · 升级与适用范围 · 引擎依赖保持 FileSnap 0.5.1+,本次无需发布新的引擎版本。 · 新恢复流程适用于 0.4.0 创建的回退及其 redo;升级前的回退继续使用原有兼容路径,无法补建当时不存在的恢复记录。 · 旧会话格式及分支标记继续通过已有的自动迁移入口处理;独立设置面板保留手动扫描与重试。 · 已验证的宿主版本为 DSH 0.1.2-rc.1。中断恢复面向本机工作区、单个 DSH 进程;恢复期间应停止其他程序写入。忽略规则发生变化时,需要先恢复原规则再预览。 · 支持进程中断恢复,不承诺机器断电时的跨文件原子性。 · 验证 覆盖真实宿主进程在写入前后退出、部分文件还原、回滚再次中断、redo 记录保留及新进程读取会话等场景。截图脚本已在全新隔离环境完整跑通;文档站 100 个页面及新旧图库图片检查通过。 完整使用手册 · 0.4.0 截图与历史图库 --- · 0.4.0: Interrupted rewind and redo recovery When a rewind or redo is interrupted, use the independent settings panel to inspect its state, preview continuing the restore or rolling back to the state before the operation, and confirm the affected files. · New features and improvements · Independent recovery panel: Handle unfinished operations in Settings → FileSnap → Interrupted restores, without opening the original conversation first. · Rescue points before file changes: Persist rescue snapshots and recovery state before writing files, so interrupted operations can be handled after a restart. Completion and redo bookkeeping are saved together to avoid consuming an undo record twice when the operation result is lost. · Conflict checks before recovery: Preview the files to restore or delete, then recheck them at confirmation. Additional edits made after an interruption are reported as conflicts and cannot be overwritten directly. · Protection while recovery is pending: Block new Agent steps, monitored edits, and rewind/redo in the affected workspace
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DSH Rewind & Redo — by FileSnap 完整使用手册 ↗ · 安装、回退与撤销、快照清理、升级迁移和常见问题;支持按版本切换文档。 0.4.0 界面截图与历史图库 dsh-filesnap 是 DeepSeek Harness(DSH)的对话与文件回退插件。 先查看将写回、恢复或删除的文件,确认后一起回退对话和已跟踪文件。原对话保留为分支,选错了可以用 /redo 撤销回退,无需 Git。 0.4.2:修复首次快照读取失败后的重试、回退分支携带子代理,以及持久化 0.2.x 的冷分支读取和迁移。 保留 0.4.0 的中断恢复面板;按钮通过独立 RPC 获取结果,不往对话历史写操作日志。 已在 DSH 0.1.2-rc.1 和已发布的 0.2.1-rc.2 上通过运行时测试,涵盖真实持久化读取、迁移和子代理克隆;尚未进行桌面 UI 端到端验证。详见 更新记录。 dsh-filesnap:对话与工作区一起回退 完整中文演示(旧版)· 2:24 · English walkthrough(旧版)· 2:29 0.4.2 需要 FileSnap 引擎 0.5.1+。本次无需发布新引擎;预览接口不可用时会拒绝还原。
展开完整文档(README 剩余 1 节)
DSH Rewind & Redo — by FileSnap

完整使用手册 ↗ · 安装、回退与撤销、快照清理、升级迁移和常见问题;支持按版本切换文档。

0.4.0 界面截图与历史图库

dsh-filesnap 是 DeepSeek Harness(DSH)的对话与文件回退插件。 先查看将写回、恢复或删除的文件,确认后一起回退对话和已跟踪文件。原对话保留为分支,选错了可以用 /redo 撤销回退,无需 Git。

0.4.2:修复首次快照读取失败后的重试、回退分支携带子代理,以及持久化 0.2.x 的冷分支读取和迁移。 保留 0.4.0 的中断恢复面板;按钮通过独立 RPC 获取结果,不往对话历史写操作日志。

已在 DSH 0.1.2-rc.1 和已发布的 0.2.1-rc.2 上通过运行时测试,涵盖真实持久化读取、迁移和子代理克隆;尚未进行桌面 UI 端到端验证。详见 更新记录。

dsh-filesnap:对话与工作区一起回退

完整中文演示(旧版)· 2:24 · English walkthrough(旧版)· 2:29

0.4.2 需要 FileSnap 引擎 0.5.1+。本次无需发布新引擎;预览接口不可用时会拒绝还原。

安装

dsh plugin --profile web add dsh-filesnap

需要 DeepSeek Harness(运行时验证覆盖 0.1.2-rc.1 / 0.2.1-rc.2)、Node.js ^22.19 或 >=24。支持 Linux、macOS、Windows 的 x64/arm64;FileSnap 0.5.1+ 引擎随插件安装。headless 用户把 profile 改为 headless。

重启对应 profile 即可,不需要手动添加 loader。若从 0.2.1 或更早升级,先删除 ~/.dsh/profiles/<profile>/cordis.patch.yml 中手写的 id: filesnap 条目,避免与内置 bundle 重复。

回退与撤销

1. 让 DSH 完成至少两轮任务。已有可恢复快照时,assistant 回复的操作行会显示回退按钮。
2. 点击按钮,检查目标轮次与文件变更清单;取消或 Esc 关闭不会创建分支或恢复工作区文件。
3. 确认后创建分支并恢复文件,再打开新分支。原始提示词会回填到空输入框,不覆盖已有草稿或图片。
4. 选错了回退点,在新分支点击“撤销回退”或执行 /redo,预览文件清单后确认。还原成功且无剩余撤销记录时,自动归档旧分支并返回原对话;会话内容和快照保留。

没有可撤销记录(例如已完成 redo)时,会显示普通状态提示,不会要求升级引擎或再次确认。普通会话不会仅因没有撤销记录而被归档;文件恢复失败或仍有撤销记录时,分支也会保留。宿主不支持归档或归档失败时,保留分支并在还原结果中说明。

文件状态、忽略规则或轮次在预览后改变时,需要重新预览;确认令牌五分钟过期且只能使用一次。部分恢复失败会列出受影响路径,不会显示为无事发生。完整流程与边界。

中断恢复

新回退及其 redo 被进程退出、超时或文件错误打断后,打开 设置 → FileSnap → 中断恢复,预览继续还原或回滚到操作前的文件清单,再确认。救援快照与必要状态独立保存,不写入对话;发现中断后的额外修改时会阻止覆盖。操作方法与恢复边界。

工作区快照与空间清理

点击会话头部的 “查看快照状态”,打开独立的“工作区快照”面板:

- 当前工作区索引和共享文件内容分别展示,避免把跨工作区共享内容误算成当前项目独占空间。
- 查看各会话持有的快照轮次数,以及未受保护文件及原因。
- 在面板内点击空间清理,核对范围后确认。只回收未被引用的数据,保留现有快照、redo 救援数据和工作区文件。
- 清理完成后刷新占用。显示的是当前用量,不是预计释放量;仍被快照引用的内容不会释放。

不自动删除旧会话或过期快照,自动清理策略尚未提供。按钮结果不会追加到聊天记录。

旧版升级与自动迁移

0.3.1 默认开启自动迁移(autoMigrate: true)。 安装或升级后,重启对应 profile;DSH 加载新版插件时会自动扫描、备份并迁移未加载的旧会话。迁移不在 npm 安装脚本中执行,仅安装包而未重新加载插件不会触发迁移。

| 迁移任务 | 处理内容 |
| 旧版会话兼容 | 将旧版 FileSnap 自定义事件标为宿主可忽略,修复这些事件导致的卸载后无法打开会话的问题;保留消息内容、序号与分支边界。 |
| 红绿灯标题标记 | 将旧 ↩ 标题标记转换为 🔴 Inactive ·。普通旧标题不会自动推测为 🟢 Active ·。 |

后续回退或 redo 成功时,会将当前沿用的分支标为 🟢 Active ·,离开的分支标为 🔴 Inactive ·。标记表示分支选择,与 Agent 是否正在运行无关。

- 先备份,再修改:每份修改过的日志旁都会保存原始备份。已兼容的数据自动跳过,重复加载插件不会重复迁移已完成的数据。
- 跳过正在使用的会话:已加载的会话不会被修改。关闭后可重新扫描;若仍显示占用,重启 DSH 后先进入设置,不要打开目标会话。
- 查看结果与重试:打开 DSH 设置 → FileSnap → 数据迁移,查看本次启动的迁移结果。选中任务后,可以手动扫描、确认和重试。后续版本的迁移也统一从这个入口管理。
- 可关闭自动迁移:把插件配置 autoMigrate 设为 false,之后从设置面板手动执行。

当前迁移支持 DSH JSONL 与 Zstd 压缩日志,不改动其他插件的事件。迁移说明与离线修复。

命令

| 命令 | 结果 |
| /rewind | 网页端打开轮次选择菜单;选择后预览文件变更并确认。终端中列出轮次。 |
| /rewind <turn> | 预览回退到该轮之前会改变的文件。 |
| /rewind <turn> --confirm <token> | 使用预览令牌确认恢复。 |
| /redo | 预览还原到回退前的文件清单,确认后执行。网页端选择菜单项后打开确认浮层。 |
| /rewind status | 输出工作区保护范围和磁盘占用。 |
| /rewind cleanup | 预览空间清理范围,返回确认令牌。 |
| /rewind cleanup --confirm <token> | 回收未引用数据。 |

网页端单独输入 /rewind 或 /redo 打开原生选择菜单。其他手动命令由 DSH 展示标准命令结果,不触发模型轮次;浏览器按钮与选择菜单直接调用 RPC。headless 回退返回新分支 id,需要自行打开。

与 dsh-rewind-plugin 怎么选

双方都支持对话与文件联动恢复和 Web 操作。SiriLee 的方案强调同窗口原地回退、仅对话模式与快捷键;本插件强调保留原对话分支、/redo 撤销回退、跨路径和快照的内容去重复用。

不要只按名称判断,也没有经过验证的「公认最好」排名。参见源码对比、界面 FAQ。原存储实验基线为插件 0.2.2 和引擎 0.4.0,不能当作本版重新测量的结果:7 组去重实验。

覆盖范围与限制

- 恢复依赖事先捕获;支持二进制、Git 忽略文件,以及经 ctx.fs 观察到的项目外编辑。忽略规则、大小限制和捕获时机仍影响覆盖。
- 快照先于工具执行保存;写入/编辑前观察旧内容。它不是整台电脑的备份。
- 分支共享同一工作区;切换对话本身不切换文件副本。继承快照通过原生分支来源定位,需要保留祖先会话及对应快照数据。
- 第一个轮次前没有可保留的完整轮次,因此不提供该处的浏览器回退按钮。
- 预览不是工作区锁;外部编辑器与最终写入仍可能并发。文件恢复被拒后,已创建的空分支可能留在会话列表中。
- 尚无仅回退对话模式、逐文件勾选恢复、逐行 diff 和新的全局快捷键。

配置

| 字段 | 默认值 | 用途 |
| command | 自动解析 | 可选的引擎可执行文件。 |
| dataDir | 平台数据目录 | 独立快照存储位置,不写进项目。 |
| timeoutMs | 120000 | 单次引擎调用时限。 |
| graceMs | 2000 | 取消/超时后的终止宽限时间。 |
| maxOutputBytes | 1048576 | 每条输出流的内存上限。 |
| autoMigrate | true | 插件加载时自动迁移未加载的旧会话;关闭后可从设置手动迁移。 |
| declareEdits | true | 通过文件系统接口观察写入前的内容。 |

更多文档

工作原理 · 迁移 · 排障 · 路线图 · 基准测试 · 跨助手实践 · 贡献指南

讨论 · 报告问题 · 许可证
预览分享卡片长什么样 ↓extracurricular-ai/dsh-filesnap
分享 · DeepSeek Harness Hub
extracurricular-ai/dsh-filesnap

DSH Rewind & Redo — 由 FileSnap 出品。把对话和它改过的文件一起恢复到某一轮之前(受 claude code rewind 启发并改进),不需要 git 仓库…

回到顶部