dsh-standards 1.0.0 → 1.0.1

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 (469) hide show
  1. package/40-checker/README.md +2 -2
  2. package/40-checker/src/cli.mjs +1 -1
  3. package/40-checker/src/manifest.mjs +17 -0
  4. package/40-checker/src/semver.mjs +77 -11
  5. package/CHANGELOG.md +24 -0
  6. package/NOTICE +14 -0
  7. package/README.md +6 -6
  8. package/bin/dsh-standards.mjs +1 -0
  9. package/package.json +14 -5
  10. package/40-checker/.github/workflows/plugin-verify.yml +0 -70
  11. package/40-checker/results/boost/REPORT.md +0 -304
  12. package/40-checker/results/boost/lev12458.json +0 -1747
  13. package/40-checker/results/client/README.md +0 -16
  14. package/40-checker/results/entry/18/DDDMUC__dsh-free-search.json +0 -381
  15. package/40-checker/results/entry/18/DDDMUC__dsh-free-search.runtime.json +0 -34
  16. package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.json +0 -361
  17. package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.runtime.json +0 -34
  18. package/40-checker/results/entry/18/README.md +0 -24
  19. package/40-checker/results/entry/18/RUNTIME.md +0 -18
  20. package/40-checker/results/entry/18/SeaOf0__dsh-redteam-model.json +0 -391
  21. package/40-checker/results/entry/18/YuJunZhiXue__dsh-purge.json +0 -432
  22. package/40-checker/results/entry/18/ci-diet.json +0 -365
  23. package/40-checker/results/entry/18/ci-diet.runtime-attempt.json +0 -38
  24. package/40-checker/results/entry/18/daily-log.json +0 -357
  25. package/40-checker/results/entry/18/daily-log.runtime.json +0 -519
  26. package/40-checker/results/entry/18/fullbase/ATTRIBUTION.md +0 -29
  27. package/40-checker/results/entry/18/fullbase/DDDMUC__dsh-free-search.json +0 -99
  28. package/40-checker/results/entry/18/fullbase/Ebony-Vinyl__dsh-our-free-model.json +0 -95
  29. package/40-checker/results/entry/18/fullbase/REPORT.md +0 -261
  30. package/40-checker/results/entry/18/fullbase/SeaOf0__dsh-redteam-model.json +0 -144
  31. package/40-checker/results/entry/18/fullbase/YuJunZhiXue__dsh-purge.json +0 -106
  32. package/40-checker/results/entry/18/fullbase/ci-diet.json +0 -99
  33. package/40-checker/results/entry/18/fullbase/daily-log.json +0 -94
  34. package/40-checker/results/entry/18/fullbase/howmp__dsh-pentest.json +0 -104
  35. package/40-checker/results/entry/18/fullbase/kingcharleslzy-ai__dsh-purge.json +0 -143
  36. package/40-checker/results/entry/18/fullbase/liguobao__ds-harness-remote.json +0 -134
  37. package/40-checker/results/entry/18/fullbase/mmparko__dsh-purge.json +0 -138
  38. package/40-checker/results/entry/18/fullbase/project-memory.json +0 -108
  39. package/40-checker/results/entry/18/fullbase/qiushi.json +0 -94
  40. package/40-checker/results/entry/18/fullbase/shaobeichen__dsh-pocket.json +0 -94
  41. package/40-checker/results/entry/18/fullbase/status-rotator.json +0 -94
  42. package/40-checker/results/entry/18/fullbase/summary.json +0 -297
  43. package/40-checker/results/entry/18/fullbase/telemetry.json +0 -94
  44. package/40-checker/results/entry/18/fullbase/ui-auth.json +0 -94
  45. package/40-checker/results/entry/18/fullbase/verification.json +0 -94
  46. package/40-checker/results/entry/18/fullbase/ysr666__dsh-vision-router.json +0 -106
  47. package/40-checker/results/entry/18/howmp__dsh-pentest.json +0 -361
  48. package/40-checker/results/entry/18/kingcharleslzy-ai__dsh-purge.json +0 -411
  49. package/40-checker/results/entry/18/liguobao__ds-harness-remote.json +0 -379
  50. package/40-checker/results/entry/18/mmparko__dsh-purge.json +0 -441
  51. package/40-checker/results/entry/18/project-memory.json +0 -361
  52. package/40-checker/results/entry/18/project-memory.runtime.json +0 -519
  53. package/40-checker/results/entry/18/qiushi.json +0 -353
  54. package/40-checker/results/entry/18/qiushi.runtime.json +0 -519
  55. package/40-checker/results/entry/18/realweb/REPORT.md +0 -73
  56. package/40-checker/results/entry/18/realweb/SeaOf0__dsh-redteam-model.json +0 -104
  57. package/40-checker/results/entry/18/realweb/YuJunZhiXue__dsh-purge.json +0 -64
  58. package/40-checker/results/entry/18/realweb/howmp__dsh-pentest.json +0 -65
  59. package/40-checker/results/entry/18/realweb/kingcharleslzy-ai__dsh-purge.json +0 -75
  60. package/40-checker/results/entry/18/realweb/mmparko__dsh-purge.json +0 -70
  61. package/40-checker/results/entry/18/realweb/shaobeichen__dsh-pocket.json +0 -56
  62. package/40-checker/results/entry/18/realweb/summary.json +0 -196
  63. package/40-checker/results/entry/18/realweb/ui-auth.json +0 -56
  64. package/40-checker/results/entry/18/realweb/ysr666__dsh-vision-router.json +0 -61
  65. package/40-checker/results/entry/18/richbase/REPORT.md +0 -70
  66. package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.json +0 -61
  67. package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.log +0 -38
  68. package/40-checker/results/entry/18/shaobeichen__dsh-pocket.json +0 -363
  69. package/40-checker/results/entry/18/status-rotator.json +0 -362
  70. package/40-checker/results/entry/18/status-rotator.runtime.json +0 -519
  71. package/40-checker/results/entry/18/summary.json +0 -266
  72. package/40-checker/results/entry/18/targetonly/DDDMUC__dsh-free-search.json +0 -34
  73. package/40-checker/results/entry/18/targetonly/Ebony-Vinyl__dsh-our-free-model.json +0 -34
  74. package/40-checker/results/entry/18/targetonly/SeaOf0__dsh-redteam-model.json +0 -84
  75. package/40-checker/results/entry/18/targetonly/YuJunZhiXue__dsh-purge.json +0 -52
  76. package/40-checker/results/entry/18/targetonly/ci-diet.json +0 -34
  77. package/40-checker/results/entry/18/targetonly/daily-log.json +0 -34
  78. package/40-checker/results/entry/18/targetonly/howmp__dsh-pentest.json +0 -46
  79. package/40-checker/results/entry/18/targetonly/kingcharleslzy-ai__dsh-purge.json +0 -61
  80. package/40-checker/results/entry/18/targetonly/liguobao__ds-harness-remote.json +0 -39
  81. package/40-checker/results/entry/18/targetonly/mmparko__dsh-purge.json +0 -57
  82. package/40-checker/results/entry/18/targetonly/project-memory.json +0 -34
  83. package/40-checker/results/entry/18/targetonly/qiushi.json +0 -34
  84. package/40-checker/results/entry/18/targetonly/shaobeichen__dsh-pocket.json +0 -34
  85. package/40-checker/results/entry/18/targetonly/status-rotator.json +0 -34
  86. package/40-checker/results/entry/18/targetonly/summary.json +0 -133
  87. package/40-checker/results/entry/18/targetonly/telemetry.json +0 -34
  88. package/40-checker/results/entry/18/targetonly/ui-auth.json +0 -34
  89. package/40-checker/results/entry/18/targetonly/verification.json +0 -34
  90. package/40-checker/results/entry/18/targetonly/ysr666__dsh-vision-router.json +0 -43
  91. package/40-checker/results/entry/18/telemetry.json +0 -349
  92. package/40-checker/results/entry/18/ui-auth.json +0 -369
  93. package/40-checker/results/entry/18/verification.json +0 -358
  94. package/40-checker/results/entry/18/ysr666__dsh-vision-router.json +0 -409
  95. package/40-checker/results/fixtures/bad.json +0 -347
  96. package/40-checker/results/fixtures/bundle.json +0 -378
  97. package/40-checker/results/fixtures/good-listing.json +0 -382
  98. package/40-checker/results/fixtures/good-static.json +0 -322
  99. package/40-checker/results/fixtures/good.json +0 -375
  100. package/40-checker/results/fixtures/good.sarif +0 -274
  101. package/40-checker/results/flow/README.md +0 -19
  102. package/40-checker/results/flow/j3-j7-fixture.json +0 -51
  103. package/40-checker/results/flow/j5-j8-client-missing.json +0 -45
  104. package/40-checker/results/flow/j5-j8-good.json +0 -45
  105. package/40-checker/results/flow/journey-fixture-bundle.json +0 -90
  106. package/40-checker/results/flow/journey-fixture-j1-j2-j4-j6.json +0 -107
  107. package/40-checker/results/flow/real/DDDMUC__dsh-free-search.json +0 -297
  108. package/40-checker/results/flow/real/REPORT.md +0 -335
  109. package/40-checker/results/flow/real/YuJunZhiXue__dsh-purge.json +0 -317
  110. package/40-checker/results/flow/real/ci-diet.json +0 -351
  111. package/40-checker/results/flow/real/daily-log.json +0 -286
  112. package/40-checker/results/flow/real/index.json +0 -325
  113. package/40-checker/results/flow/real/project-memory.json +0 -290
  114. package/40-checker/results/flow/real/qiushi.json +0 -277
  115. package/40-checker/results/flow/real/status-rotator.json +0 -275
  116. package/40-checker/results/flow/real/telemetry.json +0 -178
  117. package/40-checker/results/flow/real/ui-auth.json +0 -288
  118. package/40-checker/results/flow/real/verification.json +0 -265
  119. package/40-checker/results/governance/co-maintainer-packet.md +0 -85
  120. package/40-checker/results/l1/ci-diet.json +0 -406
  121. package/40-checker/results/l1/npm-dsh-telemetry-redactor-0.1.0.json +0 -390
  122. package/40-checker/results/l1/npm-dsh-verification-receipt-0.1.0.json +0 -406
  123. package/40-checker/results/l1/npm-qiushi-dsh-evidence-audit-0.1.0.json +0 -394
  124. package/40-checker/results/l1/npm-zzerx-dsh-plugin-daily-log-0.4.3.json +0 -405
  125. package/40-checker/results/l1/project-memory.json +0 -402
  126. package/40-checker/results/l1/source-DDDMUC__dsh-free-search.json +0 -422
  127. package/40-checker/results/l1/source-Ebony-Vinyl__dsh-our-free-model.json +0 -421
  128. package/40-checker/results/l1/source-SeaOf0__dsh-redteam-model.json +0 -432
  129. package/40-checker/results/l1/source-YuJunZhiXue__dsh-purge.json +0 -473
  130. package/40-checker/results/l1/source-howmp__dsh-pentest.json +0 -402
  131. package/40-checker/results/l1/source-kingcharleslzy-ai__dsh-purge.json +0 -452
  132. package/40-checker/results/l1/source-liguobao__ds-harness-remote.json +0 -420
  133. package/40-checker/results/l1/source-mmparko__dsh-purge.json +0 -482
  134. package/40-checker/results/l1/source-shaobeichen__dsh-pocket.json +0 -404
  135. package/40-checker/results/l1/source-ysr666__dsh-vision-router.json +0 -384
  136. package/40-checker/results/l1/status-rotator.json +0 -403
  137. package/40-checker/results/l1/ui-auth.json +0 -429
  138. package/40-checker/results/l1/ysr666__dsh-vision-router.published.json +0 -384
  139. package/40-checker/results/lev3/REPORT.md +0 -342
  140. package/40-checker/results/lev3/lev3.json +0 -4835
  141. package/40-checker/results/lev6/REPORT.md +0 -460
  142. package/40-checker/results/lev6/capture-sample.json +0 -241
  143. package/40-checker/results/lev6/capture.jsonl +0 -4
  144. package/40-checker/results/lev6/lev6.json +0 -245
  145. package/40-checker/results/lev6/replication-r1.json +0 -245
  146. package/40-checker/results/levels/README.md +0 -16
  147. package/40-checker/results/levels/dsh-plugin-doctor.json +0 -141
  148. package/40-checker/results/levels/dsh-plugin-guide.json +0 -136
  149. package/40-checker/results/m1/dsh-ci-diet-0.5.2.json +0 -352
  150. package/40-checker/results/m1/dsh-status-rotator-0.38.0.json +0 -349
  151. package/40-checker/results/m1/dsh-telemetry-redactor-0.1.0.json +0 -336
  152. package/40-checker/results/m1/dsh-ui-auth-0.7.1.json +0 -356
  153. package/40-checker/results/m1/dsh-verification-receipt-0.1.0.json +0 -344
  154. package/40-checker/results/m1/index-level.json +0 -13
  155. package/40-checker/results/m1/levels.json +0 -72100
  156. package/40-checker/results/m1/qiushi-dsh-evidence-audit-0.1.0.json +0 -339
  157. package/40-checker/results/m1/yolk_vat-y-dsh-project-memory-0.6.7.json +0 -348
  158. package/40-checker/results/m1/zzerx-dsh-plugin-daily-log-0.4.3.json +0 -344
  159. package/40-checker/results/m2/dsh-ci-diet.json +0 -421
  160. package/40-checker/results/m2/dsh-ci-diet.unshare-landlock.json +0 -424
  161. package/40-checker/results/m2/dsh-ci-diet.unshare.json +0 -423
  162. package/40-checker/results/m2/fixture-bundle.image.json +0 -404
  163. package/40-checker/results/m2/fixture-bundle.json +0 -392
  164. package/40-checker/results/m2/fixture-bundle.landlock.json +0 -396
  165. package/40-checker/results/m2/fixture-bundle.unshare.json +0 -395
  166. package/40-checker/results/m2/fs-write.json +0 -338
  167. package/40-checker/results/m2/hang.json +0 -31
  168. package/40-checker/results/m2/hang.unshare-landlock.json +0 -34
  169. package/40-checker/results/m2/hang.unshare.json +0 -33
  170. package/40-checker/results/m2/project-memory.json +0 -417
  171. package/40-checker/results/m2/status-rotator.json +0 -418
  172. package/40-checker/results/m2/ui-auth.json +0 -444
  173. package/40-checker/results/negative/bad-entry.json +0 -345
  174. package/40-checker/results/negative/no-entry.json +0 -345
  175. package/40-checker/results/negative/no-patch.json +0 -344
  176. package/40-checker/results/negative/root-missing.json +0 -344
  177. package/40-checker/results/negative/root-missing.runtime.json +0 -30
  178. package/40-checker/results/negative/summary.json +0 -51
  179. package/40-checker/results/negative/workspace.json +0 -344
  180. package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.json +0 -334
  181. package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.overlay.json +0 -335
  182. package/40-checker/results/patched/SeaOf0__dsh-redteam-model.json +0 -315
  183. package/40-checker/results/patched/SeaOf0__dsh-redteam-model.overlay.json +0 -316
  184. package/40-checker/results/patched/mmparko__dsh-purge.json +0 -357
  185. package/40-checker/results/patched/mmparko__dsh-purge.overlay.json +0 -358
  186. package/40-checker/results/patched/shaobeichen__dsh-pocket.json +0 -315
  187. package/40-checker/results/patched/shaobeichen__dsh-pocket.overlay.json +0 -316
  188. package/40-checker/results/real/DDDMUC__dsh-free-search.json +0 -344
  189. package/40-checker/results/real/Ebony-Vinyl__dsh-our-free-model.json +0 -343
  190. package/40-checker/results/real/SeaOf0__dsh-redteam-model.json +0 -354
  191. package/40-checker/results/real/YuJunZhiXue__dsh-purge.json +0 -395
  192. package/40-checker/results/real/howmp__dsh-pentest.json +0 -324
  193. package/40-checker/results/real/kingcharleslzy-ai__dsh-purge.json +0 -374
  194. package/40-checker/results/real/liguobao__ds-harness-remote.json +0 -342
  195. package/40-checker/results/real/mmparko__dsh-purge.json +0 -404
  196. package/40-checker/results/real/shaobeichen__dsh-pocket.json +0 -326
  197. package/40-checker/results/real/ysr666__dsh-vision-router.json +0 -372
  198. package/40-checker/results/real/ysr666__dsh-vision-router.listing.json +0 -378
  199. package/40-checker/results/round-robin/compare.json +0 -52
  200. package/40-checker/results/round-robin/runner-a.json +0 -9
  201. package/40-checker/results/round-robin/runner-b.json +0 -9
  202. package/40-checker/results/sample20/123dbl__dsh-side-session.json +0 -344
  203. package/40-checker/results/sample20/173787247__dsh-wsl-dns.json +0 -360
  204. package/40-checker/results/sample20/863683348__dsh-insight.json +0 -375
  205. package/40-checker/results/sample20/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  206. package/40-checker/results/sample20/Jamailar__beav-deepseek-harness.json +0 -341
  207. package/40-checker/results/sample20/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  208. package/40-checker/results/sample20/NEAZ71eve__dsh-tool-github.json +0 -384
  209. package/40-checker/results/sample20/README.md +0 -3
  210. package/40-checker/results/sample20/RINGOLINK__dsh-desktop-shell.json +0 -352
  211. package/40-checker/results/sample20/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  212. package/40-checker/results/sample20/agent-mobile__dsh-mobile-gateway.json +0 -353
  213. package/40-checker/results/sample20/fangqiing__dsh-knowledge-lite.json +0 -359
  214. package/40-checker/results/sample20/fzy0517__deepseek-harness-session-cleaner.json +0 -344
  215. package/40-checker/results/sample20/gjy1992__dsh-diagram.json +0 -350
  216. package/40-checker/results/sample20/mrme000m__dsh-prime-orchestrator.json +0 -414
  217. package/40-checker/results/sample20/redstonedust__dsh-solidworks-copilot.json +0 -362
  218. package/40-checker/results/sample20/summary.json +0 -234
  219. package/40-checker/results/sample20/w2112515__dsh-remote-host.json +0 -344
  220. package/40-checker/results/sample20/wkfedor__deepseek-harness-voice-input.json +0 -350
  221. package/40-checker/results/sample20/xfgil__dsh-hot-reloader.json +0 -344
  222. package/40-checker/results/sample20/yizhiyizhi0128__dsh-peak-scheduler.json +0 -360
  223. package/40-checker/results/sample20-ci/123dbl__dsh-side-session.json +0 -344
  224. package/40-checker/results/sample20-ci/173787247__dsh-wsl-dns.json +0 -360
  225. package/40-checker/results/sample20-ci/863683348__dsh-insight.json +0 -375
  226. package/40-checker/results/sample20-ci/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  227. package/40-checker/results/sample20-ci/Jamailar__beav-deepseek-harness.json +0 -367
  228. package/40-checker/results/sample20-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  229. package/40-checker/results/sample20-ci/NEAZ71eve__dsh-tool-github.json +0 -392
  230. package/40-checker/results/sample20-ci/README.md +0 -5
  231. package/40-checker/results/sample20-ci/RINGOLINK__dsh-desktop-shell.json +0 -361
  232. package/40-checker/results/sample20-ci/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  233. package/40-checker/results/sample20-ci/agent-mobile__dsh-mobile-gateway.json +0 -384
  234. package/40-checker/results/sample20-ci/fangqiing__dsh-knowledge-lite.json +0 -360
  235. package/40-checker/results/sample20-ci/fzy0517__deepseek-harness-session-cleaner.json +0 -354
  236. package/40-checker/results/sample20-ci/gjy1992__dsh-diagram.json +0 -381
  237. package/40-checker/results/sample20-ci/mrme000m__dsh-prime-orchestrator.json +0 -452
  238. package/40-checker/results/sample20-ci/redstonedust__dsh-solidworks-copilot.json +0 -371
  239. package/40-checker/results/sample20-ci/summary.json +0 -195
  240. package/40-checker/results/sample20-ci/w2112515__dsh-remote-host.json +0 -399
  241. package/40-checker/results/sample20-ci/wkfedor__deepseek-harness-voice-input.json +0 -358
  242. package/40-checker/results/sample20-ci/xfgil__dsh-hot-reloader.json +0 -344
  243. package/40-checker/results/sample20-ci/yizhiyizhi0128__dsh-peak-scheduler.json +0 -370
  244. package/40-checker/results/sample20-ci/zed1902209846-dotcom__DPwhale-plugin.json +0 -231
  245. package/40-checker/results/sample60/123dbl__dsh-side-session.json +0 -344
  246. package/40-checker/results/sample60/173787247__dsh-wsl-dns.json +0 -360
  247. package/40-checker/results/sample60/863683348__dsh-insight.json +0 -375
  248. package/40-checker/results/sample60/Anionex__dsh-turn-rewind.json +0 -349
  249. package/40-checker/results/sample60/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  250. package/40-checker/results/sample60/Ebony-Vinyl__EAC-Pack.json +0 -352
  251. package/40-checker/results/sample60/EricWang1358__dsh-web-studyhub.json +0 -376
  252. package/40-checker/results/sample60/GanyuanRan__Aegis.json +0 -349
  253. package/40-checker/results/sample60/HiSeax__dsh-codely.json +0 -358
  254. package/40-checker/results/sample60/Jamailar__beav-deepseek-harness.json +0 -341
  255. package/40-checker/results/sample60/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  256. package/40-checker/results/sample60/MichengAI__dsh-archive-manager.json +0 -357
  257. package/40-checker/results/sample60/MichengAI__dsh-im-connect.json +0 -347
  258. package/40-checker/results/sample60/MindLab-Research__dsh-generative-ui.json +0 -350
  259. package/40-checker/results/sample60/NEAZ71eve__dsh-tool-github.json +0 -384
  260. package/40-checker/results/sample60/README.md +0 -7
  261. package/40-checker/results/sample60/RINGOLINK__dsh-desktop-shell.json +0 -352
  262. package/40-checker/results/sample60/SeanTolstoyevski__dsh-code-review.json +0 -352
  263. package/40-checker/results/sample60/Tasihi89__dsh-talk-map.json +0 -344
  264. package/40-checker/results/sample60/Tyan66666__billion-context-dsh.json +0 -469
  265. package/40-checker/results/sample60/V1ki__dsh-plugin-subscriptions.json +0 -350
  266. package/40-checker/results/sample60/Yu-tao-Li__dsh-computer-use-win.json +0 -341
  267. package/40-checker/results/sample60/ZSeven-W__dsh-ios.json +0 -344
  268. package/40-checker/results/sample60/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  269. package/40-checker/results/sample60/agent-mobile__dsh-mobile-gateway.json +0 -353
  270. package/40-checker/results/sample60/c3cvld7aag__fujiang-dsh.json +0 -361
  271. package/40-checker/results/sample60/cxzrdxy__dsh-file-explorer.json +0 -389
  272. package/40-checker/results/sample60/dhicoc__dsh-reverse-skill.json +0 -341
  273. package/40-checker/results/sample60/fangqiing__dsh-knowledge-lite.json +0 -359
  274. package/40-checker/results/sample60/fwerkor__local-shell-mcp.json +0 -369
  275. package/40-checker/results/sample60/fzy0517__deepseek-harness-session-cleaner.json +0 -344
  276. package/40-checker/results/sample60/gjy1992__dsh-diagram.json +0 -350
  277. package/40-checker/results/sample60/howmp__dsh-pentest.json +0 -341
  278. package/40-checker/results/sample60/linhay__harmony-next.skills.json +0 -344
  279. package/40-checker/results/sample60/liustack__modsearch.json +0 -371
  280. package/40-checker/results/sample60/mmparko__dsh-purge.json +0 -372
  281. package/40-checker/results/sample60/mrme000m__dsh-prime-orchestrator.json +0 -414
  282. package/40-checker/results/sample60/omdsh-dev__dsh_workflow.json +0 -439
  283. package/40-checker/results/sample60/redstonedust__dsh-solidworks-copilot.json +0 -362
  284. package/40-checker/results/sample60/seriousz158__dsh-memory.json +0 -350
  285. package/40-checker/results/sample60/shanliuling__dsh-image-gen.json +0 -353
  286. package/40-checker/results/sample60/shanliuling__skills-link.json +0 -344
  287. package/40-checker/results/sample60/shengsheng90__DSH-taskboard.json +0 -341
  288. package/40-checker/results/sample60/sjh9714__dsh-win32.json +0 -374
  289. package/40-checker/results/sample60/skymecode__deepseek-harness-for-vscode.json +0 -351
  290. package/40-checker/results/sample60/sopaco__terrain.json +0 -352
  291. package/40-checker/results/sample60/summary.json +0 -658
  292. package/40-checker/results/sample60/tinqiao-oss__engramory.json +0 -352
  293. package/40-checker/results/sample60/tong-io__tongflow.json +0 -359
  294. package/40-checker/results/sample60/vibeinging__dsh-desktop.json +0 -382
  295. package/40-checker/results/sample60/w2112515__dsh-remote-host.json +0 -344
  296. package/40-checker/results/sample60/wkfedor__deepseek-harness-voice-input.json +0 -350
  297. package/40-checker/results/sample60/wz20__dsh-dafeiyu-dot.json +0 -349
  298. package/40-checker/results/sample60/xfgil__dsh-hot-reloader.json +0 -344
  299. package/40-checker/results/sample60/yi-yezhiqiu__dsh-prompt-market.json +0 -360
  300. package/40-checker/results/sample60/yizhiyizhi0128__dsh-peak-scheduler.json +0 -360
  301. package/40-checker/results/sample60/yjh051108__dsh-routing-suite.json +0 -366
  302. package/40-checker/results/sample60-ci/123dbl__dsh-side-session.json +0 -344
  303. package/40-checker/results/sample60-ci/173787247__dsh-wsl-dns.json +0 -360
  304. package/40-checker/results/sample60-ci/863683348__dsh-insight.json +0 -375
  305. package/40-checker/results/sample60-ci/Anionex__dsh-turn-rewind.json +0 -379
  306. package/40-checker/results/sample60-ci/Ansellwan__DSH-Custom-Wallpaper.json +0 -344
  307. package/40-checker/results/sample60-ci/Ebony-Vinyl__EAC-Pack.json +0 -362
  308. package/40-checker/results/sample60-ci/EricWang1358__dsh-web-studyhub.json +0 -378
  309. package/40-checker/results/sample60-ci/GanyuanRan__Aegis.json +0 -349
  310. package/40-checker/results/sample60-ci/HiSeax__dsh-codely.json +0 -368
  311. package/40-checker/results/sample60-ci/Jamailar__beav-deepseek-harness.json +0 -367
  312. package/40-checker/results/sample60-ci/LiarMTTT__TavernWeave.json +0 -231
  313. package/40-checker/results/sample60-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +0 -344
  314. package/40-checker/results/sample60-ci/MichengAI__dsh-archive-manager.json +0 -395
  315. package/40-checker/results/sample60-ci/MichengAI__dsh-im-connect.json +0 -404
  316. package/40-checker/results/sample60-ci/MindLab-Research__dsh-generative-ui.json +0 -410
  317. package/40-checker/results/sample60-ci/NEAZ71eve__dsh-tool-github.json +0 -392
  318. package/40-checker/results/sample60-ci/README.md +0 -7
  319. package/40-checker/results/sample60-ci/RINGOLINK__dsh-desktop-shell.json +0 -361
  320. package/40-checker/results/sample60-ci/Ruler4396__dsh-launcher.json +0 -231
  321. package/40-checker/results/sample60-ci/SeanTolstoyevski__dsh-code-review.json +0 -363
  322. package/40-checker/results/sample60-ci/Tasihi89__dsh-talk-map.json +0 -372
  323. package/40-checker/results/sample60-ci/Tyan66666__billion-context-dsh.json +0 -469
  324. package/40-checker/results/sample60-ci/V1ki__dsh-plugin-subscriptions.json +0 -368
  325. package/40-checker/results/sample60-ci/Yu-tao-Li__dsh-computer-use-win.json +0 -349
  326. package/40-checker/results/sample60-ci/ZSeven-W__dsh-ios.json +0 -344
  327. package/40-checker/results/sample60-ci/Zxznb666__dsh-qoder-cn-subagent.json +0 -349
  328. package/40-checker/results/sample60-ci/agent-mobile__dsh-mobile-gateway.json +0 -384
  329. package/40-checker/results/sample60-ci/c3cvld7aag__fujiang-dsh.json +0 -361
  330. package/40-checker/results/sample60-ci/cxzrdxy__dsh-file-explorer.json +0 -399
  331. package/40-checker/results/sample60-ci/dhicoc__dsh-reverse-skill.json +0 -352
  332. package/40-checker/results/sample60-ci/fangqiing__dsh-knowledge-lite.json +0 -360
  333. package/40-checker/results/sample60-ci/fwerkor__local-shell-mcp.json +0 -387
  334. package/40-checker/results/sample60-ci/fzy0517__deepseek-harness-session-cleaner.json +0 -354
  335. package/40-checker/results/sample60-ci/gjy1992__dsh-diagram.json +0 -381
  336. package/40-checker/results/sample60-ci/howmp__dsh-pentest.json +0 -361
  337. package/40-checker/results/sample60-ci/linhay__harmony-next.skills.json +0 -344
  338. package/40-checker/results/sample60-ci/liustack__modsearch.json +0 -382
  339. package/40-checker/results/sample60-ci/mmparko__dsh-purge.json +0 -441
  340. package/40-checker/results/sample60-ci/mrme000m__dsh-prime-orchestrator.json +0 -452
  341. package/40-checker/results/sample60-ci/omdsh-dev__dsh_workflow.json +0 -439
  342. package/40-checker/results/sample60-ci/plastic-labs__honcho.json +0 -231
  343. package/40-checker/results/sample60-ci/redstonedust__dsh-solidworks-copilot.json +0 -371
  344. package/40-checker/results/sample60-ci/seriousz158__dsh-memory.json +0 -351
  345. package/40-checker/results/sample60-ci/shanliuling__dsh-image-gen.json +0 -382
  346. package/40-checker/results/sample60-ci/shanliuling__skills-link.json +0 -344
  347. package/40-checker/results/sample60-ci/shengsheng90__DSH-taskboard.json +0 -370
  348. package/40-checker/results/sample60-ci/sjh9714__dsh-win32.json +0 -410
  349. package/40-checker/results/sample60-ci/skymecode__deepseek-harness-for-vscode.json +0 -391
  350. package/40-checker/results/sample60-ci/sopaco__deepwiki-rs.json +0 -231
  351. package/40-checker/results/sample60-ci/sopaco__terrain.json +0 -352
  352. package/40-checker/results/sample60-ci/summary.json +0 -555
  353. package/40-checker/results/sample60-ci/tinqiao-oss__engramory.json +0 -362
  354. package/40-checker/results/sample60-ci/tong-io__tongflow.json +0 -393
  355. package/40-checker/results/sample60-ci/vibeinging__dsh-desktop.json +0 -555
  356. package/40-checker/results/sample60-ci/w2112515__dsh-remote-host.json +0 -399
  357. package/40-checker/results/sample60-ci/wkfedor__deepseek-harness-voice-input.json +0 -358
  358. package/40-checker/results/sample60-ci/wz20__dsh-dafeiyu-dot.json +0 -390
  359. package/40-checker/results/sample60-ci/xfgil__dsh-hot-reloader.json +0 -344
  360. package/40-checker/results/sample60-ci/yi-yezhiqiu__dsh-prompt-market.json +0 -373
  361. package/40-checker/results/sample60-ci/yizhiyizhi0128__dsh-peak-scheduler.json +0 -370
  362. package/40-checker/results/sample60-ci/yjh051108__dsh-routing-suite.json +0 -437
  363. package/40-checker/results/sample60-ci/zed1902209846-dotcom__DPwhale-plugin.json +0 -231
  364. package/40-checker/results/triage/REPORT.md +0 -317
  365. package/40-checker/results/triage/evidence/g2-rejections.txt +0 -63
  366. package/40-checker/results/triage/evidence/purge-baseline-0.2.1-rc.5.json +0 -51
  367. package/40-checker/results/triage/evidence/purge-baseline-0.2.2-alpha.2.json +0 -51
  368. package/40-checker/results/triage/evidence/purge-postinstall.txt +0 -62
  369. package/40-checker/results/triage/evidence/purge-with-profile-0.2.1-rc.5.json +0 -71
  370. package/40-checker/results/triage/evidence/purge-with-profile-0.2.2-alpha.2.json +0 -71
  371. package/40-checker/results/triage/evidence/semver-matrix.json +0 -32
  372. package/40-checker/results/triage/triage.json +0 -295
  373. package/40-checker/results/webapp/README.md +0 -10
  374. package/40-checker/results/webapp/summary.json +0 -46
  375. package/40-checker/results/webapp/web-auth.json +0 -19
  376. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/client-export.json +0 -7
  377. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/installed-package.json +0 -123
  378. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/probe.json +0 -129
  379. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/shot.png +0 -0
  380. package/40-checker/results/webruntime/DDDMUC__dsh-free-search/summary.md +0 -16
  381. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/client-export.json +0 -7
  382. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/installed-package.json +0 -76
  383. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/probe.json +0 -129
  384. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/shot.png +0 -0
  385. package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/summary.md +0 -16
  386. package/40-checker/results/webruntime/REPORT.md +0 -253
  387. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/client-export.json +0 -7
  388. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/installed-package.json +0 -97
  389. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/probe.json +0 -129
  390. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/shot.png +0 -0
  391. package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/summary.md +0 -16
  392. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/client-export.json +0 -7
  393. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/installed-package.json +0 -98
  394. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/probe.json +0 -136
  395. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/shot.png +0 -0
  396. package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/summary.md +0 -16
  397. package/40-checker/results/webruntime/ci-diet/client-export.json +0 -10
  398. package/40-checker/results/webruntime/ci-diet/installed-package.json +0 -100
  399. package/40-checker/results/webruntime/ci-diet/probe.json +0 -129
  400. package/40-checker/results/webruntime/ci-diet/shot.png +0 -0
  401. package/40-checker/results/webruntime/ci-diet/summary.md +0 -16
  402. package/40-checker/results/webruntime/daily-log/client-export.json +0 -10
  403. package/40-checker/results/webruntime/daily-log/installed-package.json +0 -113
  404. package/40-checker/results/webruntime/daily-log/probe.json +0 -129
  405. package/40-checker/results/webruntime/daily-log/shot.png +0 -0
  406. package/40-checker/results/webruntime/daily-log/summary.md +0 -16
  407. package/40-checker/results/webruntime/howmp__dsh-pentest/client-export.json +0 -7
  408. package/40-checker/results/webruntime/howmp__dsh-pentest/installed-package.json +0 -90
  409. package/40-checker/results/webruntime/howmp__dsh-pentest/probe.json +0 -129
  410. package/40-checker/results/webruntime/howmp__dsh-pentest/shot.png +0 -0
  411. package/40-checker/results/webruntime/howmp__dsh-pentest/summary.md +0 -16
  412. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/client-export.json +0 -7
  413. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/installed-package.json +0 -164
  414. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/probe.json +0 -129
  415. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/shot.png +0 -0
  416. package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/summary.md +0 -16
  417. package/40-checker/results/webruntime/liguobao__ds-harness-remote/client-export.json +0 -7
  418. package/40-checker/results/webruntime/liguobao__ds-harness-remote/installed-package.json +0 -166
  419. package/40-checker/results/webruntime/liguobao__ds-harness-remote/probe.json +0 -129
  420. package/40-checker/results/webruntime/liguobao__ds-harness-remote/shot.png +0 -0
  421. package/40-checker/results/webruntime/liguobao__ds-harness-remote/summary.md +0 -16
  422. package/40-checker/results/webruntime/local-pre-ci/README.md +0 -67
  423. package/40-checker/results/webruntime/local-pre-ci/client-exports.json +0 -158
  424. package/40-checker/results/webruntime/local-pre-ci/dsh-free-search.probe.json +0 -119
  425. package/40-checker/results/webruntime/local-pre-ci/dsh-pocket.probe.json +0 -119
  426. package/40-checker/results/webruntime/local-pre-ci/dsh-redteam-model.probe.json +0 -119
  427. package/40-checker/results/webruntime/local-pre-ci/qiushi-shell-only.probe.json +0 -104
  428. package/40-checker/results/webruntime/local-pre-ci/ui-auth-no-login.fail.json +0 -52
  429. package/40-checker/results/webruntime/local-pre-ci/ui-auth.probe.json +0 -123
  430. package/40-checker/results/webruntime/mmparko__dsh-purge/client-export.json +0 -7
  431. package/40-checker/results/webruntime/mmparko__dsh-purge/installed-package.json +0 -95
  432. package/40-checker/results/webruntime/mmparko__dsh-purge/probe.json +0 -136
  433. package/40-checker/results/webruntime/mmparko__dsh-purge/shot.png +0 -0
  434. package/40-checker/results/webruntime/mmparko__dsh-purge/summary.md +0 -16
  435. package/40-checker/results/webruntime/project-memory/client-export.json +0 -7
  436. package/40-checker/results/webruntime/project-memory/installed-package.json +0 -118
  437. package/40-checker/results/webruntime/project-memory/probe.json +0 -129
  438. package/40-checker/results/webruntime/project-memory/shot.png +0 -0
  439. package/40-checker/results/webruntime/project-memory/summary.md +0 -16
  440. package/40-checker/results/webruntime/qiushi/client-export.json +0 -7
  441. package/40-checker/results/webruntime/qiushi/installed-package.json +0 -84
  442. package/40-checker/results/webruntime/qiushi/probe.json +0 -114
  443. package/40-checker/results/webruntime/qiushi/shot.png +0 -0
  444. package/40-checker/results/webruntime/qiushi/summary.md +0 -16
  445. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/client-export.json +0 -7
  446. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/installed-package.json +0 -85
  447. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/probe.json +0 -129
  448. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/shot.png +0 -0
  449. package/40-checker/results/webruntime/shaobeichen__dsh-pocket/summary.md +0 -16
  450. package/40-checker/results/webruntime/status-rotator/client-export.json +0 -7
  451. package/40-checker/results/webruntime/status-rotator/installed-package.json +0 -107
  452. package/40-checker/results/webruntime/status-rotator/probe.json +0 -129
  453. package/40-checker/results/webruntime/status-rotator/shot.png +0 -0
  454. package/40-checker/results/webruntime/status-rotator/summary.md +0 -16
  455. package/40-checker/results/webruntime/summary.json +0 -323
  456. package/40-checker/results/webruntime/telemetry/probe.json +0 -20
  457. package/40-checker/results/webruntime/telemetry/summary.md +0 -4
  458. package/40-checker/results/webruntime/ui-auth/client-export.json +0 -7
  459. package/40-checker/results/webruntime/ui-auth/installed-package.json +0 -94
  460. package/40-checker/results/webruntime/ui-auth/probe.json +0 -129
  461. package/40-checker/results/webruntime/ui-auth/shot.png +0 -0
  462. package/40-checker/results/webruntime/ui-auth/summary.md +0 -16
  463. package/40-checker/results/webruntime/verification/probe.json +0 -20
  464. package/40-checker/results/webruntime/verification/summary.md +0 -4
  465. package/40-checker/results/webruntime/ysr666__dsh-vision-router/client-export.json +0 -7
  466. package/40-checker/results/webruntime/ysr666__dsh-vision-router/installed-package.json +0 -142
  467. package/40-checker/results/webruntime/ysr666__dsh-vision-router/probe.json +0 -129
  468. package/40-checker/results/webruntime/ysr666__dsh-vision-router/shot.png +0 -0
  469. 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
- }