dsh-2origin:爲 DeepSeek Harness 提供 2Origin 狀態投影、語義 diff 與不可變 freeze

前言

在 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,並排除以下字段:

  • version
  • updated_at
  • content_hash
  • actor

這樣可以避免來源元數據造成“僞變化”。

不可變 freeze

dsh_2origin_freeze 是唯一寫動作。

它會做這些事:

  • 要求傳入剛從 status 觀察到的哈希
  • 拒絕過期狀態
  • 創建內容尋址快照
  • 使用 exclusive creation
  • 讀取回寫內容進行驗證
  • 對重複相同請求保持冪等

freeze 的目標是獨立快照目錄,不會更新 live state。

CLI

插件提供三個 CLI 命令:

  • status
  • diff
  • freeze

這三個命令分別對應狀態查看、候選比較和版本凍結。

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

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

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

小夜