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,304 +0,0 @@
1
- # BOOST LEV-1 / LEV-2 / LEV-4 / LEV-5 / LEV-8 — evidence card
2
-
3
- - **Status:** `measured` for all five practices in this card (`loader-level` for LEV-1/2/5/8, `context-level` for LEV-4)
4
- - **Evidence file:** [lev12458.json](lev12458.json)
5
- - **Harness:** [lev12458-bench.mjs](../../../examples/boost/lev12458-bench.mjs) — sha256 `36f9ffa1c96e0eb05d57e19808714a512998ad4a113edf8f277ff705493b957c`
6
- - **Fixtures:** [lev12458-fixture/](../../../examples/boost/lev12458-fixture/)
7
- - **Shape/consistency test:** [lev12458-result.test.mjs](../../../examples/boost/lev12458-result.test.mjs) — sha256 `326ef496fe58c51faf5230edb2c717f9aae760ac7925b2f3c726664fcfda3ed0`
8
- - **Generated at:** `2026-11-01T04:24:39.795Z` (JSON `generatedAt`)
9
- - **Run:** `node examples/boost/lev12458-bench.mjs --runs 5`
10
-
11
- > 这不是生产 profile 的端到端基准。所有结果只在这组合成 fixture、这台机器、这套版本上成立;
12
- > 不能写成“DSH 变快了 N 倍”“真实插件不会泄漏”“真实 bundle 一定这样组合”。
13
-
14
- ## 0. One-line result
15
-
16
- | LEV | Practice | Level | Verdict | Key observation |
17
- |---|---|---|---|---|
18
- | LEV-1 | 可逆(effects dispose after restarts) | loader-level | `supported` | positive: timer disposer **5/5**, open interval handles **1 → 1**; negative raw `setInterval`: timer disposers **0**, handles **1 → 6 (+5)** |
19
- | LEV-2 | 等待(inject PENDING → ACTIVE) | loader-level | `supported` | consumer **PENDING (0)** before provider, **ACTIVE (2)** after one `loader.await()`; activation **4.666 ms**; direct access without inject throws before and after |
20
- | LEV-4 | 事件(waterfall next/veto, throw modes) | context-level | `supported` | next: `[L1,L2,inner]`; veto: `[L1]`; `emit/serial/bail` stop after throwing L2, `parallel` runs **all three** and raises `AggregateError` |
21
- | LEV-5 | seam/隔离(two loader isolate realms) | loader-level | `supported` | consumer A sees `a1 → a2`, consumer B stays `b1`; root-scope consumer **PENDING**, root `lev5Svc` **undefined**, foreign-realm applies **0**; swap **0.344 ms** |
22
- | LEV-8 | 组合(bundle patch composition) | loader-level | `supported` | base 2 rows + sample 1 row; toggle changes **only** `lev8-sample.disabled`; malformed insert rejected; missing target warns and is inert |
23
-
24
- All five negative controls were observed. The JSON `summary.evidenceCard` also validates that every
25
- measurement row has `practice / level / environment / input / command / negativeControl / result / limitations`
26
- (`ok: true`, five practices checked).
27
-
28
- ## 1. Environment
29
-
30
- The harness imports the **installed** Cordis packages as files (no DSH CLI, no profile boot):
31
-
32
- | Item | Value |
33
- |---|---|
34
- | Node | `v24.22.1`, `linux/x64`, WSL2 kernel `6.6.114.1-microsoft-standard-WSL2`, 20 CPUs |
35
- | DSH | `0.2.2-alpha.2` — `/tmp/dsh022/node_modules/@deepseek-ai/dsh`, package.json sha256 `fcfbff65bc9a7beae1d5bd56af6eb166b61dcd22bd20234653d2b8d56d09aa63` |
36
- | Cordis | `4.0.6-alpha.1` — `lib/index.js` sha256 `e2154e2748ace61fa34631cd3081b9fe71c8d744e5a6b90d36c659f44d6470eb` |
37
- | Loader | `1.0.7-alpha.1` — `lib/index.js` sha256 `bf2cf32746fa3a249ca95518993795a7f49595fe26772ceefc5fc9b645e92a0e` |
38
- | Include | `1.0.11-alpha.1` — installed and hashed, **not used** |
39
- | app-boot | installed `dsh-app-boot` — used only by LEV-8 for `bundlePatchFiles` / `bundlePatchPaths` / `loadOverlayPatches` / `composeEntries` |
40
- | DSH checkout | `<dsh-checkout>` at `ce7073d51254c26cd63b22a60835b8f948deb447`, package version `0.2.2-alpha.2`, **dirty: 3 entries** (recorded in JSON) |
41
-
42
- The npm packages carry no `gitHead`. The checkout commit is provenance for the matching source tree,
43
- **not** a byte-identity claim about the installed tree. Installed file hashes and the checkout commit
44
- are both in `environment`; they are not conflated.
45
-
46
- ## 2. Method
47
-
48
- One process, one harness, five scenarios. Every scenario creates a fresh real `Context` and imports
49
- the installed runtime by absolute file URL. No network, API key, user session, or DSH profile is used.
50
-
51
- ### 2.1 LEV-1 — real Loader restarts
52
-
53
- Composition: `lev1-probe` (a real Cordis service) + `lev1-fixture` (positive or negative fixture).
54
- The probe wraps `globalThis.setInterval` / `clearInterval` in-process to count open interval handles,
55
- and counts `ctx.effect` timer/aux disposers. After boot it records the effect labels from
56
- `ctx.fiber.getEffects()` as the baseline.
57
-
58
- Each iteration calls the real loader restart path:
59
-
60
- ```js
61
- await ctx.loader.update('lev1-fixture', { config: { mode: `m${i}` } })
62
- await ctx.loader.await()
63
- ```
64
-
65
- This is the same `Entry.update()` path `Include.refresh()` drives after a YAML change. Five restarts
66
- per arm (`--runs 5`), plus one `lev1/ping` emit after the restarts to check listener cleanup.
67
-
68
- - **Positive** (`lev1/positive.mjs`): timer, listener, and auxiliary effect are all owned by `ctx.effect`.
69
- - **Negative** (`lev1/negative.mjs`): listener and aux effect are managed, but the interval is a raw
70
- global `setInterval` with no disposer. The probe must detect the leak without trusting the fixture.
71
-
72
- Observed:
73
-
74
- | Arm | baseline effects | timer disposers | open handles after 1st apply → after 5 restarts | handles after dispose | p50 / p95 restart |
75
- |---|---|---|---|---|---|
76
- | positive | `lev1.timer`, `ctx.on("lev1/ping")`, `lev1.aux` | **5** | **1 → 1** | 0 | 0.302 / 0.778 ms (n=5) |
77
- | negative | `ctx.on("lev1/ping")`, `lev1.aux` | **0** | **1 → 6** (+5) | 6 (drained by harness) | 0.179 / 0.226 ms (n=5) |
78
-
79
- `getEffects()` returned the same label set after every restart in both arms; the negative arm's
80
- baseline simply lacks the timer effect. The probe distinguishes the arms by the open-handle delta
81
- (+0 vs +5), not by the fixture's own report.
82
-
83
- ### 2.2 LEV-2 — inject waits instead of throwing
84
-
85
- Composition: root `lev2Probe` service + loader entries `lev2-b` (`consumer.mjs`, injects
86
- `lev2Svc` + `lev2Probe`), `lev2-direct-before`, `lev2-bad`, `lev2-a` (provider), `lev2-direct-after`.
87
-
88
- 1. Boot with only the consumer: its fiber is **PENDING (0)**, `loader.getTasks()` is **0** (nothing is
89
- stuck), and no error is emitted.
90
- 2. Insert the provider entry and await the loader **once**: consumer becomes **ACTIVE (2)** and
91
- records `value: "A1"`. Activation took **4.666 ms** (includes loader bookkeeping).
92
- 3. Negative controls: `direct.mjs` (no inject) reads `ctx.lev2Svc`; it catches the error only to record
93
- it. The same error appears **before and after** the provider exists:
94
- `cannot get property "lev2Svc" without inject`.
95
- `bad-consumer.mjs` (no inject, uncaught) ends **FAILED (3)**, not PENDING — inject is what buys waiting.
96
-
97
- ### 2.3 LEV-4 — real Context, real plugin fibers
98
-
99
- Two listener plugins, registered with `ctx.plugin()` on a fresh real `Context` (no Loader/Include).
100
- This is labelled **context-level**: it measures the Cordis `EventsService`, not a DSH event contract.
101
-
102
- - Waterfall: L1 records; with `next()` it also calls the continuation (L2 then the harness `inner`),
103
- without `next()` it returns `veto-L1` and must skip L2 + inner.
104
- - Notification: L1 records, L2 records and throws `Error("L2-boom")`, L3 records. Listeners return
105
- `undefined`, so a bail value is not the cause of any stop.
106
-
107
- Observed:
108
-
109
- | Case | Calls | Result / error |
110
- |---|---|---|
111
- | waterfall next | `L1, L2, inner` | `inner-result` |
112
- | waterfall veto | `L1` | `veto-L1` |
113
- | `emit` | `L1, L2` | throws `Error: L2-boom`; L3 not reached |
114
- | `parallel` | `L1, L2, L3` | throws `AggregateError` with 1 error; all listeners still ran |
115
- | `serial` | `L1, L2` | rejects `Error: L2-boom`; L3 not reached |
116
- | `bail` | `L1, L2` | throws `Error: L2-boom`; L3 not reached |
117
-
118
- The `emit` / `serial` / `bail` behavior (a throw stops the remaining listeners) and the `parallel`
119
- behavior (all run, errors aggregated) match the implementation in
120
- `vendor/cordis/src/events.ts` (`emit` maps callbacks without catching; `parallel` uses
121
- `Promise.allSettled`; `serial`/`bail` stop on a throw/bail value). The JSON records this as
122
- `documentedBehavior` per mode.
123
-
124
- ### 2.4 LEV-5 — two loader isolate realms, one provider swap
125
-
126
- The installed loader really supports per-entry isolation (`vendor/loader/src/config/isolate.ts`), so
127
- this is **loader-level**, not a two-Context fallback.
128
-
129
- Entries:
130
-
131
- ```yaml
132
- lev5-provider-a: isolate: { lev5Svc: realm-a } config: { version: a1, realm: a }
133
- lev5-provider-b: isolate: { lev5Svc: realm-b } config: { version: b1, realm: b }
134
- lev5-consumer-a: isolate: { lev5Svc: realm-a } config: { consumer: a }
135
- lev5-consumer-b: isolate: { lev5Svc: realm-b } config: { consumer: b }
136
- lev5-consumer-root: (no isolate) config: { consumer: root }
137
- ```
138
-
139
- `consumer.mjs` imports no provider module; it only reads the injected `ctx.lev5Svc` property. The
140
- provider is replaced by restarting only `lev5-provider-a`:
141
-
142
- ```js
143
- await ctx.loader.update('lev5-provider-a', { config: { version: 'a2', realm: 'a' } })
144
- await ctx.loader.await()
145
- ```
146
-
147
- Observed:
148
-
149
- | Check | Result |
150
- |---|---|
151
- | consumer A applies | `a1` then `a2` (2 applies, 1 dispose of `a1`) |
152
- | consumer B applies | `b1` only (1 apply, 0 disposers) |
153
- | consumer A / B fiber uid | reused (`6` / `7`) across the swap |
154
- | root-scope consumer | **PENDING (0)** before and after |
155
- | root `ctx.get('lev5Svc', false)` | `undefined` |
156
- | provider impls in `ctx.reflect.store` | 2: `a2` (realm a, uid 4), `b1` (realm b, uid 5) |
157
- | foreign-realm apply events | **0** |
158
- | consumer source hash | unchanged (`sha256` before === after) |
159
- | swap latency | **0.344 ms** (one `loader.await()`, n=1) |
160
-
161
- `leakedServices` in the JSON is `[]`; it is a **computed probe** (root-scope visibility + foreign-realm
162
- applies), because `leakedServices()` is not an exported Cordis/DSH API in these versions. The report
163
- labels it rather than pretending an API exists.
164
-
165
- ### 2.5 LEV-8 — bundle patch composition, no boot
166
-
167
- This scenario imports only the real app-boot patch helpers. It does **not** boot, import a plugin, or
168
- activate a runtime, so the evidence is about **patch composition**, not a full profile.
169
-
170
- Two synthetic bundle packages, each with a real `dsh.bundle.patch` manifest field:
171
-
172
- - `lev8/bundles/base/package.json` → `cordis.patch.yml` inserts `lev8-base-a`, `lev8-base-b`.
173
- - `lev8/bundles/sample/package.json` → `cordis.patch.yml` inserts `lev8-sample`.
174
- - `lev8/toggle.patch.yml` (profile-level overlay, applied after both bundles) disables `lev8-sample`.
175
-
176
- The harness resolves `bundlePatchPaths()` + `bundlePatchFiles()`, parses with `loadOverlayPatches()`,
177
- and composes with `composeEntries()` — the same functions `bundle-smoke` uses. Compositions:
178
-
179
- | Composition | Rows | Warnings |
180
- |---|---|---|
181
- | `[base]` | `lev8-base-a`, `lev8-base-b` | none |
182
- | `[base, sample]` | + `lev8-sample` (enabled) | none |
183
- | `[base, sample, toggle]` | + `lev8-sample` (**disabled: true**) | none |
184
- | `[base, toggle]` (negative) | base only, no sample | `patch: entry "lev8-sample" not found` |
185
-
186
- Row diff `[base, sample] → [base, sample, toggle]`:
187
-
188
- ```json
189
- {
190
- "added": [], "removed": [],
191
- "changed": [{ "id": "lev8-sample", "keys": ["disabled"],
192
- "before": { "disabled": null }, "after": { "disabled": true } }]
193
- }
194
- ```
195
-
196
- Both base rows are byte-identical across all three valid compositions (`baseRowsStableAcrossCompositions: true`).
197
- The local row-schema check (id string, name string, config object, boolean disabled, known EntryOptions
198
- keys, no duplicate ids) passes for all three compositions. `invalid.patch.yml` (`insert: not-a-list`)
199
- is rejected by the real parser: `patch.insert?.forEach is not a function`.
200
-
201
- The JSON also validates its own evidence-card rows: all five have the required keys, an allowed level,
202
- a command naming the harness, a negative control with a description, a non-empty limitations list, and
203
- a `supported|refuted` verdict. This is the `result.evidenceCardCheck` field under LEV-8.
204
-
205
- ## 3. Raw numbers and commands
206
-
207
- Full raw rows are in [lev12458.json](lev12458.json); this section lists the headline numbers.
208
-
209
- | Practice | n | Positive / main | Negative control |
210
- |---|---|---|---|
211
- | LEV-1 | 5 restarts per arm | timer disposers 5; open handles 1→1; effects match baseline 5/5 | timer disposers 0; open handles 1→6; after dispose 6 |
212
- | LEV-2 | 1 provider insertion | PENDING 0 → ACTIVE 2 in one await; 4.666 ms | direct access throws before/after; uncaught access FAILED (3) |
213
- | LEV-4 | 2 waterfall + 4 modes | all expectation checks pass | veto case is the negative of next; modes differ (`parallel` all 3 vs others 2) |
214
- | LEV-5 | 5 entries + 1 swap | A `a1→a2`, B `b1`, root PENDING, 0 foreign applies | root consumer PENDING; root service undefined |
215
- | LEV-8 | 4 compositions | base stable; toggle only sample.disabled; schema ok | missing target warns + inert; malformed insert throws |
216
-
217
- Exact commands to reproduce this card:
218
-
219
- ```bash
220
- # from the workspace root
221
- node examples/boost/lev12458-bench.mjs --runs 5
222
- node --test examples/boost/lev12458-result.test.mjs
223
-
224
- # one practice only (each also writes the full JSON shape)
225
- node examples/boost/lev12458-bench.mjs --only LEV-1 --runs 5
226
- node examples/boost/lev12458-bench.mjs --only LEV-2
227
- node examples/boost/lev12458-bench.mjs --only LEV-4
228
- node examples/boost/lev12458-bench.mjs --only LEV-5
229
- node examples/boost/lev12458-bench.mjs --only LEV-8
230
- ```
231
-
232
- Expected: exit `0`, `summary.status = "measured"`, five practices measured, evidence card `ok: true`.
233
- The test currently reports **7/7 pass**.
234
-
235
- ## 4. Measured vs not-measured
236
-
237
- **Measured by this card (all five):**
238
-
239
- - LEV-1 — `loader-level`
240
- - LEV-2 — `loader-level`
241
- - LEV-4 — `context-level`
242
- - LEV-5 — `loader-level`
243
- - LEV-8 — `loader-level` (composition only; no boot)
244
-
245
- **Previously measured elsewhere (not re-run here, not changed by this card):**
246
-
247
- - LEV-3 — `loader-level`, real Loader + Include, volatile 0/20 vs control 20/20 remount:
248
- [../lev3/REPORT.md](../lev3/REPORT.md).
249
- - LEV-6 — provider-capture, prompt prefix 100% vs 0%: [../lev6/REPORT.md](../lev6/REPORT.md).
250
- - LEV-7 — synthetic timer 8.24×: [lev7-bench.mjs](../../../examples/boost/lev7-bench.mjs).
251
-
252
- **Not measured anywhere in this card (do not claim):**
253
-
254
- - a real DSH CLI/profile end-to-end boot under these five practices;
255
- - real DSH plugins/resources (the fixtures are synthetic);
256
- - real provider billing / cache hits / token savings;
257
- - OS/process-level isolation (LEV-5 is loader namespace isolation, not a security boundary);
258
- - a full bundle boot with a real profile (LEV-8 composes patches only);
259
- - chokidar/HMR debounce and `awaitWriteFinish` latency (LEV-1/5 restart directly through `loader.update`).
260
-
261
- **Status of BOOST as a whole:** all eight LEVs now have at least one reproducible, non-production
262
- evidence card. That is not the same as `boost-evidenced` for a production profile: none of these
263
- numbers is a production guarantee, and LEV-3/6/7 evidence lives in their own cards/files.
264
-
265
- ## 5. Limitations
266
-
267
- - **Synthetic fixtures only.** No DSH CLI, profile, bundle boot, real provider, network, API key, or
268
- user session data participates.
269
- - **Versions.** Installed DSH `0.2.2-alpha.2` / Cordis `4.0.6-alpha.1` / loader `1.0.7-alpha.1`.
270
- npm packages have no `gitHead`; the checkout commit is provenance, not byte identity. Checkout was
271
- dirty (3 unrelated entries).
272
- - **Single machine/process.** WSL2, Node 24.22.1, warm filesystem, one process, 20 CPUs. Latencies are
273
- warm observations, not production profile numbers. LEV-1 has n=5 per arm; LEV-2/5 swap are n=1.
274
- - **LEV-1 probe scope.** It wraps `globalThis.setInterval`/`clearInterval` in this process only.
275
- `setTimeout`, `setImmediate`, sockets, native resources, and non-timer effects are not instrumented.
276
- The negative fixture is deliberately synthetic; it proves the probe detects this leak class, not that
277
- real plugins commonly leak.
278
- - **LEV-1 semantics.** "Restart" means `Entry.update()` re-ran `apply()` and disposed the previous
279
- effects; Cordis reuses the Fiber object/uid. `getEffects()` comparison is over effect labels, not
280
- resource identity.
281
- - **LEV-2 semantics.** "One epoch" means one `loader.await()` after provider insertion, not a
282
- wall-clock guarantee. The direct-access negative catches the error only to report it; the access
283
- under test is the undeclared service read. Cordis 4's strict inject model is the documented behavior.
284
- - **LEV-4 scope.** Real Context + real plugin fibers, but no Loader/Include and no DSH-specific event
285
- contract. The four modes share identical listeners, so the comparison is controlled; it describes
286
- Cordis `EventsService`, not every DSH event.
287
- - **LEV-5 isolation.** Loader namespace isolation, not OS/process isolation; same Node runtime, module
288
- cache, and event bus. `leakedServices` is a computed probe, not an exported API. Provider replacement
289
- restarts the provider entry; it does not hot-swap a value inside a running object. Isolate is
290
- configuration-sensitive: a mismatched/missing label yields PENDING (the negative control), not a
291
- fallback to root.
292
- - **LEV-8 composition.** No boot, no plugin import, no activation. Both bundle manifests are synthetic.
293
- `composeEntries()` starts from an empty root and is not a full profile composition. The row-schema
294
- check is a local whitelist, not a published JSON Schema; the real parser was observed to accept
295
- unknown row keys, while a non-list `insert` is rejected.
296
- - **Evidence-card meta-check.** It validates this file's rows, not external or production evidence.
297
-
298
- ## 6. What this adds / what it does not prove
299
-
300
- It adds a falsifiable, reproducible negative control for each of the five missing BOOST practices, using
301
- the installed real Cordis `Context`/`Loader` (and the real app-boot patch helpers for LEV-8). It does
302
- not prove that a real DSH profile is faster, that real plugins are leak-free, that production services
303
- wait correctly, that real events are contained, that isolate is a security boundary, or that a real
304
- bundle boots.