前言¶
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