插件 × harness 兼容性:声明规则、每周生态快照与两个实现的对齐(从 #4792 拆出) #6683
ciceroyang
started this conversation in
General
Replies: 1 comment
|
对齐已完成,两条语料都是 0 分歧 —— 从 #6678 那条线移到这里收口。 $ node scripts/range-difftest.mjs --other <our impl>.mjs --corpus compat.json
cases: 1639 | divergences: 0 # 13 条边界语料同样 0(修复前 58)我们这边改动落在 但请先修一处表述——它就在本贴的规则摘要里,也与文档表格一致、与你的实现相反:
按这行,旗舰用例 另外两点小补充(都来自落地):
之后你每周刷新快照时,如果愿意把新语料跑一遍我们的实现,结果直接贴这里即可;有分歧我按条修。也欢迎把 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
从 #4792 拆出来的独立话题。那边原本是「官方要不要做插件市场」,兼容性调查越长越偏,axetroy 提醒得对,所以把这条线移到这里。
问题
插件在
package.json的peerDependencies里声明它依赖哪些@deepseek-ai/*host 包与范围——这是目前唯一机器可读的兼容性信号。但:dsh plugin add不校验它(profile 的 pnpm 配置autoInstallPeers: false,host 包来自 CLI 共享根层、不在 profile 依赖图中,pnpm 没有可解析的 peer 目标),装进去也没有任何警告 → Bug: dsh plugin add 会静默安装 host peer 范围无法满足的插件(dsh-win32 实测,零 warning) #6680;规则(已写成文档,欢迎第二实现对齐)
https://github.com/ciceroyang/dsh-doctor/blob/main/docs/host-peer-declarations.md
要点:解析顺序(profile node_modules → 共享根层、跟随软链接、作用域名两段、排除内置/相对路径);三态「兼容 / 不兼容 / 未知」,未知不得当作兼容;以及最容易做错的预发布合并规则:strict 满足 → 兼容;numeric 满足而 strict 不满足 → 未知;numeric 不满足 → 不兼容(部分版本
<1/>=4必须可解析)。生态快照(每周自动刷新,可直接引用)
最近一版(503 个仓库):305 个插件声明了 host peer,201 全兼容、61 含未解析/无法判定、43 至少有一条区间不包含当前 host;另有 162 个插件有 bundle 却完全没写 host 范围。
作者自查(一行)
node doctor.mjs --lint-peers .退出码
0全部覆盖 /1至少一条不覆盖 /2没装 DSH(绝不静默通过)。快照里那些不覆盖的声明,大多是^0.0.1这类版本线过时或精确锁死旧版本,改一行即可。两个实现正在对齐
现在生态里有两份独立实现(
@moonquake2004/dsh-doctor的peerRangeState与本仓库的satisfiesRange)。我用scripts/range-difftest.mjs在 1639 条真实声明上比对,发现 58 条判定不同,已把机制与合并规则发在 #6678;对齐后我会用同一份语料复跑并把结果贴在这里(目标 0 分歧)。candidate(变更前判定)那一类的契约草案在 #1719。—— 这条线之后就在本贴更新。
All reactions