DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

c10ck-p /

c10ck-p/dsh-checkpoint-dock

Verified

Per-turn, per-file checkpoints for DeepSeek Harness: keep, undo, redo, and revert to here from a dock above the composer.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@39bd078f

检查点 dock 预览

dsh-checkpoint-dock

简体中文 | English

npm 0.1.0 DSH >= 0.2.2-rc.1 MIT License

为 DeepSeek Harness 提供一个 IDE 风格的检查点 dock:agent 每一轮改过哪些文件、改了什么,都会出现在输入框上方,并且可以直接 保留、撤销、重做、回退。

DSH 自带的“已编辑 N 个文件”卡片负责告诉你这一轮产出了什么;这个插件负责的是改完之后还能反悔。

特色

  • 按轮次、按文件记录:每个检查点只保存这一轮真正改过的文件,不复制对话,也不做整工作区快照。
  • 完整的反悔链:保留 → 撤销 → 重做 → 回退到此,覆盖“接受这一轮”“退回这一轮之前”“恢复这一轮之后”“退回到很久以前的某一轮”。
  • 改了什么,当场能看:dock 内直接展开 before/after diff;文件行仍可打开 DSH 的 changes-review 侧栏。
  • 常驻但不碍事:默认常驻在输入框上方;关闭常驻后,只有出现未处理的文件改动才出现,处理完自动收起。
  • 多会话不混:设置里的总览按 DSH 会话标题分组,能同时回看不同对话的检查点。
  • 不依赖 git:不需要仓库、不需要 commit,也不会因为 git gc 让旧检查点失效。
  • 原生 DSH 风格:按钮、菜单、配色和设置页都使用 DSH 的主题变量,和内置界面保持一致。

和同类工具的区别

同类工具信息来自各自公开文档(截至 2026-11);这里只做机制对照,不评价实现质量。当前可对照的实现有 dsh-checkpoint-rewind(工作区/配置/会话快照)、dsh-snapshot-manager(整工作区快照与对话回退)、dsh-checkpoint-diff(基于 rewind 的只读 diff)。只写名称,不附链接。

能力 本插件 dsh-checkpoint-rewind dsh-snapshot-manager dsh-checkpoint-diff
记录范围 每轮改动的文件 工作区 + 配置 + 会话游标 整工作区 不产生快照,读取 rewind 快照
查看 diff dock 内 before/after 面板内树 diff 面板内快照 diff 任意两个检查点对比
回退能力 保留 / 撤销 / 重做 / 回退到此 /rewind、选择性恢复 文件回退 + 对话 fork 回滚(依赖 rewind)
恢复对话 / 配置 不支持 支持 支持对话 不支持
依赖 git 不依赖 git 或复制模式 不依赖 继承 rewind
适合 逐轮文件改动 整体三态回退 大范围快照回退 纯查看历史差异

快照类工具更擅长覆盖工作区、配置和会话状态;这个插件走的是另一条路:轻、快、只围绕文件改动。不复制整个工作区,不 fork 对话,不恢复配置,不依赖 git;代价是只覆盖文件内容,不覆盖会话状态。

安装

要求 DSH >= 0.2.2-rc.1。包已发布在 npm:dsh-checkpoint-dock。

从 npm:

dsh plugin --profile desktop add dsh-checkpoint-dock

从本地目录:

dsh plugin --profile desktop add D:\path\to\dsh-checkpoint-dock

也可以在插件页选择本地 bundle。装完刷新页面就能看到 dock。

插件由 Host 侧代码(index.mjs、lib/)和客户端代码(client/index.js)两半组成:首次安装或升级后重启一次 DSH,Host 侧才会加载新代码;只刷新页面只更新客户端那一半。升级后如果 dock 突然不见,多半是 Host 插件 import 失败,可以看 $DSH_HOME/unlag-reload.log(装了 dsh-unlag 的话)或 DSH 日志里 checkpoint-dock 的报错。

卸载:

dsh plugin --profile desktop remove dsh-checkpoint-dock

卸载不会删除已有检查点,数据仍在 $DSH_HOME/edit-checkpoints/,需要的话手动删目录。

使用

  1. 让 agent 在一轮里修改文件。
  2. 输入框上方会出现对应检查点,点开可以看到文件和 diff。
  3. 用 保留 / 撤销 / 重做 / 回退到此 处理这一轮的修改。
  4. 没有检查点时 dock 会自动隐藏;想回看历史,进 设置 → 检查点 → 总览。

常驻关闭后,只有出现尚未处理的文件改动时 dock 才会出现,处理完自动收起。设置按浏览器保存,同一台机器的不同 DSH 端口共用。

检查点按会话内顺序编号,设置总览按 DSH 会话标题分组;多个对话同时改文件时,也能分清每条检查点属于哪个会话。

保留、撤销与重做

  • 撤销 N 恢复的是“第 N 轮第一次写这些文件之前”的磁盘内容,不是“点击保留那一刻”的内容。保留本身不改文件。
  • 保留最新一条,会把之前所有未撤销的检查点一并标记为已保留。
  • 某个检查点之后只要有已保留的检查点,更早的检查点就不能再单独撤销,即使两轮改的是不同文件;需要整体回退时用“回退到此”。
  • 撤销 / 重做 / 回退会先校验每个文件的当前 hash;文件被其他工具或手工改过时会报冲突,不会强行覆盖。
  • 重做只能从最早的已撤销检查点开始,依次向后;中间有更新的活跃检查点时会挡住重做。
  • 回退会撤销目标之后的所有检查点,这些记录进入“已撤销”,可以再按顺序重做。

数据与隐私

  • 检查点数据以明文保存在 $DSH_HOME/edit-checkpoints/,包含被修改文件的内容;不要提交到仓库,也不要同步到不可信位置。
  • 默认跳过 .env*、私钥、.ssh/.aws/.gnupg 等敏感路径;这是保守策略,不是加密,不能替代密钥管理。
  • 只捕获 DSH 文件工具发起的写入。Shell、构建脚本、git 和外部编辑器直接写文件不会进入检查点。
  • 单文件上限为 4 MiB;超过上限的文件只记录近似行数,不参与安全撤销。
  • 记录文件损坏时会被改名为 *.corrupt-<时间戳> 隔离,只影响那一条,同会话其他检查点照常可用。
  • 在 DSH 里删除会话不会自动删除它的检查点。「设置 → 检查点 → 存储」会把这类记录列为「已删除的会话」,由你决定何时清理。
  • 「配置」页可以开启「自动清理检查点」,并选择保留最近多少条(10–200 条)。开启后每轮结束时若超出上限,就自动清掉最早那些记录的内容;钉住的检查点不会被清理。「存储」页只做统计:总占用、记录数,以及按会话的占用饼图。

已知限制

  • 只处理当前工作区内的文件;工作区外和临时文件不进入检查点。
  • 只恢复文件字节和权限位,不恢复 mtime、目录、符号链接目标或 .git 元数据。
  • 撤销 / 回退是覆盖式恢复:不会删除本轮之外新建的文件。
  • 跨会话保护只在撤销 / 重做 / 回退时检查,不是持续性的文件编辑锁。两个会话仍可以同时写同一个文件;如果对方写入发生在本轮封存之前,本轮 after 可能已经包含对方字节。要彻底避免,需要工作区级的写入串行化。
  • 不提供整工作区快照、对话回退或配置回退;需要这些能力请使用专门的 checkpoint / snapshot 插件。
  • v1 旧记录没有 after 内容,diff 和重做不可用;不做自动迁移。
  • 已删除会话的检查点不会自动回收,需要在「设置 → 检查点 → 存储」手动清理;清理会跳过最近 1 小时内还在写入的记录,避免误删刚创建的会话。
—/ 5

No ratings yet

Verified DSH bundle

Commit 39bd078fc04f

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout