中文EN

dsh-freeze

security已测通过npmMIT

密闭组合锁:对 profile 的依赖、组合顺序、锁文件与补丁层取指纹;组合漂移时启动告警,strict 模式直接失败(CI 的 --frozen 姿态)。

下载量 / Downloads
770
依赖体积 / node_modules
0.45 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-freeze

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-freeze

Hermetic composition lock for

DeepSeek Harness (dsh).

"Today's agent composition is byte-identical to the one you reviewed."

Fingerprints the booted profile — installed dependencies (name-sorted), the

ordered bundle composition, the pnpm lockfile hash, the user patch layer —

baselines it, and compares on every boot. A session running on a drifted

composition says so loudly; strict: true fails the boot entirely (the

--frozen posture for CI). Zero LLM calls in the trust path.

Family: ... mcp-test (what agents can call) · prompt-drift (what they are

told) · freeze (what exactly they are running).

Why now (checked 2026-10-12)

The supply-chain lane has seven install-time scanners and one read-only

plugin ledger (dsh-harbor) — all answer "is this package ok to install?"

Nobody answers **"is the composition I'm running today the one that was

audited?"** Spike-verified: dsh --dump-config is byte-stable across runs,

and profile files (package.json / pnpm-lock.yaml / cordis.patch.yml) are the

complete composition truth — a deterministic fingerprint is sound.

What moves the alarm

field · meaning

dependencies · a package was added/removed/retargeted

bundles · the ordered composition changed

pnpm-lock · resolved versions moved (upgrade!)

cordis.patch.yml · the user layer changed

Install

dsh plugin --profile default add github:zhengqiuyang/dsh-freeze

Prebuilt lib/ ships in the repo — git installs need no build step and no

allowBuilds authorization.

Configure

- id: dsh-freeze
  name: dsh-freeze
  config:
    baselinePath: .dsh-freeze/baseline.json
    strict: false          # true: drift fails the boot (CI posture)
    profile: ""            # '' auto-detects from argv (--profile, else 'web')

Note: the baseline is written into the working directory of the session by

default; for CI, point it somewhere durable and commit it.

Compatibility

  • DSH: verified against the 0.2.x line (source snapshot 0.2.1-alpha.2); installs on any profile via dsh plugin add (prebuilt lib/, no build approval).
  • Node: >= 20 (CI matrix: Node 20/22/24 on Ubuntu and Windows).
  • Disposable-profile evidence (2026-10-19): dsh plugin --profile <fresh> add github:zhengqiuyang/dsh-freeze → installed in 30s; boot shows [dsh-freeze] active: …; dsh plugin --profile <fresh> remove dsh-freeze → dependencies cleared, bundles restored.

Develop

npm install && npm test

Kill criteria

If dsh ships first-party profile pinning (--frozen boot flag or

equivalent), this freezes at its last working version with a postmortem

here.

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:2,最后更新 2026-10-18

链接

GitHub · Homepage · npm

同类插件