dsh-standards 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/40-checker/README.md +2 -2
  2. package/40-checker/scripts/runtime-child.mjs +13 -0
  3. package/40-checker/src/cli.mjs +64 -5
  4. package/40-checker/src/manifest.mjs +20 -1
  5. package/40-checker/src/report.mjs +6 -1
  6. package/40-checker/src/semver.mjs +77 -11
  7. package/CHANGELOG.md +32 -0
  8. package/NOTICE +14 -0
  9. package/README.md +6 -6
  10. package/bin/dsh-standards.mjs +1 -0
  11. package/package.json +14 -5
  12. package/40-checker/.github/workflows/plugin-verify.yml +0 -70
  13. package/40-checker/results/boost/REPORT.md +0 -304
  14. package/40-checker/results/boost/lev12458.json +0 -1747
  15. package/40-checker/results/client/README.md +0 -16
  16. package/40-checker/results/entry/18/DDDMUC__dsh-free-search.json +0 -381
  17. package/40-checker/results/entry/18/DDDMUC__dsh-free-search.runtime.json +0 -34
  18. package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.json +0 -361
  19. package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.runtime.json +0 -34
  20. package/40-checker/results/entry/18/README.md +0 -24
  21. package/40-checker/results/entry/18/RUNTIME.md +0 -18
  22. package/40-checker/results/entry/18/SeaOf0__dsh-redteam-model.json +0 -391
  23. package/40-checker/results/entry/18/YuJunZhiXue__dsh-purge.json +0 -432
  24. package/40-checker/results/entry/18/ci-diet.json +0 -365
  25. package/40-checker/results/entry/18/ci-diet.runtime-attempt.json +0 -38
  26. package/40-checker/results/entry/18/daily-log.json +0 -357
  27. package/40-checker/results/entry/18/daily-log.runtime.json +0 -519
  28. package/40-checker/results/entry/18/fullbase/ATTRIBUTION.md +0 -29
  29. package/40-checker/results/entry/18/fullbase/DDDMUC__dsh-free-search.json +0 -99
  30. package/40-checker/results/entry/18/fullbase/Ebony-Vinyl__dsh-our-free-model.json +0 -95
  31. package/40-checker/results/entry/18/fullbase/REPORT.md +0 -261
  32. package/40-checker/results/entry/18/fullbase/SeaOf0__dsh-redteam-model.json +0 -144
  33. package/40-checker/results/entry/18/fullbase/YuJunZhiXue__dsh-purge.json +0 -106
  34. package/40-checker/results/entry/18/fullbase/ci-diet.json +0 -99
  35. package/40-checker/results/entry/18/fullbase/daily-log.json +0 -94
  36. package/40-checker/results/entry/18/fullbase/howmp__dsh-pentest.json +0 -104
  37. package/40-checker/results/entry/18/fullbase/kingcharleslzy-ai__dsh-purge.json +0 -143
  38. package/40-checker/results/entry/18/fullbase/liguobao__ds-harness-remote.json +0 -134
  39. package/40-checker/results/entry/18/fullbase/mmparko__dsh-purge.json +0 -138
  40. package/40-checker/results/entry/18/fullbase/project-memory.json +0 -108
  41. package/40-checker/results/entry/18/fullbase/qiushi.json +0 -94
  42. package/40-checker/results/entry/18/fullbase/shaobeichen__dsh-pocket.json +0 -94
  43. package/40-checker/results/entry/18/fullbase/status-rotator.json +0 -94
  44. package/40-checker/results/entry/18/fullbase/summary.json +0 -297
  45. package/40-checker/results/entry/18/fullbase/telemetry.json +0 -94
  46. package/40-checker/results/entry/18/fullbase/ui-auth.json +0 -94
  47. package/40-checker/results/entry/18/fullbase/verification.json +0 -94
  48. package/40-checker/results/entry/18/fullbase/ysr666__dsh-vision-router.json +0 -106
  49. package/40-checker/results/entry/18/howmp__dsh-pentest.json +0 -361
  50. package/40-checker/results/entry/18/kingcharleslzy-ai__dsh-purge.json +0 -411
  51. package/40-checker/results/entry/18/liguobao__ds-harness-remote.json +0 -379
  52. package/40-checker/results/entry/18/mmparko__dsh-purge.json +0 -441
  53. package/40-checker/results/entry/18/project-memory.json +0 -361
  54. package/40-checker/results/entry/18/project-memory.runtime.json +0 -519
  55. package/40-checker/results/entry/18/qiushi.json +0 -353
  56. package/40-checker/results/entry/18/qiushi.runtime.json +0 -519
  57. package/40-checker/results/entry/18/realweb/REPORT.md +0 -73
  58. package/40-checker/results/entry/18/realweb/SeaOf0__dsh-redteam-model.json +0 -104
  59. package/40-checker/results/entry/18/realweb/YuJunZhiXue__dsh-purge.json +0 -64
  60. package/40-checker/results/entry/18/realweb/howmp__dsh-pentest.json +0 -65
  61. package/40-checker/results/entry/18/realweb/kingcharleslzy-ai__dsh-purge.json +0 -75
  62. package/40-checker/results/entry/18/realweb/mmparko__dsh-purge.json +0 -70
  63. package/40-checker/results/entry/18/realweb/shaobeichen__dsh-pocket.json +0 -56
  64. package/40-checker/results/entry/18/realweb/summary.json +0 -196
  65. package/40-checker/results/entry/18/realweb/ui-auth.json +0 -56
  66. package/40-checker/results/entry/18/realweb/ysr666__dsh-vision-router.json +0 -61
  67. package/40-checker/results/entry/18/richbase/REPORT.md +0 -70
  68. package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.json +0 -61
  69. package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.log +0 -38
  70. package/40-checker/results/entry/18/shaobeichen__dsh-pocket.json +0 -363
  71. package/40-checker/results/entry/18/status-rotator.json +0 -362
  72. package/40-checker/results/entry/18/status-rotator.runtime.json +0 -519
  73. package/40-checker/results/entry/18/summary.json +0 -266
  74. package/40-checker/results/entry/18/targetonly/DDDMUC__dsh-free-search.json +0 -34
  75. package/40-checker/results/entry/18/targetonly/Ebony-Vinyl__dsh-our-free-model.json +0 -34
  76. package/40-checker/results/entry/18/targetonly/SeaOf0__dsh-redteam-model.json +0 -84
  77. package/40-checker/results/entry/18/targetonly/YuJunZhiXue__dsh-purge.json +0 -52
  78. package/40-checker/results/entry/18/targetonly/ci-diet.json +0 -34
  79. package/40-checker/results/entry/18/targetonly/daily-log.json +0 -34
  80. package/40-checker/results/entry/18/targetonly/howmp__dsh-pentest.json +0 -46
  81. package/40-checker/results/entry/18/targetonly/kingcharleslzy-ai__dsh-purge.json +0 -61
  82. package/40-checker/results/entry/18/targetonly/liguobao__ds-harness-remote.json +0 -39
  83. package/40-checker/results/entry/18/targetonly/mmparko__dsh-purge.json +0 -57
  84. package/40-checker/results/entry/18/targetonly/project-memory.json +0 -34
  85. package/40-checker/results/entry/18/targetonly/qiushi.json +0 -34
  86. package/40-checker/results/entry/18/targetonly/shaobeichen__dsh-pocket.json +0 -34
  87. package/40-checker/results/entry/18/targetonly/status-rotator.json +0 -34
  88. package/40-checker/results/entry/18/targetonly/summary.json +0 -133
  89. package/40-checker/results/entry/18/targetonly/telemetry.json +0 -34
  90. package/40-checker/results/entry/18/targetonly/ui-auth.json +0 -34
  91. package/40-checker/results/entry/18/targetonly/verification.json +0 -34
  92. package/40-checker/results/entry/18/targetonly/ysr666__dsh-vision-router.json +0 -43
  93. package/40-checker/results/entry/18/telemetry.json +0 -349
  94. package/40-checker/results/entry/18/ui-auth.json +0 -369
  95. package/40-checker/results/entry/18/verification.json +0 -358
  96. package/40-checker/results/entry/18/ysr666__dsh-vision-router.json +0 -409
  97. package/40-checker/results/fixtures/bad.json +0 -347
  98. package/40-checker/results/fixtures/bundle.json +0 -378
  99. package/40-checker/results/fixtures/good-listing.json +0 -382
  100. package/40-checker/results/fixtures/good-static.json +0 -322
  101. package/40-checker/results/fixtures/good.json +0 -375
  102. package/40-checker/results/fixtures/good.sarif +0 -274
  103. package/40-checker/results/flow/README.md +0 -19
  104. package/40-checker/results/flow/j3-j7-fixture.json +0 -51
  105. package/40-checker/results/flow/j5-j8-client-missing.json +0 -45
  106. package/40-checker/results/flow/j5-j8-good.json +0 -45
  107. package/40-checker/results/flow/journey-fixture-bundle.json +0 -90
  108. package/40-checker/results/flow/journey-fixture-j1-j2-j4-j6.json +0 -107
  109. package/40-checker/results/flow/real/DDDMUC__dsh-free-search.json +0 -297
  110. package/40-checker/results/flow/real/REPORT.md +0 -335
  111. package/40-checker/results/flow/real/YuJunZhiXue__dsh-purge.json +0 -317
  112. package/40-checker/results/flow/real/ci-diet.json +0 -351
  113. package/40-checker/results/flow/real/daily-log.json +0 -286
  114. package/40-checker/results/flow/real/index.json +0 -325
  115. package/40-checker/results/flow/real/project-memory.json +0 -290
  116. package/40-checker/results/flow/real/qiushi.json +0 -277
  117. package/40-checker/results/flow/real/status-rotator.json +0 -275
  118. package/40-checker/results/flow/real/telemetry.json +0 -178
  119. package/40-checker/results/flow/real/ui-auth.json +0 -288
  120. package/40-checker/results/flow/real/verification.json +0 -265
  121. package/40-checker/results/governance/co-maintainer-packet.md +0 -85
  122. package/40-checker/results/l1/ci-diet.json +0 -406
  123. package/40-checker/results/l1/npm-dsh-telemetry-redactor-0.1.0.json +0 -390
  124. package/40-checker/results/l1/npm-dsh-verification-receipt-0.1.0.json +0 -406
  125. package/40-checker/results/l1/npm-qiushi-dsh-evidence-audit-0.1.0.json +0 -394
  126. package/40-checker/results/l1/npm-zzerx-dsh-plugin-daily-log-0.4.3.json +0 -405
  127. package/40-checker/results/l1/project-memory.json +0 -402
  128. package/40-checker/results/l1/source-DDDMUC__dsh-free-search.json +0 -422
  129. package/40-checker/results/l1/source-Ebony-Vinyl__dsh-our-free-model.json +0 -421
  130. package/40-checker/results/l1/source-SeaOf0__dsh-redteam-model.json +0 -432
  131. package/40-checker/results/l1/source-YuJunZhiXue__dsh-purge.json +0 -473
  132. package/40-checker/results/l1/source-howmp__dsh-pentest.json +0 -402
  133. package/40-checker/results/l1/source-kingcharleslzy-ai__dsh-purge.json +0 -452
  134. package/40-checker/results/l1/source-liguobao__ds-harness-remote.json +0 -420
  135. package/40-checker/results/l1/source-mmparko__dsh-purge.json +0 -482
  136. package/40-checker/results/l1/source-shaobeichen__dsh-pocket.json +0 -404
  137. package/40-checker/results/l1/source-ysr666__dsh-vision-router.json +0 -384
  138. package/40-checker/results/l1/status-rotator.json +0 -403
  139. package/40-checker/results/l1/ui-auth.json +0 -429
  140. package/40-checker/results/l1/ysr666__dsh-vision-router.published.json +0 -384
  141. package/40-checker/results/lev3/REPORT.md +0 -342
  142. package/40-checker/results/lev3/lev3.json +0 -4835
  143. package/40-checker/results/lev6/REPORT.md +0 -460
  144. package/40-checker/results/lev6/capture-sample.json +0 -241
  145. package/40-checker/results/lev6/capture.jsonl +0 -4
  146. package/40-checker/results/lev6/lev6.json +0 -245
  147. package/40-checker/results/lev6/replication-r1.json +0 -245
  148. package/40-checker/results/levels/README.md +0 -16
  149. package/40-checker/results/levels/dsh-plugin-doctor.json +0 -141
  150. package/40-checker/results/levels/dsh-plugin-guide.json +0 -136
  151. package/40-checker/results/m1/dsh-ci-diet-0.5.2.json +0 -352
  152. package/40-checker/results/m1/dsh-status-rotator-0.38.0.json +0 -349
  153. package/40-checker/results/m1/dsh-telemetry-redactor-0.1.0.json +0 -336
  154. package/40-checker/results/m1/dsh-ui-auth-0.7.1.json +0 -356
  155. package/40-checker/results/m1/dsh-verification-receipt-0.1.0.json +0 -344
  156. package/40-checker/results/m1/index-level.json +0 -13
  157. package/40-checker/results/m1/levels.json +0 -72100
  158. package/40-checker/results/m1/qiushi-dsh-evidence-audit-0.1.0.json +0 -339
  159. package/40-checker/results/m1/yolk_vat-y-dsh-project-memory-0.6.7.json +0 -348
  160. package/40-checker/results/m1/zzerx-dsh-plugin-daily-log-0.4.3.json +0 -344
  161. package/40-checker/results/m2/dsh-ci-diet.json +0 -421
  162. package/40-checker/results/m2/dsh-ci-diet.unshare-landlock.json +0 -424
  163. package/40-checker/results/m2/dsh-ci-diet.unshare.json +0 -423
  164. package/40-checker/results/m2/fixture-bundle.image.json +0 -404
  165. package/40-checker/results/m2/fixture-bundle.json +0 -392
  166. package/40-checker/results/m2/fixture-bundle.landlock.json +0 -396
  167. package/40-checker/results/m2/fixture-bundle.unshare.json +0 -395
  168. package/40-checker/results/m2/fs-write.json +0 -338
  169. package/40-checker/results/m2/hang.json +0 -31
  170. package/40-checker/results/m2/hang.unshare-landlock.json +0 -34
  171. package/40-checker/results/m2/hang.unshare.json +0 -33
  172. package/40-checker/results/m2/project-memory.json +0 -417
  173. package/40-checker/results/m2/status-rotator.json +0 -418
  174. package/40-checker/results/m2/ui-auth.json +0 -444
  175. package/40-checker/results/negative/bad-entry.json +0 -345
  176. package/40-checker/results/negative/no-entry.json +0 -345
  177. package/40-checker/results/negative/no-patch.json +0 -344
  178. package/40-checker/results/negative/root-missing.json +0 -344
  179. package/40-checker/results/negative/root-missing.runtime.json +0 -30
  180. package/40-checker/results/negative/summary.json +0 -51
  181. package/40-checker/results/negative/workspace.json +0 -344
  182. package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.json +0 -334
  183. package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.overlay.json +0 -335
  184. package/40-checker/results/patched/SeaOf0__dsh-redteam-model.json +0 -315
  185. package/40-checker/results/patched/SeaOf0__dsh-redteam-model.overlay.json +0 -316
  186. package/40-checker/results/patched/mmparko__dsh-purge.json +0 -357
  187. package/40-checker/results/patched/mmparko__dsh-purge.overlay.json +0 -358
  188. package/40-checker/results/patched/shaobeichen__dsh-pocket.json +0 -315
  189. package/40-checker/results/patched/shaobeichen__dsh-pocket.overlay.json +0 -316
  190. package/40-checker/results/real/DDDMUC__dsh-free-search.json +0 -344
  191. package/40-checker/results/real/Ebony-Vinyl__dsh-our-free-model.json +0 -343
  192. package/40-checker/results/real/SeaOf0__dsh-redteam-model.json +0 -354
  193. package/40-checker/results/real/YuJunZhiXue__dsh-purge.json +0 -395
  194. package/40-checker/results/real/howmp__dsh-pentest.json +0 -324
  195. package/40-checker/results/real/kingcharleslzy-ai__dsh-purge.json +0 -374
  196. package/40-checker/results/real/liguobao__ds-harness-remote.json +0 -342
  197. package/40-checker/results/real/mmparko__dsh-purge.json +0 -404
  198. package/40-checker/results/real/shaobeichen__dsh-pocket.json +0 -326
  199. package/40-checker/results/real/ysr666__dsh-vision-router.json +0 -372
  200. package/40-checker/results/real/ysr666__dsh-vision-router.listing.json +0 -378
  201. package/40-checker/results/round-robin/compare.json +0 -52
  202. package/40-checker/results/round-robin/runner-a.json +0 -9
  203. package/40-checker/results/round-robin/runner-b.json +0 -9
  204. package/40-checker/results/sample20/123dbl__dsh-side-session.json +0 -344
  205. package/40-checker/results/sample20/173787247__dsh-wsl-dns.json +0 -360
  206. package/40-checker/results/sample20/863683348__dsh-insight.json +0 -375
  207. package/40-checker/results/sample20/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  208. package/40-checker/results/sample20/Jamailar__beav-deepseek-harness.json +0 -341
  209. package/40-checker/results/sample20/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  210. package/40-checker/results/sample20/NEAZ71eve__dsh-tool-github.json +0 -384
  211. package/40-checker/results/sample20/README.md +0 -3
  212. package/40-checker/results/sample20/RINGOLINK__dsh-desktop-shell.json +0 -352
  213. package/40-checker/results/sample20/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  214. package/40-checker/results/sample20/agent-mobile__dsh-mobile-gateway.json +0 -353
  215. package/40-checker/results/sample20/fangqiing__dsh-knowledge-lite.json +0 -359
  216. package/40-checker/results/sample20/fzy0517__deepseek-harness-session-cleaner.json +0 -344
  217. package/40-checker/results/sample20/gjy1992__dsh-diagram.json +0 -350
  218. package/40-checker/results/sample20/mrme000m__dsh-prime-orchestrator.json +0 -414
  219. package/40-checker/results/sample20/redstonedust__dsh-solidworks-copilot.json +0 -362
  220. package/40-checker/results/sample20/summary.json +0 -234
  221. package/40-checker/results/sample20/w2112515__dsh-remote-host.json +0 -344
  222. package/40-checker/results/sample20/wkfedor__deepseek-harness-voice-input.json +0 -350
  223. package/40-checker/results/sample20/xfgil__dsh-hot-reloader.json +0 -344
  224. package/40-checker/results/sample20/yizhiyizhi0128__dsh-peak-scheduler.json +0 -360
  225. package/40-checker/results/sample20-ci/123dbl__dsh-side-session.json +0 -344
  226. package/40-checker/results/sample20-ci/173787247__dsh-wsl-dns.json +0 -360
  227. package/40-checker/results/sample20-ci/863683348__dsh-insight.json +0 -375
  228. package/40-checker/results/sample20-ci/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  229. package/40-checker/results/sample20-ci/Jamailar__beav-deepseek-harness.json +0 -367
  230. package/40-checker/results/sample20-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  231. package/40-checker/results/sample20-ci/NEAZ71eve__dsh-tool-github.json +0 -392
  232. package/40-checker/results/sample20-ci/README.md +0 -5
  233. package/40-checker/results/sample20-ci/RINGOLINK__dsh-desktop-shell.json +0 -361
  234. package/40-checker/results/sample20-ci/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  235. package/40-checker/results/sample20-ci/agent-mobile__dsh-mobile-gateway.json +0 -384
  236. package/40-checker/results/sample20-ci/fangqiing__dsh-knowledge-lite.json +0 -360
  237. package/40-checker/results/sample20-ci/fzy0517__deepseek-harness-session-cleaner.json +0 -354
  238. package/40-checker/results/sample20-ci/gjy1992__dsh-diagram.json +0 -381
  239. package/40-checker/results/sample20-ci/mrme000m__dsh-prime-orchestrator.json +0 -452
  240. package/40-checker/results/sample20-ci/redstonedust__dsh-solidworks-copilot.json +0 -371
  241. package/40-checker/results/sample20-ci/summary.json +0 -195
  242. package/40-checker/results/sample20-ci/w2112515__dsh-remote-host.json +0 -399
  243. package/40-checker/results/sample20-ci/wkfedor__deepseek-harness-voice-input.json +0 -358
  244. package/40-checker/results/sample20-ci/xfgil__dsh-hot-reloader.json +0 -344
  245. package/40-checker/results/sample20-ci/yizhiyizhi0128__dsh-peak-scheduler.json +0 -370
  246. package/40-checker/results/sample20-ci/zed1902209846-dotcom__DPwhale-plugin.json +0 -231
  247. package/40-checker/results/sample60/123dbl__dsh-side-session.json +0 -344
  248. package/40-checker/results/sample60/173787247__dsh-wsl-dns.json +0 -360
  249. package/40-checker/results/sample60/863683348__dsh-insight.json +0 -375
  250. package/40-checker/results/sample60/Anionex__dsh-turn-rewind.json +0 -349
  251. package/40-checker/results/sample60/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  252. package/40-checker/results/sample60/Ebony-Vinyl__EAC-Pack.json +0 -352
  253. package/40-checker/results/sample60/EricWang1358__dsh-web-studyhub.json +0 -376
  254. package/40-checker/results/sample60/GanyuanRan__Aegis.json +0 -349
  255. package/40-checker/results/sample60/HiSeax__dsh-codely.json +0 -358
  256. package/40-checker/results/sample60/Jamailar__beav-deepseek-harness.json +0 -341
  257. package/40-checker/results/sample60/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  258. package/40-checker/results/sample60/MichengAI__dsh-archive-manager.json +0 -357
  259. package/40-checker/results/sample60/MichengAI__dsh-im-connect.json +0 -347
  260. package/40-checker/results/sample60/MindLab-Research__dsh-generative-ui.json +0 -350
  261. package/40-checker/results/sample60/NEAZ71eve__dsh-tool-github.json +0 -384
  262. package/40-checker/results/sample60/README.md +0 -7
  263. package/40-checker/results/sample60/RINGOLINK__dsh-desktop-shell.json +0 -352
  264. package/40-checker/results/sample60/SeanTolstoyevski__dsh-code-review.json +0 -352
  265. package/40-checker/results/sample60/Tasihi89__dsh-talk-map.json +0 -344
  266. package/40-checker/results/sample60/Tyan66666__billion-context-dsh.json +0 -469
  267. package/40-checker/results/sample60/V1ki__dsh-plugin-subscriptions.json +0 -350
  268. package/40-checker/results/sample60/Yu-tao-Li__dsh-computer-use-win.json +0 -341
  269. package/40-checker/results/sample60/ZSeven-W__dsh-ios.json +0 -344
  270. package/40-checker/results/sample60/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  271. package/40-checker/results/sample60/agent-mobile__dsh-mobile-gateway.json +0 -353
  272. package/40-checker/results/sample60/c3cvld7aag__fujiang-dsh.json +0 -361
  273. package/40-checker/results/sample60/cxzrdxy__dsh-file-explorer.json +0 -389
  274. package/40-checker/results/sample60/dhicoc__dsh-reverse-skill.json +0 -341
  275. package/40-checker/results/sample60/fangqiing__dsh-knowledge-lite.json +0 -359
  276. package/40-checker/results/sample60/fwerkor__local-shell-mcp.json +0 -369
  277. package/40-checker/results/sample60/fzy0517__deepseek-harness-session-cleaner.json +0 -344
  278. package/40-checker/results/sample60/gjy1992__dsh-diagram.json +0 -350
  279. package/40-checker/results/sample60/howmp__dsh-pentest.json +0 -341
  280. package/40-checker/results/sample60/linhay__harmony-next.skills.json +0 -344
  281. package/40-checker/results/sample60/liustack__modsearch.json +0 -371
  282. package/40-checker/results/sample60/mmparko__dsh-purge.json +0 -372
  283. package/40-checker/results/sample60/mrme000m__dsh-prime-orchestrator.json +0 -414
  284. package/40-checker/results/sample60/omdsh-dev__dsh_workflow.json +0 -439
  285. package/40-checker/results/sample60/redstonedust__dsh-solidworks-copilot.json +0 -362
  286. package/40-checker/results/sample60/seriousz158__dsh-memory.json +0 -350
  287. package/40-checker/results/sample60/shanliuling__dsh-image-gen.json +0 -353
  288. package/40-checker/results/sample60/shanliuling__skills-link.json +0 -344
  289. package/40-checker/results/sample60/shengsheng90__DSH-taskboard.json +0 -341
  290. package/40-checker/results/sample60/sjh9714__dsh-win32.json +0 -374
  291. package/40-checker/results/sample60/skymecode__deepseek-harness-for-vscode.json +0 -351
  292. package/40-checker/results/sample60/sopaco__terrain.json +0 -352
  293. package/40-checker/results/sample60/summary.json +0 -658
  294. package/40-checker/results/sample60/tinqiao-oss__engramory.json +0 -352
  295. package/40-checker/results/sample60/tong-io__tongflow.json +0 -359
  296. package/40-checker/results/sample60/vibeinging__dsh-desktop.json +0 -382
  297. package/40-checker/results/sample60/w2112515__dsh-remote-host.json +0 -344
  298. package/40-checker/results/sample60/wkfedor__deepseek-harness-voice-input.json +0 -350
  299. package/40-checker/results/sample60/wz20__dsh-dafeiyu-dot.json +0 -349
  300. package/40-checker/results/sample60/xfgil__dsh-hot-reloader.json +0 -344
  301. package/40-checker/results/sample60/yi-yezhiqiu__dsh-prompt-market.json +0 -360
  302. package/40-checker/results/sample60/yizhiyizhi0128__dsh-peak-scheduler.json +0 -360
  303. package/40-checker/results/sample60/yjh051108__dsh-routing-suite.json +0 -366
  304. package/40-checker/results/sample60-ci/123dbl__dsh-side-session.json +0 -344
  305. package/40-checker/results/sample60-ci/173787247__dsh-wsl-dns.json +0 -360
  306. package/40-checker/results/sample60-ci/863683348__dsh-insight.json +0 -375
  307. package/40-checker/results/sample60-ci/Anionex__dsh-turn-rewind.json +0 -379
  308. package/40-checker/results/sample60-ci/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  309. package/40-checker/results/sample60-ci/Ebony-Vinyl__EAC-Pack.json +0 -362
  310. package/40-checker/results/sample60-ci/EricWang1358__dsh-web-studyhub.json +0 -378
  311. package/40-checker/results/sample60-ci/GanyuanRan__Aegis.json +0 -349
  312. package/40-checker/results/sample60-ci/HiSeax__dsh-codely.json +0 -368
  313. package/40-checker/results/sample60-ci/Jamailar__beav-deepseek-harness.json +0 -367
  314. package/40-checker/results/sample60-ci/LiarMTTT__TavernWeave.json +0 -231
  315. package/40-checker/results/sample60-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  316. package/40-checker/results/sample60-ci/MichengAI__dsh-archive-manager.json +0 -395
  317. package/40-checker/results/sample60-ci/MichengAI__dsh-im-connect.json +0 -404
  318. package/40-checker/results/sample60-ci/MindLab-Research__dsh-generative-ui.json +0 -410
  319. package/40-checker/results/sample60-ci/NEAZ71eve__dsh-tool-github.json +0 -392
  320. package/40-checker/results/sample60-ci/README.md +0 -7
  321. package/40-checker/results/sample60-ci/RINGOLINK__dsh-desktop-shell.json +0 -361
  322. package/40-checker/results/sample60-ci/Ruler4396__dsh-launcher.json +0 -231
  323. package/40-checker/results/sample60-ci/SeanTolstoyevski__dsh-code-review.json +0 -363
  324. package/40-checker/results/sample60-ci/Tasihi89__dsh-talk-map.json +0 -372
  325. package/40-checker/results/sample60-ci/Tyan66666__billion-context-dsh.json +0 -469
  326. package/40-checker/results/sample60-ci/V1ki__dsh-plugin-subscriptions.json +0 -368
  327. package/40-checker/results/sample60-ci/Yu-tao-Li__dsh-computer-use-win.json +0 -349
  328. package/40-checker/results/sample60-ci/ZSeven-W__dsh-ios.json +0 -344
  329. package/40-checker/results/sample60-ci/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  330. package/40-checker/results/sample60-ci/agent-mobile__dsh-mobile-gateway.json +0 -384
  331. package/40-checker/results/sample60-ci/c3cvld7aag__fujiang-dsh.json +0 -361
  332. package/40-checker/results/sample60-ci/cxzrdxy__dsh-file-explorer.json +0 -399
  333. package/40-checker/results/sample60-ci/dhicoc__dsh-reverse-skill.json +0 -352
  334. package/40-checker/results/sample60-ci/fangqiing__dsh-knowledge-lite.json +0 -360
  335. package/40-checker/results/sample60-ci/fwerkor__local-shell-mcp.json +0 -387
  336. package/40-checker/results/sample60-ci/fzy0517__deepseek-harness-session-cleaner.json +0 -354
  337. package/40-checker/results/sample60-ci/gjy1992__dsh-diagram.json +0 -381
  338. package/40-checker/results/sample60-ci/howmp__dsh-pentest.json +0 -361
  339. package/40-checker/results/sample60-ci/linhay__harmony-next.skills.json +0 -344
  340. package/40-checker/results/sample60-ci/liustack__modsearch.json +0 -382
  341. package/40-checker/results/sample60-ci/mmparko__dsh-purge.json +0 -441
  342. package/40-checker/results/sample60-ci/mrme000m__dsh-prime-orchestrator.json +0 -452
  343. package/40-checker/results/sample60-ci/omdsh-dev__dsh_workflow.json +0 -439
  344. package/40-checker/results/sample60-ci/plastic-labs__honcho.json +0 -231
  345. package/40-checker/results/sample60-ci/redstonedust__dsh-solidworks-copilot.json +0 -371
  346. package/40-checker/results/sample60-ci/seriousz158__dsh-memory.json +0 -351
  347. package/40-checker/results/sample60-ci/shanliuling__dsh-image-gen.json +0 -382
  348. package/40-checker/results/sample60-ci/shanliuling__skills-link.json +0 -344
  349. package/40-checker/results/sample60-ci/shengsheng90__DSH-taskboard.json +0 -370
  350. package/40-checker/results/sample60-ci/sjh9714__dsh-win32.json +0 -410
  351. package/40-checker/results/sample60-ci/skymecode__deepseek-harness-for-vscode.json +0 -391
  352. package/40-checker/results/sample60-ci/sopaco__deepwiki-rs.json +0 -231
  353. package/40-checker/results/sample60-ci/sopaco__terrain.json +0 -352
  354. package/40-checker/results/sample60-ci/summary.json +0 -555
  355. package/40-checker/results/sample60-ci/tinqiao-oss__engramory.json +0 -362
  356. package/40-checker/results/sample60-ci/tong-io__tongflow.json +0 -393
  357. package/40-checker/results/sample60-ci/vibeinging__dsh-desktop.json +0 -555
  358. package/40-checker/results/sample60-ci/w2112515__dsh-remote-host.json +0 -399
  359. package/40-checker/results/sample60-ci/wkfedor__deepseek-harness-voice-input.json +0 -358
  360. package/40-checker/results/sample60-ci/wz20__dsh-dafeiyu-dot.json +0 -390
  361. package/40-checker/results/sample60-ci/xfgil__dsh-hot-reloader.json +0 -344
  362. package/40-checker/results/sample60-ci/yi-yezhiqiu__dsh-prompt-market.json +0 -373
  363. package/40-checker/results/sample60-ci/yizhiyizhi0128__dsh-peak-scheduler.json +0 -370
  364. package/40-checker/results/sample60-ci/yjh051108__dsh-routing-suite.json +0 -437
  365. package/40-checker/results/sample60-ci/zed1902209846-dotcom__DPwhale-plugin.json +0 -231
  366. package/40-checker/results/triage/REPORT.md +0 -317
  367. package/40-checker/results/triage/evidence/g2-rejections.txt +0 -63
  368. package/40-checker/results/triage/evidence/purge-baseline-0.2.1-rc.5.json +0 -51
  369. package/40-checker/results/triage/evidence/purge-baseline-0.2.2-alpha.2.json +0 -51
  370. package/40-checker/results/triage/evidence/purge-postinstall.txt +0 -62
  371. package/40-checker/results/triage/evidence/purge-with-profile-0.2.1-rc.5.json +0 -71
  372. package/40-checker/results/triage/evidence/purge-with-profile-0.2.2-alpha.2.json +0 -71
  373. package/40-checker/results/triage/evidence/semver-matrix.json +0 -32
  374. package/40-checker/results/triage/triage.json +0 -295
  375. package/40-checker/results/webapp/README.md +0 -10
  376. package/40-checker/results/webapp/summary.json +0 -46
  377. package/40-checker/results/webapp/web-auth.json +0 -19
  378. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/client-export.json +0 -7
  379. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/installed-package.json +0 -123
  380. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/probe.json +0 -129
  381. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/shot.png +0 -0
  382. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/summary.md +0 -16
  383. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/client-export.json +0 -7
  384. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/installed-package.json +0 -76
  385. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/probe.json +0 -129
  386. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/shot.png +0 -0
  387. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/summary.md +0 -16
  388. package/40-checker/results/webruntime/REPORT.md +0 -253
  389. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/client-export.json +0 -7
  390. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/installed-package.json +0 -97
  391. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/probe.json +0 -129
  392. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/shot.png +0 -0
  393. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/summary.md +0 -16
  394. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/client-export.json +0 -7
  395. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/installed-package.json +0 -98
  396. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/probe.json +0 -136
  397. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/shot.png +0 -0
  398. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/summary.md +0 -16
  399. package/40-checker/results/webruntime/ci-diet/client-export.json +0 -10
  400. package/40-checker/results/webruntime/ci-diet/installed-package.json +0 -100
  401. package/40-checker/results/webruntime/ci-diet/probe.json +0 -129
  402. package/40-checker/results/webruntime/ci-diet/shot.png +0 -0
  403. package/40-checker/results/webruntime/ci-diet/summary.md +0 -16
  404. package/40-checker/results/webruntime/daily-log/client-export.json +0 -10
  405. package/40-checker/results/webruntime/daily-log/installed-package.json +0 -113
  406. package/40-checker/results/webruntime/daily-log/probe.json +0 -129
  407. package/40-checker/results/webruntime/daily-log/shot.png +0 -0
  408. package/40-checker/results/webruntime/daily-log/summary.md +0 -16
  409. package/40-checker/results/webruntime/howmp__dsh-pentest/client-export.json +0 -7
  410. package/40-checker/results/webruntime/howmp__dsh-pentest/installed-package.json +0 -90
  411. package/40-checker/results/webruntime/howmp__dsh-pentest/probe.json +0 -129
  412. package/40-checker/results/webruntime/howmp__dsh-pentest/shot.png +0 -0
  413. package/40-checker/results/webruntime/howmp__dsh-pentest/summary.md +0 -16
  414. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/client-export.json +0 -7
  415. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/installed-package.json +0 -164
  416. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/probe.json +0 -129
  417. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/shot.png +0 -0
  418. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/summary.md +0 -16
  419. package/40-checker/results/webruntime/liguobao__ds-harness-remote/client-export.json +0 -7
  420. package/40-checker/results/webruntime/liguobao__ds-harness-remote/installed-package.json +0 -166
  421. package/40-checker/results/webruntime/liguobao__ds-harness-remote/probe.json +0 -129
  422. package/40-checker/results/webruntime/liguobao__ds-harness-remote/shot.png +0 -0
  423. package/40-checker/results/webruntime/liguobao__ds-harness-remote/summary.md +0 -16
  424. package/40-checker/results/webruntime/local-pre-ci/README.md +0 -67
  425. package/40-checker/results/webruntime/local-pre-ci/client-exports.json +0 -158
  426. package/40-checker/results/webruntime/local-pre-ci/dsh-free-search.probe.json +0 -119
  427. package/40-checker/results/webruntime/local-pre-ci/dsh-pocket.probe.json +0 -119
  428. package/40-checker/results/webruntime/local-pre-ci/dsh-redteam-model.probe.json +0 -119
  429. package/40-checker/results/webruntime/local-pre-ci/qiushi-shell-only.probe.json +0 -104
  430. package/40-checker/results/webruntime/local-pre-ci/ui-auth-no-login.fail.json +0 -52
  431. package/40-checker/results/webruntime/local-pre-ci/ui-auth.probe.json +0 -123
  432. package/40-checker/results/webruntime/mmparko__dsh-purge/client-export.json +0 -7
  433. package/40-checker/results/webruntime/mmparko__dsh-purge/installed-package.json +0 -95
  434. package/40-checker/results/webruntime/mmparko__dsh-purge/probe.json +0 -136
  435. package/40-checker/results/webruntime/mmparko__dsh-purge/shot.png +0 -0
  436. package/40-checker/results/webruntime/mmparko__dsh-purge/summary.md +0 -16
  437. package/40-checker/results/webruntime/project-memory/client-export.json +0 -7
  438. package/40-checker/results/webruntime/project-memory/installed-package.json +0 -118
  439. package/40-checker/results/webruntime/project-memory/probe.json +0 -129
  440. package/40-checker/results/webruntime/project-memory/shot.png +0 -0
  441. package/40-checker/results/webruntime/project-memory/summary.md +0 -16
  442. package/40-checker/results/webruntime/qiushi/client-export.json +0 -7
  443. package/40-checker/results/webruntime/qiushi/installed-package.json +0 -84
  444. package/40-checker/results/webruntime/qiushi/probe.json +0 -114
  445. package/40-checker/results/webruntime/qiushi/shot.png +0 -0
  446. package/40-checker/results/webruntime/qiushi/summary.md +0 -16
  447. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/client-export.json +0 -7
  448. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/installed-package.json +0 -85
  449. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/probe.json +0 -129
  450. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/shot.png +0 -0
  451. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/summary.md +0 -16
  452. package/40-checker/results/webruntime/status-rotator/client-export.json +0 -7
  453. package/40-checker/results/webruntime/status-rotator/installed-package.json +0 -107
  454. package/40-checker/results/webruntime/status-rotator/probe.json +0 -129
  455. package/40-checker/results/webruntime/status-rotator/shot.png +0 -0
  456. package/40-checker/results/webruntime/status-rotator/summary.md +0 -16
  457. package/40-checker/results/webruntime/summary.json +0 -323
  458. package/40-checker/results/webruntime/telemetry/probe.json +0 -20
  459. package/40-checker/results/webruntime/telemetry/summary.md +0 -4
  460. package/40-checker/results/webruntime/ui-auth/client-export.json +0 -7
  461. package/40-checker/results/webruntime/ui-auth/installed-package.json +0 -94
  462. package/40-checker/results/webruntime/ui-auth/probe.json +0 -129
  463. package/40-checker/results/webruntime/ui-auth/shot.png +0 -0
  464. package/40-checker/results/webruntime/ui-auth/summary.md +0 -16
  465. package/40-checker/results/webruntime/verification/probe.json +0 -20
  466. package/40-checker/results/webruntime/verification/summary.md +0 -4
  467. package/40-checker/results/webruntime/ysr666__dsh-vision-router/client-export.json +0 -7
  468. package/40-checker/results/webruntime/ysr666__dsh-vision-router/installed-package.json +0 -142
  469. package/40-checker/results/webruntime/ysr666__dsh-vision-router/probe.json +0 -129
  470. package/40-checker/results/webruntime/ysr666__dsh-vision-router/shot.png +0 -0
  471. package/40-checker/results/webruntime/ysr666__dsh-vision-router/summary.md +0 -16
@@ -1,317 +0,0 @@
1
- # 三项「非 web 阻塞/失败」复核报告
2
-
3
- > **范围**:18 包运行时集中被 92 号文档判为「plugin FAIL / host gate blocked」的 3 个非 web 项。
4
- > **环境**:本机 DSH `0.2.1-rc.5`(`$D`)+标准锚 `0.2.2-alpha.2`(`/tmp/dsh022`,父级 fullbase 使用的同一份安装);Node `v24.22.1`;pnpm `12.15.0`。
5
- > **方法**:直接 import 已安装 `@deepseek-ai/dsh-app-boot/lib/index.js` 的 `loadOverlayPatches` / `composeEntries` / `boot` / `evaluatePluginCompatibility` / `getDshRuntimeVersion`;真实跑 postinstall;真实跑 `dsh plugin add`;未授予任何 version exemption;未改动上游仓库、`92-*`、`81-*`。
6
- > **原始证据**:`evidence/`(baseline 与含 profile 层的 G0–G4 JSON、G2 rejection 原文、semver 矩阵、postinstall 记录)。
7
-
8
- ---
9
-
10
- ## 〇、结论先行
11
-
12
- | 项 | 先前分类 | 核实分类 | 一句话依据 |
13
- |---|---|---|---|
14
- | `YuJunZhiXue/dsh-purge@1.1.85` | **plugin FAIL**(主行未插入) | **fixture-limitation** | 根行由 `postinstall` 写进 profile 的 `cordis.patch.yml`;把它作为组合的最后一层后,`dsh-purge` 根行 **ACTIVE**,G4 `ok=true`。夹具以 `--ignore-scripts` 安装并删除 `scripts`,所以永远看不到这一行 |
15
- | `dsh-telemetry-redactor@0.1.0` | host/gate blocked(G2 reject,文档写成 SKIP) | **host-incompatible** | 精确 reject:`@deepseek-ai/dsh-session-telemetry >=0.1.0-rc.5 <0.2.0` 不满足 0.2.x;gate 行为正确,属上游 peer range 过窄 |
16
- | `dsh-verification-receipt@0.1.0` | host/gate blocked(G2 reject,文档写成 SKIP) | **host-incompatible** | 精确 reject:`@deepseek-ai/dsh-session >=0.1.0-rc.5 <0.1.0`;该 range 只接受 0.1.0 预发布版,连 0.1.0 正式版都不接受,是上游元数据 bug,不是对 0.2.x 的有意硬停 |
17
-
18
- **一句话**:3 项里 **0 个是 plugin-defect**,1 个是夹具没建模安装期写入,2 个是上游 peer 元数据过窄(宿主 gate 拒绝正确)。先前文档的「3 个明确不可运行」应改为 **2 个 host-gate REJECT + 1 个待 web-app 判定**。
19
-
20
- ---
21
-
22
- ## 一、`YuJunZhiXue/dsh-purge@1.1.85`:不是 plugin FAIL
23
-
24
- ### 1.1 先前说法
25
-
26
- `92-兼容运行时实测.md`:
27
-
28
- - §二:`FAIL | PASS | ADMIT | 2/3 | FAIL(plugin;主行未插入)`
29
- - §三-A:「`cordis.patch.yml` 只 `insert` 了 `dsh-purge/redteam`、`/store`、`/ui`,**从未插入 `name: dsh-purge` 根行**……**不是宿主/noise,是 patch 形态缺陷**」
30
- - §四:「G4 14/15 有 client 的包有 root row(YuJun 无)」
31
-
32
- ### 1.2 postinstall 到底做什么、写到哪个文件
33
-
34
- `/tmp/yj-purge`(commit `9716ca3e8711c7bb680668d34cc2e93e184028ad`,v1.1.85):
35
-
36
- - `package.json`:`"postinstall": "node scripts/ensure-profile-bundle.mjs"`
37
- - `scripts/ensure-profile-bundle.mjs`:
38
- - `findProfileDir()` 以 `INIT_CWD` → `npm_config_local_prefix` → `cwd` 为种子向上找 8 层,命中 `name` 以 `dsh-profile-` 开头、或带 `dsh.profile.bundles` 数组的 `package.json`;
39
- - `ensureProfileBundles(profileDir)`:把 `"dsh-purge"` 追加进 **`<profile>/package.json` 的 `dsh.profile.bundles`**;
40
- - `ensureProfileBodyInsert(profileDir)`:把 `INSERT_BLOCK` 写进 **`<profile>/cordis.patch.yml`**(对宿主生成的 `[]` 空 flow 序列有 #191 特判,不会追加成第二个 YAML 文档);
41
- - `ensurePnpmAllowBuild(profileDir)`:在 `<profile>/pnpm-workspace.yaml` 写 `allowBuilds:` 下的 `dsh-purge: true`。
42
- - `cordis.patch.yml` 顶部注释明确写:**本体 insert 写在用户层 `profile/cordis.patch.yml`(postinstall / 演练台自愈补);这里只改已入队条目的 inject/config;再 insert 一次会 already queued(#152/#154/#159)**。
43
-
44
- `INSERT_BLOCK` 的实际内容(真实跑出来的文件):
45
-
46
- ```yaml
47
- - insert:
48
- - id: dsh-purge
49
- name: dsh-purge
50
- inject: [systemPrompt, tools]
51
- config:
52
- enabled: true
53
- stripMnemon: true
54
- capabilityProtocol: true
55
- hooksDenyBypass: true
56
- ```
57
-
58
- ### 1.3 真实 postinstall 路径(两条独立证据)
59
-
60
- **(A) 直接按生命周期调用脚本**(cwd=包目录,`INIT_CWD`=合成 profile):
61
-
62
- ```text
63
- $ cd /tmp/triage-farm/plugins/dsh-purge
64
- $ INIT_CWD=/tmp/triage-profile node scripts/ensure-profile-bundle.mjs
65
- dsh-purge: appended to bundles (/tmp/triage-profile)
66
- dsh-purge: wrote body insert (/tmp/triage-profile/cordis.patch.yml)
67
- dsh-purge: allowed pnpm build for dsh-purge
68
- exit=0
69
- ```
70
-
71
- **(B) 真实 `dsh plugin add`**(隔离 `DSH_HOME`,按 README 的 codeload 地址 + 两个 allow-build 键):
72
-
73
- ```text
74
- $ DSH_HOME=/tmp/triage-dsh-home3 dsh plugin --profile web add \
75
- --allow-build=dsh-purge \
76
- --allow-build='dsh-purge@https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master' \
77
- 'https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master'
78
- ...
79
- node_modules/dsh-purge postinstall$ node scripts/ensure-profile-bundle.mjs
80
- node_modules/dsh-purge postinstall: dsh-purge: appended to bundles (/tmp/triage-dsh-home3/profiles/web)
81
- node_modules/dsh-purge postinstall: dsh-purge: wrote body insert (/tmp/triage-dsh-home3/profiles/web/cordis.patch.yml)
82
- node_modules/dsh-purge postinstall: dsh-purge: allowed pnpm build for dsh-purge
83
- node_modules/dsh-purge postinstall: Done
84
- ...
85
- exit=0
86
- ```
87
-
88
- 安装后 profile:`dsh.profile.bundles = ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-purge"]`;`cordis.patch.yml` 含上面的 insert 块;`node_modules/dsh-purge/package.json` 为 1.1.85。postinstall 生成的内容与 (A) 一致(只多宿主自带的三行文件头注释)。
89
-
90
- ### 1.4 组合 + 真实 boot:根行到底激活不激活
91
-
92
- 用真实 `loadOverlayPatches` + `composeEntries` + `boot`,按宿主真实层序组合:
93
-
94
- ```text
95
- [base patch] → [包 cordis.patch.yml] → [profile cordis.patch.yml(postinstall 写的用户层)]
96
- ```
97
-
98
- **基线(只看包 patch,等于 bundle-smoke 现状)**,0.2.2-alpha.2:
99
-
100
- ```json
101
- "g1": { "rows": 100, "targetRows": 3,
102
- "warnings": [ ..., "patch: entry \"dsh-purge\" not found" ] },
103
- "g3": { "state": "partial", "active": 2,
104
- "rows": [ redteam=2, redteam-store=2, redteam-ui=0 ] },
105
- "g4": { "rootRows": [], "ok": false }
106
- ```
107
-
108
- **加入 postinstall 的 profile 层后**,0.2.2-alpha.2:
109
-
110
- ```json
111
- "g1": { "rows": 101, "targetRows": 4,
112
- "warnings": [ ..., "patch: entry \"dsh-purge\" not found" ] },
113
- "g3": { "state": "partial", "active": 3,
114
- "rows": [
115
- { "id": "include:dsh-purge-redteam", "state": 2 },
116
- { "id": "include:dsh-purge-redteam-store", "state": 2 },
117
- { "id": "include:dsh-purge-redteam-ui", "state": 0 },
118
- { "id": "include:dsh-purge", "state": 2 } // ← 根行 ACTIVE
119
- ] },
120
- "g4": { "rootRows": [ { "id": "dsh-purge", "name": "dsh-purge",
121
- "inject": ["systemPrompt","tools"],
122
- "config": { "enabled": true, "stripMnemon": true,
123
- "capabilityProtocol": true, "hooksDenyBypass": true } } ],
124
- "ok": true }
125
- ```
126
-
127
- 0.2.1-rc.5 上的激活结果相同(`include:dsh-purge state=2`,active 3/4,g4 ok=true;行数因 base 层不同为 100 而非 101)。唯一 pending 的 `dsh-purge-redteam-ui` 在等 `webServer`——这是 base-only 组合的已知缺口,不是插件缺陷(与 king/mmparko 的 redteam-ui 同类)。
128
-
129
- > 备注:包 overlay 里的 `- id: dsh-purge` override 在 postinstall 路径上会被跳过(`patch: entry "dsh-purge" not found`),因为**bundle 层先于用户层应用**。但 overlay 里 16 个 config 值与 `lib/index.js` 的 `DEFAULTS` 完全相同,所以行为无差别;这是作者的一处小不一致(overlay config 在该路径上无效),不是「主行未插入」。
130
-
131
- ### 1.5 夹具为什么必然判错
132
-
133
- 父级当前 fullbase 结果(`40-checker/results/entry/18/fullbase/YuJunZhiXue__dsh-purge.json`,0.2.2-alpha.2)自己记录:
134
-
135
- ```json
136
- "installScripts": "skipped",
137
- "installCommand": "npm install --omit=dev --ignore-scripts --legacy-peer-deps --no-package-lock --no-audit --no-fund",
138
- "manifestRewrite": "removed scripts"
139
- ```
140
-
141
- 即:夹具**以 `--ignore-scripts` 安装,并且从 manifest 里删掉 `scripts`**。postinstall 永远不可能运行,profile 层永远是 `[]`,根行当然不存在。这是夹具的已知安全取舍,不是插件的 patch 缺陷。
142
-
143
- ### 1.6 结论与最小改动
144
-
145
- - **verified classification:`fixture-limitation`**。
146
- - 证据链:postinstall 源码与真实运行 → 真实 `dsh plugin add` 写出 profile 根行 → 含 profile 层的真实 composition/boot 中根行 `state=2`、G4 `ok=true` → fullbase 结果自述 `installScripts: skipped`。
147
- - **最小上游改动:无**(就「从未插入根行」这个断言而言)。需要改的是 **checker 夹具**:在组合里加入安装期生成的 profile `cordis.patch.yml`(或先跑一次 postinstall),否则这类「安装期 profile 写入」的 bundle 都会被误判。
148
- - 插件侧可选打磨(不影响本次结论):把完整 16 项 config 放进 `INSERT_BLOCK`,或删掉在 postinstall 路径上无效的 overlay override。
149
- - **安装前提(需在文档里保留)**:pnpm 12 默认拦 build script;不带 `--allow-build` 的普通 `dsh plugin add` 会以 `ERR_PNPM_IGNORED_BUILDS` 退出且不写根行。README 已给出 allow-build 与手动 `ensure-profile-bundle.mjs` 兜底;这是安装前提,不是补丁形态缺陷。file-tarball 场景下裸包名键与 full spec 键都未放行(两次实测均失败),README 的 codeload 写法可用。
150
-
151
- ---
152
-
153
- ## 二、`dsh-telemetry-redactor@0.1.0`:精确拒绝原因
154
-
155
- ### 2.1 真实 G2 调用
156
-
157
- ```js
158
- import { evaluatePluginCompatibility, getDshRuntimeVersion }
159
- from '<dsh>/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js'
160
- evaluatePluginCompatibility(manifest, {}, getDshRuntimeVersion())
161
- ```
162
-
163
- manifest 来自 `npm pack dsh-telemetry-redactor@0.1.0`(解包于 `/tmp/triage-pkgs/telemetry`)。
164
-
165
- 0.2.2-alpha.2 下的**完整返回对象**(0.2.1-rc.5 只差 `runtimeVersion` 字段):
166
-
167
- ```json
168
- {
169
- "name": "dsh-telemetry-redactor",
170
- "version": "0.1.0",
171
- "runtimeVersion": "0.2.2-alpha.2",
172
- "requirements": {
173
- "@deepseek-ai/dsh-session-telemetry": ">=0.1.0-rc.5 <0.2.0"
174
- },
175
- "exempted": false
176
- }
177
- ```
178
-
179
- 宿主给出的完整诊断原文:
180
-
181
- ```text
182
- Plugin dsh-telemetry-redactor@0.1.0 is incompatible with dsh 0.2.2-alpha.2: requirements {"@deepseek-ai/dsh-session-telemetry":">=0.1.0-rc.5 <0.2.0"}. Running it may cause crashes or data loss. Update the plugin or install a plugin version compatible with this dsh runtime. To accept this risk explicitly, grant the exact-version exemption for dsh-telemetry-redactor@0.1.0 on dsh 0.2.2-alpha.2 with `dsh plugin allow-version` or the plugin manager, then retry the installation or restart dsh. Exact-version exemption: not active.
183
- ```
184
-
185
- ### 2.2 哪个 peer 失败、为什么
186
-
187
- - 失败 peer:**`@deepseek-ai/dsh-session-telemetry`**,range `>=0.1.0-rc.5 <0.2.0`。
188
- - 安装的运行时 peer 版本:本机 0.2.1-rc.5 安装为 `0.2.1-rc.5`,锚 0.2.2-alpha.2 安装为 `0.2.2-alpha.2`;两者都在 range 之外。
189
- - semver(`includePrerelease: true`,宿主就是这么传的):
190
-
191
- | 版本 | 满足 `>=0.1.0-rc.5 <0.2.0` |
192
- |---|---|
193
- | `0.1.0-rc.5` / `0.1.0` | ✅ |
194
- | `0.2.0-rc.1` | ✅(预发布 < `0.2.0`) |
195
- | `0.2.0` / `0.2.1-rc.5` / `0.2.2-alpha.2` | ❌ |
196
-
197
- - 归因:**上游 peer range 的 upper bound 停在 0.1.x**,因此整个 0.2 稳定线都被排除;插件运行时不 import 这个 peer(`lib/index.js` 只 import `@deepseek-ai/schemastery`,通过 `ctx.on('session-telemetry/record', …)` 接入),所以这是**兼容声明过期**,不是模块链接问题。宿主 gate 的拒绝是**正确行为**。
198
- - 判定:**`host-incompatible`**(gate 正确,原因在上游元数据)。
199
-
200
- ### 2.3 最小上游修复
201
-
202
- ```jsonc
203
- "@deepseek-ai/dsh-session-telemetry": ">=0.1.0-rc.5 <0.3.0" // 在 0.2.x 上实测后
204
- // 或仅支持现代运行时:">=0.2.1-rc.5 <0.3.0"
205
- ```
206
-
207
- **不得**授予 exemption;本次也未授予。
208
-
209
- ---
210
-
211
- ## 三、`dsh-verification-receipt@0.1.0`:精确拒绝原因
212
-
213
- ### 3.1 真实返回对象
214
-
215
- manifest 来自 `npm pack dsh-verification-receipt@0.1.0`(`/tmp/triage-pkgs/verification`):
216
-
217
- ```json
218
- {
219
- "name": "dsh-verification-receipt",
220
- "version": "0.1.0",
221
- "runtimeVersion": "0.2.2-alpha.2",
222
- "requirements": {
223
- "@deepseek-ai/dsh-session": ">=0.1.0-rc.5 <0.1.0"
224
- },
225
- "exempted": false
226
- }
227
- ```
228
-
229
- 完整诊断原文:
230
-
231
- ```text
232
- Plugin dsh-verification-receipt@0.1.0 is incompatible with dsh 0.2.2-alpha.2: requirements {"@deepseek-ai/dsh-session":">=0.1.0-rc.5 <0.1.0"}. Running it may cause crashes or data loss. Update the plugin or install a plugin version compatible with this dsh runtime. To accept this risk explicitly, grant the exact-version exemption for dsh-verification-receipt@0.1.0 on dsh 0.2.2-alpha.2 with `dsh plugin allow-version` or the plugin manager, then retry the installation or restart dsh. Exact-version exemption: not active.
233
- ```
234
-
235
- ### 3.2 `<0.1.0` 到底是什么 range
236
-
237
- - semver:`>=0.1.0-rc.5 <0.1.0` **不是空集**,但它只接受 **0.1.0 的预发布版**(`0.1.0-rc.5` … `0.1.0-rc.8`);`0.1.0` 正式版、`0.1.7-rc.2`、`0.2.x` 全部为 false。
238
- - 若不加 `includePrerelease`,该 range 才是空集;宿主固定传 `{ includePrerelease: true }`,所以它恰好放行 0.1.0-rc.*。
239
- - npm 上 `@deepseek-ai/dsh-session` **从未发布过 `0.1.0` 正式版**:版本序列是 `0.1.0-rc.2/3/6/7/8 → 0.1.1-rc.1 …`。包发布于 2026-08-14(0.1.0-rc.6 之后一天),当时这个 range 等价于「当前 0.1.0 预发布线」。
240
- - 但这是一个**永远无法容纳后续版本**的写法:连 `0.1.0` 正式版都不接受,更不用说 0.2.x。0.2.x 在发布时还不存在,因此**不是针对 0.2.x 的有意硬停**,而是 upper bound 写错(应为 `<0.2.0`,更现实是 `<0.3.0`)。
241
- - 另一个细节:`package.json` 的 `peerDependenciesMeta` 把 `@deepseek-ai/dsh-session` 标成 `optional: true`,但宿主 `unmetRequirements` 对**所有** `@deepseek-ai/dsh*` peer 一视同仁(`dsh-app-boot/lib/index.js` 约 291 行),不看 optional,所以 gate 仍然触发。插件运行时不 import `@deepseek-ai/dsh-session`(只用 `sessions` 服务与 `session/event`),peer 是纯声明。
242
- - 判定:**`host-incompatible`**;子归因「上游元数据 bug(over-tight upper bound),不是 intentional hard stop」。gate 拒绝正确。
243
-
244
- ### 3.3 最小上游修复
245
-
246
- ```jsonc
247
- "@deepseek-ai/dsh-session": ">=0.1.0-rc.5 <0.3.0" // 在 0.2.x 上实测后
248
- ```
249
-
250
- 只把 `<0.1.0` 改成 `<0.2.0` 是最小笔误修复,但**仍然拒绝 0.2.1/0.2.2 锚**,不足以让当前标准锚通过。也可在确认无运行时依赖后删掉这个 optional peer(但会失去兼容声明)。**不得**授予 exemption。
251
-
252
- ---
253
-
254
- ## 四、18 包汇总应怎么改
255
-
256
- > 计数中标注 **derived** 的需要全量重跑确认;其余有本次实测或父级 fullbase 分片直接支持。
257
-
258
- | 92 号文档位置 | 现文 | 建议改为 | 依据 |
259
- |---|---|---|---|
260
- | §一 总表 | 明确不可运行 **3/18**(1 plugin FAIL + 2 host/gate) | **2/18**(0 plugin FAIL + 2 host-gate **REJECT**);YuJun 移入「无法判定/partial(等 webServer)」 | 本次实测 |
261
- | §一 总表 | 无法判定(缺 web-app)**4/18** | **5/18**(+YuJun;其 redteam-ui 等 webServer) | 本次实测 |
262
- | §二 明细 YuJun 行 | `FAIL … 2/3 … FAIL(plugin;主行未插入)` | `核心真跑 … root row ACTIVE(含 install-time profile layer);3/4 active,redteam-ui 等 webServer … fixture-limitation` | `include:dsh-purge state=2` |
263
- | §一 总表 | 主行(root row)ACTIVE **11/18** | **12/18**(derived,+YuJun) | YuJun 根行现为 ACTIVE |
264
- | §四 本轮结果 | G4 **14/15** 有 client 的包有 root row(YuJun 无) | **15/15**(YuJun 有;前提是组合含 install-time profile layer) | `g4.rootRows=[dsh-purge]`, `ok=true` |
265
- | §一/§二 gate 列 | 2 个 **SKIP**(telemetry、verification) | 2 个 **REJECT**;SKIP 与宿主 gate 语义不符 | `evaluatePluginCompatibility` 返回 rejection 对象,不是 `undefined` |
266
- | §六 最小验收 | `interop-failed 3`,`interop-unavailable 4`,`interop-runtime (root only) 11/18` | `interop-failed 2`(均 host-gate REJECT),`interop-unavailable 5`(+YuJun),`interop-runtime (root only) 12/18`(derived) | 同上 |
267
- | §三-A 标题与正文 | 「补丁本身(唯一装完也不能跑的补丁类)… patch 形态缺陷」 | 改为「安装期 profile 写入(fixture 未建模)」:bundle patch 只负责 redteam 子行与已入队行 override;根行由 postinstall 写 profile;`--ignore-scripts` 夹具看不到 | fullbase `installScripts: skipped` + profile-aware boot |
268
-
269
- **不需要改的**:`真实 boot 18/18 BOOT_OK`;`G3 base-only 全行 ACTIVE 9/18`(YuJun 由 2/3 变 3/4,仍非全 ACTIVE);`施加 gate 后全 ACTIVE 7/18`(YuJun 仍有一行等 webServer);`interop-runtime 7/18`。
270
-
271
- ---
272
-
273
- ## 五、复现命令
274
-
275
- ```bash
276
- D=/mnt/c/Users/zzhdz/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh
277
- D2=/tmp/dsh022 # 0.2.2-alpha.2 锚
278
-
279
- # 1) 基线:只组合 base + 包 patch(现有 bundle-smoke 语义)
280
- node 40-checker/scripts/bundle-smoke.mjs \
281
- --package /tmp/triage-farm022/plugins/dsh-purge \
282
- --host $D2/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js \
283
- --base $D2/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml \
284
- --bare /tmp/triage-farm022 --json --timeout 200000
285
-
286
- # 2) 加入 postinstall 生成的 profile 层(/tmp/triage 里对 bundle-smoke 的最小副本加了 --profile)
287
- node /tmp/triage/bundle-smoke-profile.mjs \
288
- --package /tmp/triage-farm022/plugins/dsh-purge \
289
- --host $D2/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js \
290
- --base $D2/node_modules/@deepseek-ai/dsh-base/cordis.patch.yml \
291
- --profile /tmp/triage-dsh-home3/profiles/web/cordis.patch.yml \
292
- --bare /tmp/triage-farm022 --json --timeout 200000
293
-
294
- # 3) G2:真实 evaluatePluginCompatibility
295
- node /tmp/triage/g2-eval-022.mjs # 锚 0.2.2-alpha.2
296
- node /tmp/triage/g2-eval.mjs # 本机 0.2.1-rc.5
297
-
298
- # 4) 真实 postinstall / dsh plugin add(隔离 DSH_HOME)
299
- cd /tmp/triage-farm/plugins/dsh-purge
300
- INIT_CWD=/tmp/triage-profile node scripts/ensure-profile-bundle.mjs
301
- DSH_HOME=/tmp/triage-dsh-home3 dsh plugin --profile web add \
302
- --allow-build=dsh-purge \
303
- --allow-build='dsh-purge@https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master' \
304
- 'https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master'
305
- ```
306
-
307
- 说明:`/tmp/triage/bundle-smoke-profile.mjs` 是 `40-checker/scripts/bundle-smoke.mjs` 的**临时副本**,只加了一个 `--profile <patch>` 参数把用户层并入组合;仓库里的 checker 未改动。
308
-
309
- ---
310
-
311
- ## 六、边界与未验证项
312
-
313
- 1. **没有 boot 完整 web profile**(会 bind 端口/起前端)。已证明根行在 base-only 下 ACTIVE;`redteam-ui` 仍 pending on `webServer`,不声称其在完整 web profile 下 ACTIVE。
314
- 2. 真实 `dsh plugin add` 用的是本机 0.2.1-rc.5 CLI + 内置 pnpm 12.15.0(Linux)。Windows/pnpm 11 的 allow-build 键匹配未测;README 同时给了两个键。
315
- 3. `/tmp/dsh022` 是父级提供的 0.2.2-alpha.2 安装,app-boot 与 base patch 按原样使用。
316
- 4. 未修改上游仓库;`/tmp/yj-purge` 只是本地 clone(npm pack 产物已移出该目录)。
317
- 5. 未授予、也未申请任何 version exemption。
@@ -1,63 +0,0 @@
1
- # G2 host-gate evaluation — exact output
2
- # Generated by importing evaluatePluginCompatibility/getDshRuntimeVersion from the installed dsh-app-boot.
3
-
4
- ## Runtime A: local install 0.2.1-rc.5
5
- # host: /mnt/c/Users/zzhdz/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js
6
-
7
- host: /mnt/c/Users/zzhdz/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js
8
- getDshRuntimeVersion(): 0.2.1-rc.5
9
- host package version: 0.2.1-rc.5
10
-
11
- === dsh-telemetry-redactor@0.1.0 ===
12
- {
13
- "name": "dsh-telemetry-redactor",
14
- "version": "0.1.0",
15
- "runtimeVersion": "0.2.1-rc.5",
16
- "requirements": {
17
- "@deepseek-ai/dsh-session-telemetry": ">=0.1.0-rc.5 <0.2.0"
18
- },
19
- "exempted": false
20
- }
21
- pluginCompatibilityWarning():
22
- Plugin dsh-telemetry-redactor@0.1.0 is incompatible with dsh 0.2.1-rc.5: requirements {"@deepseek-ai/dsh-session-telemetry":">=0.1.0-rc.5 <0.2.0"}. Running it may cause crashes or data loss. Update the plugin or install a plugin version compatible with this dsh runtime. To accept this risk explicitly, grant the exact-version exemption for dsh-telemetry-redactor@0.1.0 on dsh 0.2.1-rc.5 with `dsh plugin allow-version` or the plugin manager, then retry the installation or restart dsh. Exact-version exemption: not active.
23
-
24
- === dsh-verification-receipt@0.1.0 ===
25
- {
26
- "name": "dsh-verification-receipt",
27
- "version": "0.1.0",
28
- "runtimeVersion": "0.2.1-rc.5",
29
- "requirements": {
30
- "@deepseek-ai/dsh-session": ">=0.1.0-rc.5 <0.1.0"
31
- },
32
- "exempted": false
33
- }
34
- pluginCompatibilityWarning():
35
- Plugin dsh-verification-receipt@0.1.0 is incompatible with dsh 0.2.1-rc.5: requirements {"@deepseek-ai/dsh-session":">=0.1.0-rc.5 <0.1.0"}. Running it may cause crashes or data loss. Update the plugin or install a plugin version compatible with this dsh runtime. To accept this risk explicitly, grant the exact-version exemption for dsh-verification-receipt@0.1.0 on dsh 0.2.1-rc.5 with `dsh plugin allow-version` or the plugin manager, then retry the installation or restart dsh. Exact-version exemption: not active.
36
-
37
-
38
- ## Runtime B: standards anchor 0.2.2-alpha.2
39
- # host: /tmp/dsh022/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js
40
-
41
- runtime: 0.2.2-alpha.2
42
- === dsh-telemetry-redactor@0.1.0 ===
43
- {
44
- "name": "dsh-telemetry-redactor",
45
- "version": "0.1.0",
46
- "runtimeVersion": "0.2.2-alpha.2",
47
- "requirements": {
48
- "@deepseek-ai/dsh-session-telemetry": ">=0.1.0-rc.5 <0.2.0"
49
- },
50
- "exempted": false
51
- }
52
- Plugin dsh-telemetry-redactor@0.1.0 is incompatible with dsh 0.2.2-alpha.2: requirements {"@deepseek-ai/dsh-session-telemetry":">=0.1.0-rc.5 <0.2.0"}. Running it may cause crashes or data loss. Update the plugin or install a plugin version compatible with this dsh runtime. To accept this risk explicitly, grant the exact-version exemption for dsh-telemetry-redactor@0.1.0 on dsh 0.2.2-alpha.2 with `dsh plugin allow-version` or the plugin manager, then retry the installation or restart dsh. Exact-version exemption: not active.
53
- === dsh-verification-receipt@0.1.0 ===
54
- {
55
- "name": "dsh-verification-receipt",
56
- "version": "0.1.0",
57
- "runtimeVersion": "0.2.2-alpha.2",
58
- "requirements": {
59
- "@deepseek-ai/dsh-session": ">=0.1.0-rc.5 <0.1.0"
60
- },
61
- "exempted": false
62
- }
63
- Plugin dsh-verification-receipt@0.1.0 is incompatible with dsh 0.2.2-alpha.2: requirements {"@deepseek-ai/dsh-session":">=0.1.0-rc.5 <0.1.0"}. Running it may cause crashes or data loss. Update the plugin or install a plugin version compatible with this dsh runtime. To accept this risk explicitly, grant the exact-version exemption for dsh-verification-receipt@0.1.0 on dsh 0.2.2-alpha.2 with `dsh plugin allow-version` or the plugin manager, then retry the installation or restart dsh. Exact-version exemption: not active.
@@ -1,51 +0,0 @@
1
- {
2
- "schema": "dsh-bundle-smoke/1",
3
- "package": "dsh-purge",
4
- "version": "1.1.85",
5
- "g0": {
6
- "patchFiles": 1,
7
- "parsed": true
8
- },
9
- "g1": {
10
- "rows": 99,
11
- "targetRows": 3,
12
- "warnings": [
13
- "patch: entry \"redteam-store\" not found",
14
- "patch: entry \"redteam-ui\" not found",
15
- "patch: entry \"redteam-mode\" not found",
16
- "patch: entry \"redteam-mode-store\" not found",
17
- "patch: entry \"redteam-mode-ui\" not found",
18
- "patch: entry \"dsh-purge\" not found"
19
- ]
20
- },
21
- "g2": {
22
- "compatibility": "admit"
23
- },
24
- "g3": {
25
- "state": "partial",
26
- "rows": [
27
- {
28
- "id": "include:dsh-purge-redteam",
29
- "state": 2,
30
- "disabled": false
31
- },
32
- {
33
- "id": "include:dsh-purge-redteam-store",
34
- "state": 2,
35
- "disabled": false
36
- },
37
- {
38
- "id": "include:dsh-purge-redteam-ui",
39
- "state": 0,
40
- "disabled": false
41
- }
42
- ],
43
- "active": 2
44
- },
45
- "g4": {
46
- "hasClient": true,
47
- "clientExport": true,
48
- "rootRows": [],
49
- "ok": false
50
- }
51
- }
@@ -1,51 +0,0 @@
1
- {
2
- "schema": "dsh-bundle-smoke/1",
3
- "package": "dsh-purge",
4
- "version": "1.1.85",
5
- "g0": {
6
- "patchFiles": 1,
7
- "parsed": true
8
- },
9
- "g1": {
10
- "rows": 100,
11
- "targetRows": 3,
12
- "warnings": [
13
- "patch: entry \"redteam-store\" not found",
14
- "patch: entry \"redteam-ui\" not found",
15
- "patch: entry \"redteam-mode\" not found",
16
- "patch: entry \"redteam-mode-store\" not found",
17
- "patch: entry \"redteam-mode-ui\" not found",
18
- "patch: entry \"dsh-purge\" not found"
19
- ]
20
- },
21
- "g2": {
22
- "compatibility": "admit"
23
- },
24
- "g3": {
25
- "state": "partial",
26
- "rows": [
27
- {
28
- "id": "include:dsh-purge-redteam",
29
- "state": 2,
30
- "disabled": false
31
- },
32
- {
33
- "id": "include:dsh-purge-redteam-store",
34
- "state": 2,
35
- "disabled": false
36
- },
37
- {
38
- "id": "include:dsh-purge-redteam-ui",
39
- "state": 0,
40
- "disabled": false
41
- }
42
- ],
43
- "active": 2
44
- },
45
- "g4": {
46
- "hasClient": true,
47
- "clientExport": true,
48
- "rootRows": [],
49
- "ok": false
50
- }
51
- }
@@ -1,62 +0,0 @@
1
- # dsh-purge 1.1.85 — install-time profile writes (postinstall) evidence
2
- # Source clone: /tmp/yj-purge @ 9716ca3e8711c7bb680668d34cc2e93e184028ad (2026-10-31)
3
- # No tokens appear in any command output below.
4
-
5
- ## A. Direct postinstall run against a synthetic profile
6
- # package.json: {"name":"dsh-profile-web",...,"dsh":{"profile":{"bundles":[]}}}
7
- # cordis.patch.yml before: []
8
- $ cd /tmp/triage-farm/plugins/dsh-purge
9
- $ INIT_CWD=/tmp/triage-profile node scripts/ensure-profile-bundle.mjs
10
- dsh-purge: appended to bundles (/tmp/triage-profile)
11
- dsh-purge: wrote body insert (/tmp/triage-profile/cordis.patch.yml)
12
- dsh-purge: allowed pnpm build for dsh-purge
13
- exit=0
14
-
15
- # /tmp/triage-profile/cordis.patch.yml after:
16
- - insert:
17
- - id: dsh-purge
18
- name: dsh-purge
19
- inject: [systemPrompt, tools]
20
- config:
21
- enabled: true
22
- stripMnemon: true
23
- capabilityProtocol: true
24
- hooksDenyBypass: true
25
-
26
- # /tmp/triage-profile/package.json after:
27
- # "dsh": { "profile": { "bundles": ["dsh-purge"] } }
28
-
29
- # /tmp/triage-profile/pnpm-workspace.yaml after:
30
- allowBuilds:
31
- dsh-purge: true
32
-
33
- ## B. Real `dsh plugin add` (documented codeload command + documented allow-build flags)
34
- $ DSH_HOME=/tmp/triage-dsh-home3 dsh plugin --profile web add \
35
- --allow-build=dsh-purge \
36
- --allow-build='dsh-purge@https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master' \
37
- 'https://codeload.github.com/YuJunZhiXue/dsh-purge/tar.gz/refs/heads/master'
38
- ...
39
- node_modules/dsh-purge postinstall$ node scripts/ensure-profile-bundle.mjs
40
- node_modules/dsh-purge postinstall: dsh-purge: appended to bundles (/tmp/triage-dsh-home3/profiles/web)
41
- node_modules/dsh-purge postinstall: dsh-purge: wrote body insert (/tmp/triage-dsh-home3/profiles/web/cordis.patch.yml)
42
- node_modules/dsh-purge postinstall: dsh-purge: allowed pnpm build for dsh-purge
43
- node_modules/dsh-purge postinstall: Done
44
- ...
45
- exit=0
46
-
47
- # Installed profile state:
48
- # dsh.profile.bundles = ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-purge"]
49
- # cordis.patch.yml = host header comments + the same `- insert: id: dsh-purge` block
50
- # node_modules/dsh-purge/package.json = dsh-purge 1.1.85
51
-
52
- ## C. Negative control: plain add without allow-build
53
- $ DSH_HOME=/tmp/triage-dsh-home dsh plugin --profile web add /tmp/yj-purge/dsh-purge-1.1.85.tgz
54
- Error: ERR_PNPM_IGNORED_BUILDS
55
- x adding a new package
56
- `- Ignored build scripts: dsh-purge@file:../../../yj-purge/dsh-purge-1.1.85.tgz
57
- exit=1
58
- # Profile after: bundles unchanged, cordis.patch.yml still `[]` -> no root insert.
59
-
60
- # Also failed: file-tarball + --allow-build=dsh-purge (pnpm's key for a file
61
- # tarball is the full spec, not the bare name). The documented codeload URL
62
- # plus both documented allow-build keys is the invocation that works (B).
@@ -1,71 +0,0 @@
1
- {
2
- "schema": "dsh-bundle-smoke/1",
3
- "package": "dsh-purge",
4
- "version": "1.1.85",
5
- "g0": {
6
- "patchFiles": 1,
7
- "parsed": true
8
- },
9
- "g1": {
10
- "rows": 100,
11
- "targetRows": 4,
12
- "warnings": [
13
- "patch: entry \"redteam-store\" not found",
14
- "patch: entry \"redteam-ui\" not found",
15
- "patch: entry \"redteam-mode\" not found",
16
- "patch: entry \"redteam-mode-store\" not found",
17
- "patch: entry \"redteam-mode-ui\" not found",
18
- "patch: entry \"dsh-purge\" not found"
19
- ]
20
- },
21
- "g2": {
22
- "compatibility": "admit"
23
- },
24
- "g3": {
25
- "state": "partial",
26
- "rows": [
27
- {
28
- "id": "include:dsh-purge-redteam",
29
- "state": 2,
30
- "disabled": false
31
- },
32
- {
33
- "id": "include:dsh-purge-redteam-store",
34
- "state": 2,
35
- "disabled": false
36
- },
37
- {
38
- "id": "include:dsh-purge-redteam-ui",
39
- "state": 0,
40
- "disabled": false
41
- },
42
- {
43
- "id": "include:dsh-purge",
44
- "state": 2,
45
- "disabled": false
46
- }
47
- ],
48
- "active": 3
49
- },
50
- "g4": {
51
- "hasClient": true,
52
- "clientExport": true,
53
- "rootRows": [
54
- {
55
- "id": "dsh-purge",
56
- "name": "dsh-purge",
57
- "inject": [
58
- "systemPrompt",
59
- "tools"
60
- ],
61
- "config": {
62
- "enabled": true,
63
- "stripMnemon": true,
64
- "capabilityProtocol": true,
65
- "hooksDenyBypass": true
66
- }
67
- }
68
- ],
69
- "ok": true
70
- }
71
- }