DeepSeek Harness 插件:dsh-time-machine

前言

在 DeepSeek Harness (DSH) 的开发环境中,智能体经常需要执行复杂的多文件重构、运行破坏性 Shell 命令或安装依赖。当意外发生回归或工作区状态损坏时,手动使用 Git 回滚不仅过程繁琐,还存在丢失未跟踪文件或破坏用户历史记录的风险。

dsh-time-machine 是为此类场景设计的 DSH 插件。它提供了一套智能检查点、工作区安全卫士和即时回滚机制,能够在后台创建轻量级的影子 Git 快照,确保工作区状态的完整性和可恢复性。

核心功能

该插件提供以下核心能力:

  • 轻量级影子 Git 快照:在后台捕获全量工作区、暂存区及未跟踪文件,使用隔离的 Git 影子树引用,不干扰用户的提交历史、当前分支或暂存区。
  • 即时安全回滚:支持将整个工作区或特定文件恢复到任意历史检查点,使用非破坏性 checkout-index 操作,不移动 HEAD 或重写分支历史。
  • 可视化快照差异检查器:提供文件级的视觉差异对比,高亮新增、删除和修改的行,并显示统计信息。
  • 交互式侧边栏与设置时间轴:集成于 DSH Web UI 的侧边栏和设置标签页,以时间轴形式展示会话检查点,支持一键回滚、差异查看和删除操作。
  • 命令失败自动修复:当工具或命令执行失败时,自动记录检查点以保留恢复选项。
  • 选择性文件回滚与暂存安全卫士:支持单文件恢复,并在高风险操作前自动创建检查点,保护用户暂存的 Git 索引。

安装

使用官方命令安装该插件:

dsh plugin --profile web add @goodandready/dsh-time-machine

配置

在 DSH 的配置文件中添加以下内容以启用自动快照和回滚提示:

dsh-time-machine:
  autoSnapshotEnabled: true    # 在文件修改前自动创建检查点
  maxSnapshots: 20             # 内存中保留的最大滚动检查点数量
  autoHealPrompt: true         # 命令失败时提示回滚

工具参考

插件为 Agent 提供了以下工具,可用于程序化控制:

  • time_machine_checkpoint_create
    • 描述:在执行高风险编辑或操作前创建影子 Git 工作区检查点。
    • 参数:label?: string, sessionId?: string
  • time_machine_checkpoint_list
    • 描述:列出最近的会话检查点(按时间倒序)。
    • 参数:sessionId?: string
  • time_machine_checkpoint_rollback
    • 描述:将工作区文件恢复到指定检查点。
    • 参数:id: string, confirm: boolean
  • time_machine_diff
    • 描述:计算当前工作区与目标检查点之间的统一文件差异。
    • 参数:from: string, to?: string
  • time_machine_checkpoint_delete
    • 描述:永久删除单个检查点并清除其 Git 引用。
    • 参数:id: string, confirm: boolean
  • time_machine_checkpoint_prune
    • 描述:清理会话检查点,仅保留最新的 N 个。
    • 参数:sessionId?: string, keep?: number

注意事项

  • 运行环境:插件以当前 DSH 进程权限运行,安装前请检查源码与许可证。
  • 依赖要求:需要 Node.js 20 或更高版本。
  • 版本更新:
    • v0.1.16:安全加固与侧边栏标签去重。修复了在特定环境下侧边栏重复注册的问题,并严格限制了 REST 路由的 HTTP 方法(仅 POST 用于修改,GET 用于读取)。
    • v0.1.15:选择性文件回滚与暂存安全卫士。新增单文件恢复工具 time_machine_file_rollback 及 /rollback-file 路由。

链接

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

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

小夜