前言¶
在 DeepSeek Harness(DSH)的插件化工作流裏,聊天記錄本身並不適合作爲任務交接的權威證據。真正需要被檢查、比較和保留的,通常是一個結構化的 task.origin.json 狀態文件。
dsh-2origin 是一個面向 DSH 的插件,它把 2Origin 狀態文件作爲證據對象來處理:先查看狀態投影,再對完整候選 JSON 做只讀語義 diff,最後把已觀察到的版本凍結爲不可變快照。
DeepSeek Harness 強調插件化擴展;這裏的 dsh-2origin 屬於第三方插件擴展,不等同於官方應用商店。
這是什麼¶
dsh-2origin 的定位是:Evidence-first 2Origin state projection, diff and immutable freeze for DeepSeek Harness。
它由 dongsheng123132 維護,MIT 許可。v0.2 提供正式 Codex 插件表面,同時帶有獨立的 proof-only MCP surface。
它解決的主要問題有三個:
- 狀態檢查:輸出緊湊投影、計數、已驗證事實數,以及記錄哈希與計算哈希的一致性。
- 語義比較:對完整候選 JSON 文檔做只讀 diff,不把版本、時間、actor 或存儲哈希誤認爲內容變化。
- 不可變凍結:基於剛觀察到的哈希創建內容尋址快照,要求獨佔創建並讀回驗證。
它不是通用記憶存儲、插件信任掃描器或活動日誌。
核心功能¶
下面按插件暴露的主要能力分開說明。
狀態投影¶
dsh_2origin_status 用於查看當前 2Origin 狀態的摘要信息。
它會提供:
- compact projection
- counts
- verified-fact count
- recorded-vs-computed hash integrity
這一步的目的,是在後續 diff 或 freeze 之前,先確認當前狀態是否可讀、哈希是否一致。
語義 diff¶
dsh_2origin_diff 用於對完整候選 JSON 文檔做只讀語義 diff。
它的比較目標是語義內容,而不是機械地比較所有字段。內容哈希兼容 2origin/0.2:對穩定 canonical JSON 計算 SHA-256,並排除以下字段:
versionupdated_atcontent_hashactor
這樣可以避免來源元數據造成“僞變化”。
不可變 freeze¶
dsh_2origin_freeze 是唯一寫動作。
它會做這些事:
- 要求傳入剛從
status觀察到的哈希 - 拒絕過期狀態
- 創建內容尋址快照
- 使用 exclusive creation
- 讀取回寫內容進行驗證
- 對重複相同請求保持冪等
freeze 的目標是獨立快照目錄,不會更新 live state。
CLI¶
插件提供三個 CLI 命令:
statusdifffreeze
這三個命令分別對應狀態查看、候選比較和版本凍結。
Codex 與 MCP 表面¶
倉庫包含正式 Codex 插件表面,其中有 .codex-plugin/plugin.json。
它同時提供一個獨立的 stdio MCP server,暴露兩個工具:
state_proof:驗證一個有界 inline state document,只返回完整性、哈希、計數和違規項。state_diff_proof:比較兩個有界 inline documents,返回變更字段以及內容尋址的 value/item hashes。
這個 MCP server 不讀寫文件系統,拒絕 secret-shaped keys,每個文檔上限爲 1 MiB,並且不會 echo state prose。
MCP 表面也故意不暴露 freeze。文件系統寫入仍然保留在顯式配置的 DSH/CLI 表面。
安裝與啓用¶
運行環境要求 Node.js >=22。
安裝命令如下:
dsh plugin --profile <name> add github:dongsheng123132/dsh-2origin
安裝後需要顯式配置工作區。配置項包括:
workspaceRoot: <absolute project path>
stateFile: <relative state path>
freezeDir: <relative snapshot directory>
所有配置的文件路徑都相對於 workspaceRoot。路徑穿越和 symlink escape 會被拒絕。
@deepseek-ai/dsh-tools 被聲明爲可選 peer dependency。
典型用法¶
下面示例使用相對 workspaceRoot 的狀態路徑。
先查看狀態:
dsh-2origin status --root C:/project --state demo/task/task.origin.json
這一步用於確認當前狀態的可讀性、計數、已驗證事實數和哈希一致性。
再比較候選文檔:
dsh-2origin diff --root C:/project --state demo/task/task.origin.json --candidate next.json
這一步對 next.json 做只讀語義 diff。
最後凍結當前觀察版本:
dsh-2origin freeze --root C:/project --state demo/task/task.origin.json --expect <sha256>
這裏的 <sha256> 應來自前面 status 命令中觀察到的哈希。freeze 會寫入獨立快照目錄,而不是修改 live state。
適用場景與注意¶
適合誰:
- 需要在 DSH agent 或 CLI 中檢查
2origin/0.2任務狀態的團隊 - 需要比較完整候選 JSON 並凍結已觀察版本的場景
- 希望把狀態文件作爲證據對象處理,而不是把聊天上下文當作交接憑據的場景
不適合誰:
- 需要通用記憶存儲的場景
- 需要插件信任掃描或活動日誌的場景
- 希望插件直接維護業務狀態生命週期、或替代原系統 live-state writer 的場景
需要注意:
- 插件以當前
dsh進程權限運行。安裝前應檢查源碼、許可證與依賴。 - 許可證爲 MIT。
- 插件不會更新 live state。
freeze是唯一寫動作,且只寫入獨立快照目錄。- MCP 表面只用於 proof,不暴露
freeze。 - 本文不引用未確認的星標數或分類信息。
結尾¶
dsh-2origin 的價值,是把 task.origin.json 從“上下文文本”還原爲可校驗的證據對象:先 status,再 diff,最後用 freeze 保留精確版本。
GitHub:https://github.com/dongsheng123132/dsh-2origin