前言¶
DSH 的「一切皆插件」理念下,發佈驗證也可以作爲一個工具接入工作流。常見的問題是:一次構建通過之後,多個下載源提供給用戶的文件是否一致。下面介紹 dsh-release-proof:它根據顯式發佈清單下載所有鏡像,校驗 HTTP 狀態、長度、SHA-256 和版本,並寫出內容尋址的 JSON 證據文件。
定位¶
dsh-release-proof 的定位是 “Reproducible multi-source release evidence for DeepSeek Harness”。在已覈實的 0.2.0 版本中,它是一個正式 Codex 插件,也是獨立 stdio MCP server。它同時提供 DSH 工具、MCP 工具和 CLI 命令,要求 Node.js 22 或更新版本,許可證爲 MIT。
核心功能¶
- 下載顯式發佈清單中聲明的所有鏡像。
- 校驗 HTTP 狀態、聲明長度、實際長度、SHA-256 和發佈版本。
- 寫出內容尋址的 JSON 證據文件。
- 註冊 DSH 工具
dsh_release_proof_inspect和dsh_release_proof_verify。 - 暴露獨立 stdio MCP server,提供
release_manifest_inspect和release_verify。 - 支持 CLI 的
inspect和verify命令。
安全邊界¶
已覈實的安全約束如下:
- 只允許匿名 HTTP(S);拒絕 source credentials、custom headers、cookies、query strings 和 URL fragments。
- 每個請求都有 manifest-bounded timeout、redirect count 和 maximum response size。
- worker pool 限制總併發源檢查,範圍爲 1-16。
- 清單必須聲明 expected version、bytes 和 SHA-256;每個 artifact 至少需要兩個 source。
- 唯一寫入目標是顯式聲明的 workspace-relative
artifactDir;拒絕 traversal 和 symlink escape。 - 證據文件按內容尋址,獨佔寫入,讀回並做 SHA-256 校驗。
- 證據不包含 timestamp 或 latency 測量;相同觀察會產生字節一致的 JSON。
- 它不證明發布者身份,也不驗證 signed release attestations;如果威脅模型需要這些能力,應搭配簽名或來源驗證工具。
安裝與啓用¶
需要 Node.js 22 或更新版本。使用已覈實的安裝命令:
dsh plugin --profile web add github:dongsheng123132/dsh-release-proof
該包已覈實沒有 install lifecycle scripts,運行時依賴只有可選的 DSH tool SDK peer。許可證爲 MIT。安裝前建議查看倉庫源碼與許可證;該插件在 DSH 中運行時會使用當前 dsh 進程的權限。
DSH 工具用法¶
0.2.0 註冊兩個 DSH 工具:dsh_release_proof_inspect 和 dsh_release_proof_verify。
典型工具參數如下。manifestPath 指向發佈清單,artifactDir 指定證據輸出目錄。
{
"manifestPath": "release/release-manifest.json",
"artifactDir": "release/evidence"
}
MCP 用法¶
它暴露獨立 stdio MCP server,提供兩個工具:
release_manifest_inspect
release_verify
已覈實信息中,MCP 接受顯式內聯 manifestJson,大小最多 1 MiB,並且不讀取或寫入文件系統。
CLI 用法¶
CLI 提供 inspect 和 verify 兩個命令。先運行 inspect,再運行 verify 執行多源檢查並寫證據。
dsh-release-proof inspect \
--root /path/to/workspace \
--manifest release/release-manifest.json
dsh-release-proof verify \
--root /path/to/workspace \
--manifest release/release-manifest.json \
--artifact-dir release/evidence
退出碼含義如下:
0:所有檢查通過。2:已寫出有效證據,但發佈未通過驗證。1:操作性錯誤或清單錯誤。
本地檢查¶
在倉庫中可使用已覈實的檢查命令:
npm test
npm run check
npm run smoke:plugin
npm run smoke:mcp
適用場景與注意¶
適合:
- 需要確認多個下載源返回相同版本、相同長度和相同 SHA-256 的發佈鏈路。
- 需要在 DSH 工具、MCP 工具或 CLI 中復現多源發佈證據。
- 需要把證據文件寫到顯式
artifactDir,並保留內容尋址的 JSON 文件。
注意:
- 它校驗的是清單給定的期望值,不證明發布者身份或簽名證明。
- 它只走匿名 HTTP(S),不能攜帶憑據、自定義頭、Cookie、query string 或 URL fragment。
- 清單必須聲明版本、字節數和 SHA-256,且每個 artifact 至少需要兩個 source。
- 插件以當前 dsh 進程權限運行;安裝前應檢查源碼、MIT 許可證和依賴關係。
結尾¶
dsh-release-proof 的價值,是把多源發佈一致性檢查落到可執行的證據文件上。GitHub 倉庫地址:
https://github.com/dongsheng123132/dsh-release-proof