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 路由。

鏈接

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

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

小夜