A shareable delivery receipt for DeepSeek Harness: branch and commit, artifact hashes, the three pre-push checks and your test/build results, hard-split into verified / local-only / unverified with blank slots instead of prose.
Install verification: runtime verified (L5) · tested on dsh 0.2.1-rc.2 · last checked Install verification details →
What it does
A shareable delivery receipt for DeepSeek Harness: branch and commit, artifact hashes, the three pre-push checks and your test/build results, hard-split into verified / local-only / unverified with blank slots instead of prose.
Installation
dsh plugin --profile web add github:dingchenhui0618-arch/dsh-ship-receiptInstall method: GitHub · runtime verified (L5)
Verification & Compatibility
Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.
External credentials (plugin-level): none detected
○ The author declares no dsh version requirement — install is not blocked by version.
| plugin \ dsh | dsh 0.2.1-rc.2 current |
|---|---|
| f97729 | ✓ |
f97729github✓ 1 runtime-verified2026-10-19
https://github.com/dingchenhui0618-arch/dsh-ship-receipt
✓dsh 0.2.1-rc.2current2026-10-19L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • Plugin artifact: github · https://github.com/dingchenhui0618-arch/dsh-ship-receipt (version unstated)
ID: dsh-ship-receipt@f97729@dsh0.2.1-rc.2 · profile: l4-sandbox
Issued: 2026-10-19 · expires: 2026-10-26
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/dsh-ship-receipt/)``[](https://www.dsh.so/artifact/dsh-ship-receipt/)`Security Report
Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.
Static low, dynamic medium — stricter wins → overall medium.
v0.1.0dsh manifest0.1.0git2026-10-21d428569ba141version moved onclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (2)
- criticalshellExec · shell
lib/index.js:106exec(command, { cwd: cwd, timeout: timeoutMs, maxBuffer: 8 * 1024 * 1024, windowsHide: true }, function (error, stdout, stderr) { - criticalshellExec · shell
src/host.js:106exec(command, { cwd: cwd, timeout: timeoutMs, maxBuffer: 8 * 1024 * 1024, windowsHide: true }, function (error, stdout, stderr) {
show 3 audit findings
- mediumCaller-supplied check commands are executed through a shell via exec()
lib/index.js:106The ship_receipt tool runs each checks[].command string with /bin/sh -c (exec), with no allowlist or confirmation. This is the tool's documented purpose, but it is still a real code-execution surface: anyone who can influence the agent's tool arguments (e.g. prompt injection from scanned repo content) can run arbitrary host commands with the plugin's privileges.
- lowUnauthenticated route exposes receipts containing git remote URLs and command output
lib/index.jsThe GET /dsh-ship-receipt route returns latest/history receipts without auth, including project paths, `git remote get-url origin` output (which can embed credentials in the URL) and truncated check outputs. This is normally local-only and no CORS headers are set, so risk is bounded, but it is an undisclosed data channel beyond the tool itself.
- lowArtifacts accept absolute paths, letting the tool hash/read arbitrary files
lib/index.jsThe artifact measurement path reads and hashes any file named by the caller, including outside the project dir, bounded only by maxFileBytes. That is consistent with the tool's measurement purpose but broadens the read surface beyond the repository.
Commands run through a shell by design and receipts are served on an unauthenticated route; path traversal and XSS are properly guarded.
Rule: the dynamic audit can only raise risk, never lower it (raise-only, never an exemption); a wrong raise is withdrawn by human review and the tier falls back to the static verdict. Overall verdict = the stricter of the two layers.
Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.
Activity
Last commit 2026-10-21 · activity: Active
• Repo created: 2026-10-12
• Stars: ★ 0 · Forks: 0
• Health: Active — committed within last 30 days
Source
Author README
View on GitHub ↗The author's original README from the repository — fetched live, unedited (the English page loads the default README).
