插件安装生态报告
装得上不是终点——五个可安装插件里有两个从来没真正挂载起来
所有跑过真实批次的 dsh 版本,同一条阶梯——0.1.2-α.1 → 0.1.2-rc.1 → 0.1.3-α.1 → 0.1.3-α.2 → 0.1.5-rc.2。各版本跑得起来数:5,536 → 6,247 → 6,444 → 7,171 → 7,799。
本卷所有百分比的分母都只算可安装插件 14,910 个——注册表 15,132 条减去生态应用 222 个(1.5%,kind:'app':自带 dsh 的桌面 / Web 壳, 不能用 dsh plugin add 安装,放进安装占比里没有意义)。计数口径仍包含它们,且每一层都给出数字, 可以逐层对账:14,910 + 222 = 15,132。
- 安装占比不含生态应用——所有百分比都以可安装插件(14,910)为分母;222 个生态应用计入注册表总数、单独展示,永不进占比。
- L5 优先——「跑得起来」必须 L5 通过(web 启动 · HTTP · 插件清单确认);只有 L4 是装得上,不等于跑得起来。
- 版本口径 + 发布即冻结——判定只对实测时的 dsh 版本有效;本卷数字在发布那一刻派生一次后不再重算,后续新记录不会改写它。
- 灰色不等于坏——unknown 指装得上但没声明 dsh.bundle:dsh 把它当普通依赖装上、不挂载。既不算过,也不算失败。
A 各版本判定构成堆叠高度 = 该版本实测数
B L4 装得上 vs L5 跑得起来已决判定通过率 · 当前 0.1.5-rc.2
C 注册表构成 · 0.1.5-rc.2占比分母 14,910 / 15,132
D 从可安装到跑得起来 · 0.1.5-rc.2全程同一个分母
每一行都用同一个分母 14,910,所以行行可对账:14,908 已测 + 2 未测 = 14,910;已测里 7,799 跑得起来 · 3,964 未挂载 · 3,145 失败。L4 是另一条漏斗(见 F 图):14,910 个里有 14,123 个沙盒安装干净通过,其中 7,799 个再过了 web 运行门。
E 生态账本各版本跑得起来数
比 Vol.2 收尾版本(0.1.3-α.2)多 628 个跑得起来;比 Vol.1 收尾版本(0.1.3-α.1)多 1,355 个(+21%)。这里只比同版本上的绝对数:前两卷发布时的注册表分母不同,标题里的占比不可直接跨卷比较。
F 阶梯 L1 → L5 · 0.1.5-rc.2条 = 通过率
L1–L3 是与 dsh 版本无关的静态检查(分母 14,908 个条目);L4/L5 只算 0.1.5-rc.2 上的真实判定,共用可安装插件分母 14,910,旧版本判定单列不计入(L4 0 个 · L5 129 个)。
G 双通道对决 · 0.1.5-rc.2差距 25.7%pp
H 运行失败画像 · 0.1.5-rc.2记录原文
I 本卷到底说了什么读同一组数字
01 解读
这是解读,不是第二个数据源:下面每句结论都指回上方已出现的数字,不引入新数字。
Two out of five installable plugins never reach the loader
Of 14,910 installable plugins, 14,123 complete a clean sandbox install (94.7%) — but only 7,799 (52.3%) pass the L5 runtime gate and appear active in the loader inventory. 3,964 (26.6%) install as plain dependencies and declare no dsh.bundle; 3,145 (21.1%) actually fail. "Installed" and "runs" differ by 42.4% on this batch.
口径。Install rate = L5-wins verdicts on 0.1.5-rc.2 over installable plugins only (14,910 = 15,132 registry entries minus 222 ecosystem apps, which cannot be installed with dsh plugin add).局限。A plain dependency is not a broken plugin: dsh installs it and simply does not mount it as a plugin. Only 3,145 of 14,908 tested plugins record an actual failure.
Coverage is complete — the loss moved into two verdicts
14,908 of 14,910 installable plugins carry a real verdict on 0.1.5-rc.2 (99.99% coverage, 2 never tested). The gap is no longer reach: it is 3,145 failures + 3,964 unmounted plain dependencies = 7,109 plugins that do not run.
口径。The 0.1.5-rc.2 batch is a full-registry L5 sweep; the 14,908 tested plugins are accounted for as 7,799 running, 3,145 failed and 3,964 unmounted.局限。Untested is not failing — and here untested is 2. Coverage is a property of the verification queue, not of ecosystem quality.
The install floor held while the current version moved four times
L4 install pass rate, version by version: 99% → 99.2% → 99.2% → 99.2% → 99.2% across 0.1.2-α.1 → 0.1.2-rc.1 → 0.1.3-α.1 → 0.1.3-α.2 → 0.1.5-rc.2. The floor barely moves between 0.1.2-alpha.1 and 0.1.5-rc.2; what moves is how much of the registry has been re-tested on the newest version.
口径。L4 rate = passed / (passed + failed) inside each version, so the untested remainder never flatters it. Same numbers as chart B.局限。A high install rate is not a quality score: it says the artifact was fetchable and its dependency graph resolved in a sandbox — nothing about what the plugin does.
The channel gap is packaging discipline, not breakage
npm-pinned installs verify at 73.1% versus 47.4% for source installs (25.7%pp gap). Failure rates are close (18.6% npm vs 21.7% source) — the real split is the gray bucket: 30.9% of source installs declare no dsh.bundle versus 8.4% of npm ones.
口径。Channel is the winning record's evidence.parsed.channel, with a same-version fallback; the "other" bucket is empty in this window.局限。Declaring dsh.bundle is a packaging choice, not a quality score: an unmounted dependency is not a broken plugin.
Runtime failure is still one shape, with a small tail behind it
3,145 failures = 109 sandbox install failures (L4) + 3,036 web-runtime failures (L5). 2,752 of the runtime failures (90.6%) carry the identical record text "plugin tree failed to load" on check L5.2_WEB_BOOT_READY; the remaining 284 spread over 7 other recorded forms.
口径。Buckets are the failing check's own summary text, verbatim; nothing is reclassified or renamed into a taxonomy.局限。One shared shape points at a common gate or cause, not at 3,036 independent plugin defects — this is a symptom tally, not a root-cause analysis.
02 方法论
- 安装占比口径(本卷新增):所有百分比的分母都是 14,910 个可安装插件——注册表 15,132 条减去 222 个生态应用(
kind:'app':自带 dsh 的桌面 / Web 壳,不能用dsh plugin add安装,因此永远不会进 L1–L5 阶梯)。注册表计数与构成图仍含它们,两层可对账。被排除的 id 集合记录在冻结快照的ratioScope里,不在渲染时重算。 - 判定规则(L5 优先):每个 dsh 版本上取最新 L5 真测判定获胜;该版本没有 L5 真测时退回最新 L4。只有 L5 通过才算「跑得起来」。
- 状态层次(记录层不变):失败 = 安装 / 启动 / HTTP 失败。灰色 = 装得上但没声明 dsh.bundle,dsh 当普通依赖装上、不挂载(web 运行门对它不适用)。记录层叫它 unknown(既非通过也非失败),本报告按语义称呼它,绝不叫失败。
- 失败画像:当前版本的失败判定拆成 L4 沙盒安装失败与 L5 web 运行失败;后者按失败检查自己的 summary 原文分桶(记录没有 summary 时用检查 id)。不在记录之上发明任何分类法。
- 窗口 / 版本口径:窗口是跑过真实批次的 dsh 版本——0.1.2-alpha.1 → 0.1.2-rc.1 → 0.1.3-alpha.1 → 0.1.3-alpha.2 → 0.1.5-rc.2,发布时从记录派生后钉进快照。0.1.5-rc.1 有记录但没有批次(某一晚的零散运行),因此与 0.1.1-rc.2 一样只作为旧版本记录留存、不进窗口。判定只对它实测时的版本有效。
- 发布即冻结:本卷数字在发布 build 上派生一次并写入
install-vol3-data.json,之后所有 build 只读该文件:新记录、新注册表条目、新 dsh 版本都不会改动已发布的一卷。Vol.1 / Vol.2 保持各自发布时的数字。
Q 为什么占比不拿整个注册表当分母?
因为注册表里有 222 条是生态应用、不是插件:它们不能用 dsh plugin add 安装,也永远不会进 L1–L5 阶梯。把它们放进安装占比,回答的是另一个问题——「我们收录的一切里有多少装得上」,而不是「可安装的插件里有多少装得上、跑得起来」。它们仍计入注册表总数、在快照里逐个留名、在构成图里单独展示。
Q 「装得上」(L4)等于「跑得起来」吗?
不等于。L4 只表示沙盒里安装命令跑完了;L5 表示 web 运行时可启动、能对外服务 HTTP、并把插件列进插件清单。只有 L5 通过才算跑得起来——0.1.5-rc.2 上 14,123 个装得上,7,799 个跑得起来。
Q 窗口为什么从 0.1.2-alpha.1 开始?
因为那是有真实运行记录的第一个 dsh 版本。0.1.1-rc.2 只有 L4 批量记录、L5 全为 0,不算「跑过的版本」,因此不进窗口;版本史前记录(无版本可考)同样不进。
03 其它
- 数字从哪来:本卷全部数字在发布时从 14,908 条口径内验证记录派生一次并冻结进快照。逐插件记录:GET /data/install/<id>.json。
- 活页视图:/zh/verification/ 用同一套判定规则、跟随当前 dsh 版本,每次构建重算。
- 历史卷:Vol.1(0.1.2-alpha.1 → 0.1.3-alpha.1)与 Vol.2(0.1.2-alpha.1 → 0.1.3-alpha.2),均保持发布原样。
- 独立声明:dsh.so 是独立社区项目,与 DeepSeek 没有隶属、背书或赞助关系;判定是对沙盒记录的观察,不是推荐。
Q3,145 个失败该怎么读?
当成两件事。109 个在沙盒里根本没装上;3,036 个装上了但没过 web 运行门——其中 90.6% 记录着完全相同的文本「plugin tree failed to load」。请把它读成同一道门的共同症状,而不是 3,036 个各自独立的插件质量判决。
Q 通过运行验证的插件就安全吗?
不。验证与安全是两条独立的轴:运行验证只说明它装得上、跑得起来,不说明它会做什么。安全结论在插件详情页单独给出。
Q 相比 Vol.2 这卷变了什么?
两件事。窗口新增了 0.1.5-rc.2(全库复扫);0.1.5-rc.1 刻意不算窗口版本——它只有某一晚的零散运行,记录留档但不画列;安装占比口径也改了:生态应用不再进入任何百分比。注册表 15,132 条里有 222 条是生态应用(1.5%),本页所有比率都以剩下的 14,910 个可安装插件为分母。
引用本报告
dsh.so — DeepSeek Harness Plugin Install Ecosystem Report, Vol.3 (published 2026-09-15). Window: 0.1.2-alpha.1 -> 0.1.2-rc.1 -> 0.1.3-alpha.1 -> 0.1.3-alpha.2 -> 0.1.5-rc.2 · verification batch started 2026-09-11 12:47:29 (UTC+8) Scope: install rates are computed over 14,910 installable plugins (15,132 registry entries minus 222 ecosystem apps). Runtime verified (L5) 7,799 (52.3%) · installed (L4) 14,123 (94.7%) · failed 3,145 (21.1%) · plain deps 3,964 (26.6%) https://dsh.so/reports/install-vol3/