原生運行於 DSH 的安全網:借助 Change Ledger 持久化復原引擎,把工作區檔案復原到任意歷史使用者訊息——顯式、人工確認、且不碰觸 Git 歷史。
DSH 整合
原生執行環境
作者聲明
安全稽核
未稽核
最後核實
2026-08-25
授權條款
BSD-3-Clause
01它能幫你完成什麼?
把 DeepSeek Harness 的工作區檔案回復到某條使用者訊息送出前的精確狀態
對 worktree 檔案做一次經過驗證的全部或選擇性復原,並可選擇性地新建一個 Session,把所選訊息的提示重新放回輸入框
希望用人工確認的「安全網」來抵擋 agent、自己或外部工具造成的不當修改的使用者
從失敗或中斷的復原作業中救援,並檢視 Change Ledger 的救援點
一個可檢視的救援點,以及透過公開 `ctx.changeLedger` 服務 API 執行的 plan/apply 復原
需要持久、可稽核的工作區變更復原能力的維運者與其他 Cordis 外掛
02如何將外掛接入 DeepSeek Harness?
先決條件
- 本機已 clone 外掛程式倉庫(安裝步驟會建置 checkout 出來的外掛程式)
- 已安裝 Node.js 與 pnpm,用於執行 `pnpm install --frozen-lockfile` 與 `pnpm run check`
安裝步驟
- 01
用 `pnpm install --frozen-lockfile` 然後 `pnpm run check` 建置 checkout 的外掛程式
- 02
將其加入每個 DSH profile:`dsh plugin --profile web add @anionex/dsh-turn-rewind`(以及 `dsh plugin --profile headless add @anionex/dsh-turn-rewind`)
$ dsh plugin --profile web add @anionex/dsh-turn-rewind
- 03
修改 bundle 清單後重新啟動對應的執行中 profile
驗證整合成功
- 確認 bundle 已註冊:`dsh --profile web --dump-config | grep turn-rewind`
- 在 Web profile 中開啟一條使用者訊息,在其時間戳與 Copy 控制項之後查看是否有僅圖示的 Rewind 操作
03DSH 整合程度與能力邊界
以 DSH Profile Bundle(`dsh.bundle.patch`)形式發佈,經 `cordis.patch.yml` 掛載且無須修改 DSH 核心;依 profile 啟用:`dsh plugin --profile <名稱> add @anionex/dsh-turn-rewind`。
Turn Rewind 使用者操作
DSH Web 工作階段中選取的一條使用者訊息→受影響檔案的預覽,以及兩種復原選擇——復原檔案並重啟,或僅復原檔案
只有在你於 Rewind 對話框中按下最終確認按鈕後,才會復原所選的 worktree 檔案Change Ledger 持久化復原引擎
目前的 Git worktree,加上 agent、使用者或外部的修改→內容定址的還原點清單,以及精確到路徑層級的漂移預覽
救援點與復原
一次中斷或失敗的復原作業→一個可檢視的救援點,以及透過公開 `ctx.changeLedger` 服務 API 執行的 plan/apply 復原
在修改任何路徑之前,先為目前工作樹建立救援點設定
profile patch 層的覆寫項(storageDir、maxRestorePoints、maxFiles、maxFileBytes 等)→解析後的 Change Ledger 儲存路徑與保留 / 大小限制
兩種復原模式
「復原並重啟」或「僅復原」→復原後的專案檔案,以及(選用的)一個把該訊息文字重新放回輸入框的新 Session
04適合誰?何時不該用?
適合
- 希望用人工確認的「安全網」來抵擋 agent、自己或外部工具造成的不當修改的使用者
- 需要持久、可稽核的工作區變更復原能力的維運者與其他 Cordis 外掛
不適合
- Turn Rewind 絕不碰觸 Git 歷史:index、branch、HEAD、stash 與提交都原封不動,因此復原出來的內容只會以普通的未提交修改形式出現。
05相容性、維護與安全提醒
- Turn Rewind 絕不碰觸 Git 歷史:index、branch、HEAD、stash 與提交都原封不動,因此復原出來的內容只會以普通的未提交修改形式出現。
- 若某個未受管理或被忽略的檔案正好位於復原要寫入的位置,復原會直接失敗而不是刪除該檔案;稀疏 checkout、子模組 gitlink、被忽略檔案、特殊檔案以及非 Git cirectory 都會被拒絕。
- 沒有任何復原是自動發生的。每一次復原都始於你在 Web 對話框中按下最終按鈕,或是透過服務 API 的顯式呼叫;對話框預覽只會讀取工作樹,不會修改任何檔案。
BSD-3-Clause · 活躍維護中(最新版本 v0.1.2,2026-08-23)
06常見問題
DSH Turn Rewind 是什麼?它和 Change Ledger 有什麼不同?
Turn Rewind 是每一條訊息下的使用者側 Web 操作;Change Ledger 是它底層的持久化復原引擎(`ctx.changeLedger` 服務、磁碟格式與儲存路徑)。README 稱 Turn Rewind 為「面向使用者的功能、倉庫與 Profile Bundle 名稱」,而 Change Ledger 是「其底層的持久化復原引擎」。
要怎麼把它裝進 DeepSeek Harness?
clone 倉庫後執行 `pnpm install --frozen-lockfile` 與 `pnpm run check`,再依 profile 加入:`dsh plugin --profile web add @anionex/dsh-turn-rewind`(以及 `headless` profile)。之後重新啟動對應 profile,並用 `dsh --profile web --dump-config | grep turn-rewind` 確認。
它會修改我的 Git 歷史或分支嗎?
不會。安全契約寫明「No Git control-plane mutation: the index, branch, HEAD, stash, and commits remain untouched.」Turn Rewind 只會在你確認後復原 worktree 檔案,因此復原結果只是相對於目前 HEAD 的普通未提交修改。
如果復原失敗,或 DeepSeek Harness 在復原中途當掉怎麼辦?
在寫入任何路徑之前,它會先建立救援點與持久化的操作日誌。若 DSH 在日誌未終結時停止,下一次啟動會將其標記為 interrupted,復原則使用公開的 `ctx.changeLedger` API——`listRecovery` 找到救援點,`inspect` 檢視,再由 `planRestore` / `applyRestore` 處理對應路徑。
它能復原哪些檔案?哪些不在範圍內?
v0.1 僅支援普通的 Git worktree:被追蹤檔案(含目前遺失者)、未被忽略的未追蹤檔案、符號連結、二進位檔案與權限位元。它會拒絕稀疏 checkout、子模組 gitlink、被忽略檔案、特殊檔案與非 Git 目錄;若復原路徑上存在被忽略檔案,復原會失敗而非刪除它。
07相關的 DSH 工作流程
archify
作者 tt-a1i
為編碼智慧體生成美觀可驗證的架構圖、時序圖與資料流圖,輸出自包含 HTML,支援動效與清晰匯出。
openviking
作者 volcengine
為 AI 智慧體打造的自進化上下文資料庫,統一智慧體記憶、知識 RAG 與技能。
nocobase
作者 nocobase
開源的 AI + 無程式碼應用搭建平臺:AI 在久經生產驗證的底層基礎設施與所見即所得的無程式碼介面之上工作,幫你快速構建 CRM、ERP 等業務系統,兼顧速度與可靠性。
learn-harness-engineering
作者 walkinglabs
Harness 工程新手教程,從 0 到 1 系統學習智慧體工作流框架。
08資料與來源
The package is a DSH Profile Bundle. `package.json` declares `dsh.bundle.patch`, and `cordis.patch.yml` mounts `@anionex…
Message-anchored project-file recovery for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), with an…
此頁面根據專案公開文件、儲存庫中繼資料與 DSH Plugins 的結構化解析所產生;最後核實於 2026-08-25。發現錯誤?提交更正。
最佳 DeepSeek Harness 外掛
從全目錄挑出的 12 個值得優先安裝的外掛,涵蓋各個分類。
