dsh-time-machine:DeepSeek Harness 工作区的撤销按钮

2026年10月19日,DeepSeek Harness(DSH)的插件生态愈发成熟。智能体在本地工作区进行文件编辑时,一旦出错,回滚操作往往依赖于手动 Git 操作,成本较高。dsh-time-machine 旨在为 DSH Web 工作区提供一个即时的“撤销”功能。

dsh-time-machine 是一个由 icyaaaww 维护的插件,核心功能是保存智能体每一次工作区变更的快照,并提供可视化的回滚能力。

核心功能

该插件提供以下能力:
* 自动快照:自动为每一次对话轮次创建检查点,这些检查点在进程重启后依然存在。
* 可视化回滚:提供 Diff 预览,支持选中特定文件进行恢复。系统会检测后续编辑,防止冲突覆盖。
* 恢复中断:支持撤销恢复操作本身,以及恢复因中断而失败的回滚。
* 非侵入式通知:恢复文件后,通过持久化收件箱通知智能体,不重写聊天历史。
* 零模型调用:快照查看和撤销操作不需要调用大模型。
* 多语言 UI:提供中文和英文的 Web 界面。

安装与启用

该插件依赖以下运行环境:
* DSH 版本:0.2.1-alpha.1
* Cordis 版本:4.0.5-alpha.1
* Node.js:24+
* Git

安装步骤如下:

  1. 从 Releases 下载 dsh-time-machine-0.1.0.tgz 到本地绝对路径。
  2. 在 Web Profile 下执行安装命令:
dsh plugin --profile web add /absolute/path/dsh-time-machine-0.1.0.tgz
  1. 安装后重启 Web 主机(Desktop 环境请使用自带的插件管理)。

典型用法

插件支持命令行指令和图形界面两种操作方式。

命令行指令:
* /time_machine:查看当前会话的时间线。
* /time_machine preview <id>:查看指定轮次的变更预览。
* /time_machine undo <preview-token>:基于预览令牌执行撤销。
* /time_machine name <id> <label>:为检查点命名。
* /time_machine recover:恢复中断的回滚操作。

图形界面操作:
当智能体修改了本地 Git 工作区后,在编辑器旁边选择 Open change timeline。Inspect 一个回合,可选则单个文件并刷新预览,然后明确确认撤销。

配置说明

time-machine 配置行接受以下参数(默认值):
* storageRoot:存储根目录,默认 $DSH_HOME/plugins/time-machine 或 ~/.dsh/plugins/time-machine。
* maxFileBytes:单文件最大字节数,默认 2 MiB。
* maxFiles:单次快照最大文件数,默认 5,000。
* maxStoreBytes:单个仓库最大存储字节数,默认 512 MiB。
* maxRecords:单个仓库最大记录数,默认 2,000。
* timeoutMs:操作超时时间,默认 30,000。
* maxDiffChars:Diff 预览最大字符数,默认 60,000。
* previewTtlMs:预览令牌有效期,默认 300,000(5 分钟)。

限制与注意事项

  • 运行环境:仅在 Windows 上经过测试,需要本地 Git 仓库和受限的 UTF-8 文本文件。
  • 排除内容:二进制文件、超大文件、符号链接、被 Git 忽略的未跟踪文件、嵌套仓库内容不会被保存。
  • 数据恢复范围:Git 索引、提交、数据库、部署信息、空目录、ACL 和扩展属性不会被恢复。
  • 原子性:恢复是逐文件、带冲突检查的,多文件替换不是原子的。中断的恢复需要使用 /time_machine recover。
  • 会话限制:列表仅显示当前会话最新的 50 条记录,旧 ID 仍可访问。
  • 版本依赖:需要精确的 DSH 0.2.1-alpha.1 及 Cordis 4.0.5-alpha.1 版本,不支持自动兼容处理。

dsh-time-machine 通过持久化快照和精细化的文件级控制,为 DSH 工作区提供了类似 IDE 的回滚能力,降低了智能体开发的试错成本。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜