dsh-release-proof:为 DeepSeek Harness 生成可复现的多源发布证据

前言

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_inspectdsh_release_proof_verify
  • 暴露独立 stdio MCP server,提供 release_manifest_inspectrelease_verify
  • 支持 CLI 的 inspectverify 命令。

安全边界

已核实的安全约束如下:

  • 只允许匿名 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_inspectdsh_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 提供 inspectverify 两个命令。先运行 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
羽毛球分组比赛记分
小程序二维码

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

小夜