dsh-standards 0.0.2 → 1.0.0
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.
- package/40-checker/.github/workflows/plugin-verify.yml +70 -0
- package/40-checker/README.md +251 -0
- package/40-checker/bin/dsh-levels.mjs +15 -0
- package/40-checker/bin/dsh-plugin-verify.mjs +8 -0
- package/40-checker/fixtures/bad/index.mjs +12 -0
- package/40-checker/fixtures/bad/package.json +15 -0
- package/40-checker/fixtures/bad-manifest/index.js +1 -0
- package/40-checker/fixtures/bad-manifest/package.json +5 -0
- package/40-checker/fixtures/bundle/cordis.patch.yml +3 -0
- package/40-checker/fixtures/bundle/package.json +15 -0
- package/40-checker/fixtures/bundle/server.mjs +7 -0
- package/40-checker/fixtures/bundle-v0/cordis.patch.yml +3 -0
- package/40-checker/fixtures/bundle-v0/package.json +21 -0
- package/40-checker/fixtures/bundle-v0/server.mjs +7 -0
- package/40-checker/fixtures/client-missing/client.js +1 -0
- package/40-checker/fixtures/client-missing/index.js +1 -0
- package/40-checker/fixtures/client-missing/package.json +6 -0
- package/40-checker/fixtures/flow-config/index.js +9 -0
- package/40-checker/fixtures/flow-config/package.json +10 -0
- package/40-checker/fixtures/fs-write/index.mjs +7 -0
- package/40-checker/fixtures/fs-write/package.json +10 -0
- package/40-checker/fixtures/good/index.mjs +10 -0
- package/40-checker/fixtures/good/package.json +19 -0
- package/40-checker/fixtures/hang/index.mjs +5 -0
- package/40-checker/fixtures/hang/package.json +10 -0
- package/40-checker/fixtures/known-answer/expected.json +18 -0
- package/40-checker/fixtures/market-index-real.json +18 -0
- package/40-checker/fixtures/market-index.json +18 -0
- package/40-checker/fixtures/negative/bad-entry/package.json +1 -0
- package/40-checker/fixtures/negative/no-entry/package.json +1 -0
- package/40-checker/fixtures/negative/no-patch/package.json +1 -0
- package/40-checker/fixtures/negative/root-missing/cordis.patch.yml +2 -0
- package/40-checker/fixtures/negative/root-missing/package.json +1 -0
- package/40-checker/fixtures/negative/workspace/package.json +1 -0
- package/40-checker/package.json +22 -0
- package/40-checker/results/boost/REPORT.md +304 -0
- package/40-checker/results/boost/lev12458.json +1747 -0
- package/40-checker/results/client/README.md +16 -0
- package/40-checker/results/entry/18/DDDMUC__dsh-free-search.json +381 -0
- package/40-checker/results/entry/18/DDDMUC__dsh-free-search.runtime.json +34 -0
- package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.json +361 -0
- package/40-checker/results/entry/18/Ebony-Vinyl__dsh-our-free-model.runtime.json +34 -0
- package/40-checker/results/entry/18/README.md +24 -0
- package/40-checker/results/entry/18/RUNTIME.md +18 -0
- package/40-checker/results/entry/18/SeaOf0__dsh-redteam-model.json +391 -0
- package/40-checker/results/entry/18/YuJunZhiXue__dsh-purge.json +432 -0
- package/40-checker/results/entry/18/ci-diet.json +365 -0
- package/40-checker/results/entry/18/ci-diet.runtime-attempt.json +38 -0
- package/40-checker/results/entry/18/daily-log.json +357 -0
- package/40-checker/results/entry/18/daily-log.runtime.json +519 -0
- package/40-checker/results/entry/18/fullbase/ATTRIBUTION.md +29 -0
- package/40-checker/results/entry/18/fullbase/DDDMUC__dsh-free-search.json +99 -0
- package/40-checker/results/entry/18/fullbase/Ebony-Vinyl__dsh-our-free-model.json +95 -0
- package/40-checker/results/entry/18/fullbase/REPORT.md +261 -0
- package/40-checker/results/entry/18/fullbase/SeaOf0__dsh-redteam-model.json +144 -0
- package/40-checker/results/entry/18/fullbase/YuJunZhiXue__dsh-purge.json +106 -0
- package/40-checker/results/entry/18/fullbase/ci-diet.json +99 -0
- package/40-checker/results/entry/18/fullbase/daily-log.json +94 -0
- package/40-checker/results/entry/18/fullbase/howmp__dsh-pentest.json +104 -0
- package/40-checker/results/entry/18/fullbase/kingcharleslzy-ai__dsh-purge.json +143 -0
- package/40-checker/results/entry/18/fullbase/liguobao__ds-harness-remote.json +134 -0
- package/40-checker/results/entry/18/fullbase/mmparko__dsh-purge.json +138 -0
- package/40-checker/results/entry/18/fullbase/project-memory.json +108 -0
- package/40-checker/results/entry/18/fullbase/qiushi.json +94 -0
- package/40-checker/results/entry/18/fullbase/shaobeichen__dsh-pocket.json +94 -0
- package/40-checker/results/entry/18/fullbase/status-rotator.json +94 -0
- package/40-checker/results/entry/18/fullbase/summary.json +297 -0
- package/40-checker/results/entry/18/fullbase/telemetry.json +94 -0
- package/40-checker/results/entry/18/fullbase/ui-auth.json +94 -0
- package/40-checker/results/entry/18/fullbase/verification.json +94 -0
- package/40-checker/results/entry/18/fullbase/ysr666__dsh-vision-router.json +106 -0
- package/40-checker/results/entry/18/howmp__dsh-pentest.json +361 -0
- package/40-checker/results/entry/18/kingcharleslzy-ai__dsh-purge.json +411 -0
- package/40-checker/results/entry/18/liguobao__ds-harness-remote.json +379 -0
- package/40-checker/results/entry/18/mmparko__dsh-purge.json +441 -0
- package/40-checker/results/entry/18/project-memory.json +361 -0
- package/40-checker/results/entry/18/project-memory.runtime.json +519 -0
- package/40-checker/results/entry/18/qiushi.json +353 -0
- package/40-checker/results/entry/18/qiushi.runtime.json +519 -0
- package/40-checker/results/entry/18/realweb/REPORT.md +73 -0
- package/40-checker/results/entry/18/realweb/SeaOf0__dsh-redteam-model.json +104 -0
- package/40-checker/results/entry/18/realweb/YuJunZhiXue__dsh-purge.json +64 -0
- package/40-checker/results/entry/18/realweb/howmp__dsh-pentest.json +65 -0
- package/40-checker/results/entry/18/realweb/kingcharleslzy-ai__dsh-purge.json +75 -0
- package/40-checker/results/entry/18/realweb/mmparko__dsh-purge.json +70 -0
- package/40-checker/results/entry/18/realweb/shaobeichen__dsh-pocket.json +56 -0
- package/40-checker/results/entry/18/realweb/summary.json +196 -0
- package/40-checker/results/entry/18/realweb/ui-auth.json +56 -0
- package/40-checker/results/entry/18/realweb/ysr666__dsh-vision-router.json +61 -0
- package/40-checker/results/entry/18/richbase/REPORT.md +70 -0
- package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.json +61 -0
- package/40-checker/results/entry/18/richbase/SeaOf0__dsh-redteam-model.log +38 -0
- package/40-checker/results/entry/18/shaobeichen__dsh-pocket.json +363 -0
- package/40-checker/results/entry/18/status-rotator.json +362 -0
- package/40-checker/results/entry/18/status-rotator.runtime.json +519 -0
- package/40-checker/results/entry/18/summary.json +266 -0
- package/40-checker/results/entry/18/targetonly/DDDMUC__dsh-free-search.json +34 -0
- package/40-checker/results/entry/18/targetonly/Ebony-Vinyl__dsh-our-free-model.json +34 -0
- package/40-checker/results/entry/18/targetonly/SeaOf0__dsh-redteam-model.json +84 -0
- package/40-checker/results/entry/18/targetonly/YuJunZhiXue__dsh-purge.json +52 -0
- package/40-checker/results/entry/18/targetonly/ci-diet.json +34 -0
- package/40-checker/results/entry/18/targetonly/daily-log.json +34 -0
- package/40-checker/results/entry/18/targetonly/howmp__dsh-pentest.json +46 -0
- package/40-checker/results/entry/18/targetonly/kingcharleslzy-ai__dsh-purge.json +61 -0
- package/40-checker/results/entry/18/targetonly/liguobao__ds-harness-remote.json +39 -0
- package/40-checker/results/entry/18/targetonly/mmparko__dsh-purge.json +57 -0
- package/40-checker/results/entry/18/targetonly/project-memory.json +34 -0
- package/40-checker/results/entry/18/targetonly/qiushi.json +34 -0
- package/40-checker/results/entry/18/targetonly/shaobeichen__dsh-pocket.json +34 -0
- package/40-checker/results/entry/18/targetonly/status-rotator.json +34 -0
- package/40-checker/results/entry/18/targetonly/summary.json +133 -0
- package/40-checker/results/entry/18/targetonly/telemetry.json +34 -0
- package/40-checker/results/entry/18/targetonly/ui-auth.json +34 -0
- package/40-checker/results/entry/18/targetonly/verification.json +34 -0
- package/40-checker/results/entry/18/targetonly/ysr666__dsh-vision-router.json +43 -0
- package/40-checker/results/entry/18/telemetry.json +349 -0
- package/40-checker/results/entry/18/ui-auth.json +369 -0
- package/40-checker/results/entry/18/verification.json +358 -0
- package/40-checker/results/entry/18/ysr666__dsh-vision-router.json +409 -0
- package/40-checker/results/fixtures/bad.json +347 -0
- package/40-checker/results/fixtures/bundle.json +378 -0
- package/40-checker/results/fixtures/good-listing.json +382 -0
- package/40-checker/results/fixtures/good-static.json +322 -0
- package/40-checker/results/fixtures/good.json +375 -0
- package/40-checker/results/fixtures/good.sarif +274 -0
- package/40-checker/results/flow/README.md +19 -0
- package/40-checker/results/flow/j3-j7-fixture.json +51 -0
- package/40-checker/results/flow/j5-j8-client-missing.json +45 -0
- package/40-checker/results/flow/j5-j8-good.json +45 -0
- package/40-checker/results/flow/journey-fixture-bundle.json +90 -0
- package/40-checker/results/flow/journey-fixture-j1-j2-j4-j6.json +107 -0
- package/40-checker/results/flow/real/DDDMUC__dsh-free-search.json +297 -0
- package/40-checker/results/flow/real/REPORT.md +335 -0
- package/40-checker/results/flow/real/YuJunZhiXue__dsh-purge.json +317 -0
- package/40-checker/results/flow/real/ci-diet.json +351 -0
- package/40-checker/results/flow/real/daily-log.json +286 -0
- package/40-checker/results/flow/real/index.json +325 -0
- package/40-checker/results/flow/real/project-memory.json +290 -0
- package/40-checker/results/flow/real/qiushi.json +277 -0
- package/40-checker/results/flow/real/status-rotator.json +275 -0
- package/40-checker/results/flow/real/telemetry.json +178 -0
- package/40-checker/results/flow/real/ui-auth.json +288 -0
- package/40-checker/results/flow/real/verification.json +265 -0
- package/40-checker/results/governance/co-maintainer-packet.md +85 -0
- package/40-checker/results/l1/ci-diet.json +406 -0
- package/40-checker/results/l1/npm-dsh-telemetry-redactor-0.1.0.json +390 -0
- package/40-checker/results/l1/npm-dsh-verification-receipt-0.1.0.json +406 -0
- package/40-checker/results/l1/npm-qiushi-dsh-evidence-audit-0.1.0.json +394 -0
- package/40-checker/results/l1/npm-zzerx-dsh-plugin-daily-log-0.4.3.json +405 -0
- package/40-checker/results/l1/project-memory.json +402 -0
- package/40-checker/results/l1/source-DDDMUC__dsh-free-search.json +422 -0
- package/40-checker/results/l1/source-Ebony-Vinyl__dsh-our-free-model.json +421 -0
- package/40-checker/results/l1/source-SeaOf0__dsh-redteam-model.json +432 -0
- package/40-checker/results/l1/source-YuJunZhiXue__dsh-purge.json +473 -0
- package/40-checker/results/l1/source-howmp__dsh-pentest.json +402 -0
- package/40-checker/results/l1/source-kingcharleslzy-ai__dsh-purge.json +452 -0
- package/40-checker/results/l1/source-liguobao__ds-harness-remote.json +420 -0
- package/40-checker/results/l1/source-mmparko__dsh-purge.json +482 -0
- package/40-checker/results/l1/source-shaobeichen__dsh-pocket.json +404 -0
- package/40-checker/results/l1/source-ysr666__dsh-vision-router.json +384 -0
- package/40-checker/results/l1/status-rotator.json +403 -0
- package/40-checker/results/l1/ui-auth.json +429 -0
- package/40-checker/results/l1/ysr666__dsh-vision-router.published.json +384 -0
- package/40-checker/results/lev3/REPORT.md +342 -0
- package/40-checker/results/lev3/lev3.json +4835 -0
- package/40-checker/results/lev6/REPORT.md +460 -0
- package/40-checker/results/lev6/capture-sample.json +241 -0
- package/40-checker/results/lev6/capture.jsonl +4 -0
- package/40-checker/results/lev6/lev6.json +245 -0
- package/40-checker/results/lev6/replication-r1.json +245 -0
- package/40-checker/results/levels/README.md +16 -0
- package/40-checker/results/levels/dsh-plugin-doctor.json +141 -0
- package/40-checker/results/levels/dsh-plugin-guide.json +136 -0
- package/40-checker/results/m1/dsh-ci-diet-0.5.2.json +352 -0
- package/40-checker/results/m1/dsh-status-rotator-0.38.0.json +349 -0
- package/40-checker/results/m1/dsh-telemetry-redactor-0.1.0.json +336 -0
- package/40-checker/results/m1/dsh-ui-auth-0.7.1.json +356 -0
- package/40-checker/results/m1/dsh-verification-receipt-0.1.0.json +344 -0
- package/40-checker/results/m1/index-level.json +13 -0
- package/40-checker/results/m1/levels.json +72100 -0
- package/40-checker/results/m1/qiushi-dsh-evidence-audit-0.1.0.json +339 -0
- package/40-checker/results/m1/yolk_vat-y-dsh-project-memory-0.6.7.json +348 -0
- package/40-checker/results/m1/zzerx-dsh-plugin-daily-log-0.4.3.json +344 -0
- package/40-checker/results/m2/dsh-ci-diet.json +421 -0
- package/40-checker/results/m2/dsh-ci-diet.unshare-landlock.json +424 -0
- package/40-checker/results/m2/dsh-ci-diet.unshare.json +423 -0
- package/40-checker/results/m2/fixture-bundle.image.json +404 -0
- package/40-checker/results/m2/fixture-bundle.json +392 -0
- package/40-checker/results/m2/fixture-bundle.landlock.json +396 -0
- package/40-checker/results/m2/fixture-bundle.unshare.json +395 -0
- package/40-checker/results/m2/fs-write.json +338 -0
- package/40-checker/results/m2/hang.json +31 -0
- package/40-checker/results/m2/hang.unshare-landlock.json +34 -0
- package/40-checker/results/m2/hang.unshare.json +33 -0
- package/40-checker/results/m2/project-memory.json +417 -0
- package/40-checker/results/m2/status-rotator.json +418 -0
- package/40-checker/results/m2/ui-auth.json +444 -0
- package/40-checker/results/negative/bad-entry.json +345 -0
- package/40-checker/results/negative/no-entry.json +345 -0
- package/40-checker/results/negative/no-patch.json +344 -0
- package/40-checker/results/negative/root-missing.json +344 -0
- package/40-checker/results/negative/root-missing.runtime.json +30 -0
- package/40-checker/results/negative/summary.json +51 -0
- package/40-checker/results/negative/workspace.json +344 -0
- package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.json +334 -0
- package/40-checker/results/patched/Ebony-Vinyl__dsh-our-free-model.overlay.json +335 -0
- package/40-checker/results/patched/SeaOf0__dsh-redteam-model.json +315 -0
- package/40-checker/results/patched/SeaOf0__dsh-redteam-model.overlay.json +316 -0
- package/40-checker/results/patched/mmparko__dsh-purge.json +357 -0
- package/40-checker/results/patched/mmparko__dsh-purge.overlay.json +358 -0
- package/40-checker/results/patched/shaobeichen__dsh-pocket.json +315 -0
- package/40-checker/results/patched/shaobeichen__dsh-pocket.overlay.json +316 -0
- package/40-checker/results/real/DDDMUC__dsh-free-search.json +344 -0
- package/40-checker/results/real/Ebony-Vinyl__dsh-our-free-model.json +343 -0
- package/40-checker/results/real/SeaOf0__dsh-redteam-model.json +354 -0
- package/40-checker/results/real/YuJunZhiXue__dsh-purge.json +395 -0
- package/40-checker/results/real/howmp__dsh-pentest.json +324 -0
- package/40-checker/results/real/kingcharleslzy-ai__dsh-purge.json +374 -0
- package/40-checker/results/real/liguobao__ds-harness-remote.json +342 -0
- package/40-checker/results/real/mmparko__dsh-purge.json +404 -0
- package/40-checker/results/real/shaobeichen__dsh-pocket.json +326 -0
- package/40-checker/results/real/ysr666__dsh-vision-router.json +372 -0
- package/40-checker/results/real/ysr666__dsh-vision-router.listing.json +378 -0
- package/40-checker/results/round-robin/compare.json +52 -0
- package/40-checker/results/round-robin/runner-a.json +9 -0
- package/40-checker/results/round-robin/runner-b.json +9 -0
- package/40-checker/results/sample20/123dbl__dsh-side-session.json +344 -0
- package/40-checker/results/sample20/173787247__dsh-wsl-dns.json +360 -0
- package/40-checker/results/sample20/863683348__dsh-insight.json +375 -0
- package/40-checker/results/sample20/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
- package/40-checker/results/sample20/Jamailar__beav-deepseek-harness.json +341 -0
- package/40-checker/results/sample20/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
- package/40-checker/results/sample20/NEAZ71eve__dsh-tool-github.json +384 -0
- package/40-checker/results/sample20/README.md +3 -0
- package/40-checker/results/sample20/RINGOLINK__dsh-desktop-shell.json +352 -0
- package/40-checker/results/sample20/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
- package/40-checker/results/sample20/agent-mobile__dsh-mobile-gateway.json +353 -0
- package/40-checker/results/sample20/fangqiing__dsh-knowledge-lite.json +359 -0
- package/40-checker/results/sample20/fzy0517__deepseek-harness-session-cleaner.json +344 -0
- package/40-checker/results/sample20/gjy1992__dsh-diagram.json +350 -0
- package/40-checker/results/sample20/mrme000m__dsh-prime-orchestrator.json +414 -0
- package/40-checker/results/sample20/redstonedust__dsh-solidworks-copilot.json +362 -0
- package/40-checker/results/sample20/summary.json +234 -0
- package/40-checker/results/sample20/w2112515__dsh-remote-host.json +344 -0
- package/40-checker/results/sample20/wkfedor__deepseek-harness-voice-input.json +350 -0
- package/40-checker/results/sample20/xfgil__dsh-hot-reloader.json +344 -0
- package/40-checker/results/sample20/yizhiyizhi0128__dsh-peak-scheduler.json +360 -0
- package/40-checker/results/sample20-ci/123dbl__dsh-side-session.json +344 -0
- package/40-checker/results/sample20-ci/173787247__dsh-wsl-dns.json +360 -0
- package/40-checker/results/sample20-ci/863683348__dsh-insight.json +375 -0
- package/40-checker/results/sample20-ci/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
- package/40-checker/results/sample20-ci/Jamailar__beav-deepseek-harness.json +367 -0
- package/40-checker/results/sample20-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
- package/40-checker/results/sample20-ci/NEAZ71eve__dsh-tool-github.json +392 -0
- package/40-checker/results/sample20-ci/README.md +5 -0
- package/40-checker/results/sample20-ci/RINGOLINK__dsh-desktop-shell.json +361 -0
- package/40-checker/results/sample20-ci/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
- package/40-checker/results/sample20-ci/agent-mobile__dsh-mobile-gateway.json +384 -0
- package/40-checker/results/sample20-ci/fangqiing__dsh-knowledge-lite.json +360 -0
- package/40-checker/results/sample20-ci/fzy0517__deepseek-harness-session-cleaner.json +354 -0
- package/40-checker/results/sample20-ci/gjy1992__dsh-diagram.json +381 -0
- package/40-checker/results/sample20-ci/mrme000m__dsh-prime-orchestrator.json +452 -0
- package/40-checker/results/sample20-ci/redstonedust__dsh-solidworks-copilot.json +371 -0
- package/40-checker/results/sample20-ci/summary.json +195 -0
- package/40-checker/results/sample20-ci/w2112515__dsh-remote-host.json +399 -0
- package/40-checker/results/sample20-ci/wkfedor__deepseek-harness-voice-input.json +358 -0
- package/40-checker/results/sample20-ci/xfgil__dsh-hot-reloader.json +344 -0
- package/40-checker/results/sample20-ci/yizhiyizhi0128__dsh-peak-scheduler.json +370 -0
- package/40-checker/results/sample20-ci/zed1902209846-dotcom__DPwhale-plugin.json +231 -0
- package/40-checker/results/sample60/123dbl__dsh-side-session.json +344 -0
- package/40-checker/results/sample60/173787247__dsh-wsl-dns.json +360 -0
- package/40-checker/results/sample60/863683348__dsh-insight.json +375 -0
- package/40-checker/results/sample60/Anionex__dsh-turn-rewind.json +349 -0
- package/40-checker/results/sample60/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
- package/40-checker/results/sample60/Ebony-Vinyl__EAC-Pack.json +352 -0
- package/40-checker/results/sample60/EricWang1358__dsh-web-studyhub.json +376 -0
- package/40-checker/results/sample60/GanyuanRan__Aegis.json +349 -0
- package/40-checker/results/sample60/HiSeax__dsh-codely.json +358 -0
- package/40-checker/results/sample60/Jamailar__beav-deepseek-harness.json +341 -0
- package/40-checker/results/sample60/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
- package/40-checker/results/sample60/MichengAI__dsh-archive-manager.json +357 -0
- package/40-checker/results/sample60/MichengAI__dsh-im-connect.json +347 -0
- package/40-checker/results/sample60/MindLab-Research__dsh-generative-ui.json +350 -0
- package/40-checker/results/sample60/NEAZ71eve__dsh-tool-github.json +384 -0
- package/40-checker/results/sample60/README.md +7 -0
- package/40-checker/results/sample60/RINGOLINK__dsh-desktop-shell.json +352 -0
- package/40-checker/results/sample60/SeanTolstoyevski__dsh-code-review.json +352 -0
- package/40-checker/results/sample60/Tasihi89__dsh-talk-map.json +344 -0
- package/40-checker/results/sample60/Tyan66666__billion-context-dsh.json +469 -0
- package/40-checker/results/sample60/V1ki__dsh-plugin-subscriptions.json +350 -0
- package/40-checker/results/sample60/Yu-tao-Li__dsh-computer-use-win.json +341 -0
- package/40-checker/results/sample60/ZSeven-W__dsh-ios.json +344 -0
- package/40-checker/results/sample60/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
- package/40-checker/results/sample60/agent-mobile__dsh-mobile-gateway.json +353 -0
- package/40-checker/results/sample60/c3cvld7aag__fujiang-dsh.json +361 -0
- package/40-checker/results/sample60/cxzrdxy__dsh-file-explorer.json +389 -0
- package/40-checker/results/sample60/dhicoc__dsh-reverse-skill.json +341 -0
- package/40-checker/results/sample60/fangqiing__dsh-knowledge-lite.json +359 -0
- package/40-checker/results/sample60/fwerkor__local-shell-mcp.json +369 -0
- package/40-checker/results/sample60/fzy0517__deepseek-harness-session-cleaner.json +344 -0
- package/40-checker/results/sample60/gjy1992__dsh-diagram.json +350 -0
- package/40-checker/results/sample60/howmp__dsh-pentest.json +341 -0
- package/40-checker/results/sample60/linhay__harmony-next.skills.json +344 -0
- package/40-checker/results/sample60/liustack__modsearch.json +371 -0
- package/40-checker/results/sample60/mmparko__dsh-purge.json +372 -0
- package/40-checker/results/sample60/mrme000m__dsh-prime-orchestrator.json +414 -0
- package/40-checker/results/sample60/omdsh-dev__dsh_workflow.json +439 -0
- package/40-checker/results/sample60/redstonedust__dsh-solidworks-copilot.json +362 -0
- package/40-checker/results/sample60/seriousz158__dsh-memory.json +350 -0
- package/40-checker/results/sample60/shanliuling__dsh-image-gen.json +353 -0
- package/40-checker/results/sample60/shanliuling__skills-link.json +344 -0
- package/40-checker/results/sample60/shengsheng90__DSH-taskboard.json +341 -0
- package/40-checker/results/sample60/sjh9714__dsh-win32.json +374 -0
- package/40-checker/results/sample60/skymecode__deepseek-harness-for-vscode.json +351 -0
- package/40-checker/results/sample60/sopaco__terrain.json +352 -0
- package/40-checker/results/sample60/summary.json +658 -0
- package/40-checker/results/sample60/tinqiao-oss__engramory.json +352 -0
- package/40-checker/results/sample60/tong-io__tongflow.json +359 -0
- package/40-checker/results/sample60/vibeinging__dsh-desktop.json +382 -0
- package/40-checker/results/sample60/w2112515__dsh-remote-host.json +344 -0
- package/40-checker/results/sample60/wkfedor__deepseek-harness-voice-input.json +350 -0
- package/40-checker/results/sample60/wz20__dsh-dafeiyu-dot.json +349 -0
- package/40-checker/results/sample60/xfgil__dsh-hot-reloader.json +344 -0
- package/40-checker/results/sample60/yi-yezhiqiu__dsh-prompt-market.json +360 -0
- package/40-checker/results/sample60/yizhiyizhi0128__dsh-peak-scheduler.json +360 -0
- package/40-checker/results/sample60/yjh051108__dsh-routing-suite.json +366 -0
- package/40-checker/results/sample60-ci/123dbl__dsh-side-session.json +344 -0
- package/40-checker/results/sample60-ci/173787247__dsh-wsl-dns.json +360 -0
- package/40-checker/results/sample60-ci/863683348__dsh-insight.json +375 -0
- package/40-checker/results/sample60-ci/Anionex__dsh-turn-rewind.json +379 -0
- package/40-checker/results/sample60-ci/Ansellwan__DSH-Custom-Wallpaper.json +344 -0
- package/40-checker/results/sample60-ci/Ebony-Vinyl__EAC-Pack.json +362 -0
- package/40-checker/results/sample60-ci/EricWang1358__dsh-web-studyhub.json +378 -0
- package/40-checker/results/sample60-ci/GanyuanRan__Aegis.json +349 -0
- package/40-checker/results/sample60-ci/HiSeax__dsh-codely.json +368 -0
- package/40-checker/results/sample60-ci/Jamailar__beav-deepseek-harness.json +367 -0
- package/40-checker/results/sample60-ci/LiarMTTT__TavernWeave.json +231 -0
- package/40-checker/results/sample60-ci/ManoloRemiddi__DSH-Metafolder-Plugin.json +344 -0
- package/40-checker/results/sample60-ci/MichengAI__dsh-archive-manager.json +395 -0
- package/40-checker/results/sample60-ci/MichengAI__dsh-im-connect.json +404 -0
- package/40-checker/results/sample60-ci/MindLab-Research__dsh-generative-ui.json +410 -0
- package/40-checker/results/sample60-ci/NEAZ71eve__dsh-tool-github.json +392 -0
- package/40-checker/results/sample60-ci/README.md +7 -0
- package/40-checker/results/sample60-ci/RINGOLINK__dsh-desktop-shell.json +361 -0
- package/40-checker/results/sample60-ci/Ruler4396__dsh-launcher.json +231 -0
- package/40-checker/results/sample60-ci/SeanTolstoyevski__dsh-code-review.json +363 -0
- package/40-checker/results/sample60-ci/Tasihi89__dsh-talk-map.json +372 -0
- package/40-checker/results/sample60-ci/Tyan66666__billion-context-dsh.json +469 -0
- package/40-checker/results/sample60-ci/V1ki__dsh-plugin-subscriptions.json +368 -0
- package/40-checker/results/sample60-ci/Yu-tao-Li__dsh-computer-use-win.json +349 -0
- package/40-checker/results/sample60-ci/ZSeven-W__dsh-ios.json +344 -0
- package/40-checker/results/sample60-ci/Zxznb666__dsh-qoder-cn-subagent.json +349 -0
- package/40-checker/results/sample60-ci/agent-mobile__dsh-mobile-gateway.json +384 -0
- package/40-checker/results/sample60-ci/c3cvld7aag__fujiang-dsh.json +361 -0
- package/40-checker/results/sample60-ci/cxzrdxy__dsh-file-explorer.json +399 -0
- package/40-checker/results/sample60-ci/dhicoc__dsh-reverse-skill.json +352 -0
- package/40-checker/results/sample60-ci/fangqiing__dsh-knowledge-lite.json +360 -0
- package/40-checker/results/sample60-ci/fwerkor__local-shell-mcp.json +387 -0
- package/40-checker/results/sample60-ci/fzy0517__deepseek-harness-session-cleaner.json +354 -0
- package/40-checker/results/sample60-ci/gjy1992__dsh-diagram.json +381 -0
- package/40-checker/results/sample60-ci/howmp__dsh-pentest.json +361 -0
- package/40-checker/results/sample60-ci/linhay__harmony-next.skills.json +344 -0
- package/40-checker/results/sample60-ci/liustack__modsearch.json +382 -0
- package/40-checker/results/sample60-ci/mmparko__dsh-purge.json +441 -0
- package/40-checker/results/sample60-ci/mrme000m__dsh-prime-orchestrator.json +452 -0
- package/40-checker/results/sample60-ci/omdsh-dev__dsh_workflow.json +439 -0
- package/40-checker/results/sample60-ci/plastic-labs__honcho.json +231 -0
- package/40-checker/results/sample60-ci/redstonedust__dsh-solidworks-copilot.json +371 -0
- package/40-checker/results/sample60-ci/seriousz158__dsh-memory.json +351 -0
- package/40-checker/results/sample60-ci/shanliuling__dsh-image-gen.json +382 -0
- package/40-checker/results/sample60-ci/shanliuling__skills-link.json +344 -0
- package/40-checker/results/sample60-ci/shengsheng90__DSH-taskboard.json +370 -0
- package/40-checker/results/sample60-ci/sjh9714__dsh-win32.json +410 -0
- package/40-checker/results/sample60-ci/skymecode__deepseek-harness-for-vscode.json +391 -0
- package/40-checker/results/sample60-ci/sopaco__deepwiki-rs.json +231 -0
- package/40-checker/results/sample60-ci/sopaco__terrain.json +352 -0
- package/40-checker/results/sample60-ci/summary.json +555 -0
- package/40-checker/results/sample60-ci/tinqiao-oss__engramory.json +362 -0
- package/40-checker/results/sample60-ci/tong-io__tongflow.json +393 -0
- package/40-checker/results/sample60-ci/vibeinging__dsh-desktop.json +555 -0
- package/40-checker/results/sample60-ci/w2112515__dsh-remote-host.json +399 -0
- package/40-checker/results/sample60-ci/wkfedor__deepseek-harness-voice-input.json +358 -0
- package/40-checker/results/sample60-ci/wz20__dsh-dafeiyu-dot.json +390 -0
- package/40-checker/results/sample60-ci/xfgil__dsh-hot-reloader.json +344 -0
- package/40-checker/results/sample60-ci/yi-yezhiqiu__dsh-prompt-market.json +373 -0
- package/40-checker/results/sample60-ci/yizhiyizhi0128__dsh-peak-scheduler.json +370 -0
- package/40-checker/results/sample60-ci/yjh051108__dsh-routing-suite.json +437 -0
- package/40-checker/results/sample60-ci/zed1902209846-dotcom__DPwhale-plugin.json +231 -0
- package/40-checker/results/triage/REPORT.md +317 -0
- package/40-checker/results/triage/evidence/g2-rejections.txt +63 -0
- package/40-checker/results/triage/evidence/purge-baseline-0.2.1-rc.5.json +51 -0
- package/40-checker/results/triage/evidence/purge-baseline-0.2.2-alpha.2.json +51 -0
- package/40-checker/results/triage/evidence/purge-postinstall.txt +62 -0
- package/40-checker/results/triage/evidence/purge-with-profile-0.2.1-rc.5.json +71 -0
- package/40-checker/results/triage/evidence/purge-with-profile-0.2.2-alpha.2.json +71 -0
- package/40-checker/results/triage/evidence/semver-matrix.json +32 -0
- package/40-checker/results/triage/triage.json +295 -0
- package/40-checker/results/webapp/README.md +10 -0
- package/40-checker/results/webapp/summary.json +46 -0
- package/40-checker/results/webapp/web-auth.json +19 -0
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/client-export.json +7 -0
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/installed-package.json +123 -0
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/probe.json +129 -0
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/shot.png +0 -0
- package/40-checker/results/webruntime/DDDMUC__dsh-free-search/summary.md +16 -0
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/client-export.json +7 -0
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/installed-package.json +76 -0
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/probe.json +129 -0
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/shot.png +0 -0
- package/40-checker/results/webruntime/Ebony-Vinyl__dsh-our-free-model/summary.md +16 -0
- package/40-checker/results/webruntime/REPORT.md +253 -0
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/client-export.json +7 -0
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/installed-package.json +97 -0
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/probe.json +129 -0
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/shot.png +0 -0
- package/40-checker/results/webruntime/SeaOf0__dsh-redteam-model/summary.md +16 -0
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/client-export.json +7 -0
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/installed-package.json +98 -0
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/probe.json +136 -0
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/shot.png +0 -0
- package/40-checker/results/webruntime/YuJunZhiXue__dsh-purge/summary.md +16 -0
- package/40-checker/results/webruntime/ci-diet/client-export.json +10 -0
- package/40-checker/results/webruntime/ci-diet/installed-package.json +100 -0
- package/40-checker/results/webruntime/ci-diet/probe.json +129 -0
- package/40-checker/results/webruntime/ci-diet/shot.png +0 -0
- package/40-checker/results/webruntime/ci-diet/summary.md +16 -0
- package/40-checker/results/webruntime/daily-log/client-export.json +10 -0
- package/40-checker/results/webruntime/daily-log/installed-package.json +113 -0
- package/40-checker/results/webruntime/daily-log/probe.json +129 -0
- package/40-checker/results/webruntime/daily-log/shot.png +0 -0
- package/40-checker/results/webruntime/daily-log/summary.md +16 -0
- package/40-checker/results/webruntime/howmp__dsh-pentest/client-export.json +7 -0
- package/40-checker/results/webruntime/howmp__dsh-pentest/installed-package.json +90 -0
- package/40-checker/results/webruntime/howmp__dsh-pentest/probe.json +129 -0
- package/40-checker/results/webruntime/howmp__dsh-pentest/shot.png +0 -0
- package/40-checker/results/webruntime/howmp__dsh-pentest/summary.md +16 -0
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/client-export.json +7 -0
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/installed-package.json +164 -0
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/probe.json +129 -0
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/shot.png +0 -0
- package/40-checker/results/webruntime/kingcharleslzy-ai__dsh-purge/summary.md +16 -0
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/client-export.json +7 -0
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/installed-package.json +166 -0
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/probe.json +129 -0
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/shot.png +0 -0
- package/40-checker/results/webruntime/liguobao__ds-harness-remote/summary.md +16 -0
- package/40-checker/results/webruntime/local-pre-ci/README.md +67 -0
- package/40-checker/results/webruntime/local-pre-ci/client-exports.json +158 -0
- package/40-checker/results/webruntime/local-pre-ci/dsh-free-search.probe.json +119 -0
- package/40-checker/results/webruntime/local-pre-ci/dsh-pocket.probe.json +119 -0
- package/40-checker/results/webruntime/local-pre-ci/dsh-redteam-model.probe.json +119 -0
- package/40-checker/results/webruntime/local-pre-ci/qiushi-shell-only.probe.json +104 -0
- package/40-checker/results/webruntime/local-pre-ci/ui-auth-no-login.fail.json +52 -0
- package/40-checker/results/webruntime/local-pre-ci/ui-auth.probe.json +123 -0
- package/40-checker/results/webruntime/mmparko__dsh-purge/client-export.json +7 -0
- package/40-checker/results/webruntime/mmparko__dsh-purge/installed-package.json +95 -0
- package/40-checker/results/webruntime/mmparko__dsh-purge/probe.json +136 -0
- package/40-checker/results/webruntime/mmparko__dsh-purge/shot.png +0 -0
- package/40-checker/results/webruntime/mmparko__dsh-purge/summary.md +16 -0
- package/40-checker/results/webruntime/project-memory/client-export.json +7 -0
- package/40-checker/results/webruntime/project-memory/installed-package.json +118 -0
- package/40-checker/results/webruntime/project-memory/probe.json +129 -0
- package/40-checker/results/webruntime/project-memory/shot.png +0 -0
- package/40-checker/results/webruntime/project-memory/summary.md +16 -0
- package/40-checker/results/webruntime/qiushi/client-export.json +7 -0
- package/40-checker/results/webruntime/qiushi/installed-package.json +84 -0
- package/40-checker/results/webruntime/qiushi/probe.json +114 -0
- package/40-checker/results/webruntime/qiushi/shot.png +0 -0
- package/40-checker/results/webruntime/qiushi/summary.md +16 -0
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/client-export.json +7 -0
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/installed-package.json +85 -0
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/probe.json +129 -0
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/shot.png +0 -0
- package/40-checker/results/webruntime/shaobeichen__dsh-pocket/summary.md +16 -0
- package/40-checker/results/webruntime/status-rotator/client-export.json +7 -0
- package/40-checker/results/webruntime/status-rotator/installed-package.json +107 -0
- package/40-checker/results/webruntime/status-rotator/probe.json +129 -0
- package/40-checker/results/webruntime/status-rotator/shot.png +0 -0
- package/40-checker/results/webruntime/status-rotator/summary.md +16 -0
- package/40-checker/results/webruntime/summary.json +323 -0
- package/40-checker/results/webruntime/telemetry/probe.json +20 -0
- package/40-checker/results/webruntime/telemetry/summary.md +4 -0
- package/40-checker/results/webruntime/ui-auth/client-export.json +7 -0
- package/40-checker/results/webruntime/ui-auth/installed-package.json +94 -0
- package/40-checker/results/webruntime/ui-auth/probe.json +129 -0
- package/40-checker/results/webruntime/ui-auth/shot.png +0 -0
- package/40-checker/results/webruntime/ui-auth/summary.md +16 -0
- package/40-checker/results/webruntime/verification/probe.json +20 -0
- package/40-checker/results/webruntime/verification/summary.md +4 -0
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/client-export.json +7 -0
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/installed-package.json +142 -0
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/probe.json +129 -0
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/shot.png +0 -0
- package/40-checker/results/webruntime/ysr666__dsh-vision-router/summary.md +16 -0
- package/40-checker/samples/README.md +8 -0
- package/40-checker/samples/entry18.json +139 -0
- package/40-checker/samples/frame.json +485 -0
- package/40-checker/scripts/apply-overlay.mjs +59 -0
- package/40-checker/scripts/attestation-check.mjs +151 -0
- package/40-checker/scripts/bundle-smoke.mjs +126 -0
- package/40-checker/scripts/claim-check.mjs +145 -0
- package/40-checker/scripts/clause-map.mjs +94 -0
- package/40-checker/scripts/collect-fixtures.mjs +44 -0
- package/40-checker/scripts/dashboard.mjs +85 -0
- package/40-checker/scripts/dco-check.mjs +147 -0
- package/40-checker/scripts/dependabot-check.mjs +40 -0
- package/40-checker/scripts/doc-commands-check.mjs +92 -0
- package/40-checker/scripts/entry-scan.mjs +190 -0
- package/40-checker/scripts/entry-validate.mjs +291 -0
- package/40-checker/scripts/entry18-attribution.mjs +66 -0
- package/40-checker/scripts/entry18-ci.mjs +685 -0
- package/40-checker/scripts/entry18-realweb-summary.mjs +71 -0
- package/40-checker/scripts/entry18-web.mjs +307 -0
- package/40-checker/scripts/evidence-chain.mjs +100 -0
- package/40-checker/scripts/flow-index.mjs +82 -0
- package/40-checker/scripts/flow-sample-ci.mjs +529 -0
- package/40-checker/scripts/governance-check.mjs +210 -0
- package/40-checker/scripts/host-farm.mjs +165 -0
- package/40-checker/scripts/journey-config-observe.mjs +109 -0
- package/40-checker/scripts/journey-disclosure-shape.mjs +83 -0
- package/40-checker/scripts/journey-runtime.mjs +178 -0
- package/40-checker/scripts/journey.mjs +76 -0
- package/40-checker/scripts/label-drift.mjs +74 -0
- package/40-checker/scripts/label-sync.mjs +87 -0
- package/40-checker/scripts/label-verify.mjs +90 -0
- package/40-checker/scripts/landlock-exec.c +101 -0
- package/40-checker/scripts/level-audit.mjs +336 -0
- package/40-checker/scripts/m1-sidecar.mjs +126 -0
- package/40-checker/scripts/m2-runner.mjs +213 -0
- package/40-checker/scripts/round-robin.mjs +88 -0
- package/40-checker/scripts/sample-frame.mjs +72 -0
- package/40-checker/scripts/sample20-ci.mjs +25 -0
- package/40-checker/scripts/sample60-ci.mjs +25 -0
- package/40-checker/scripts/stale-check.mjs +59 -0
- package/40-checker/scripts/surveillance.mjs +88 -0
- package/40-checker/scripts/web-probe.mjs +504 -0
- package/40-checker/src/cli.mjs +300 -0
- package/40-checker/src/client-shape.mjs +37 -0
- package/40-checker/src/declarations.mjs +242 -0
- package/40-checker/src/index.mjs +8 -0
- package/40-checker/src/install-spec.mjs +67 -0
- package/40-checker/src/label.mjs +130 -0
- package/40-checker/src/manifest.mjs +364 -0
- package/40-checker/src/permissions.mjs +60 -0
- package/40-checker/src/report.mjs +204 -0
- package/40-checker/src/result.mjs +60 -0
- package/40-checker/src/runtime.mjs +299 -0
- package/40-checker/src/semver.mjs +128 -0
- package/40-checker/src/util.mjs +148 -0
- package/40-checker/test/attestation.test.mjs +59 -0
- package/40-checker/test/checks.test.mjs +172 -0
- package/40-checker/test/claim.test.mjs +28 -0
- package/40-checker/test/client-shape.test.mjs +35 -0
- package/40-checker/test/dco.test.mjs +51 -0
- package/40-checker/test/entry-validate.test.mjs +172 -0
- package/40-checker/test/governance.test.mjs +76 -0
- package/40-checker/test/label.test.mjs +97 -0
- package/40-checker/test/level-audit.test.mjs +99 -0
- package/40-checker/test/levels.test.mjs +31 -0
- package/40-checker/test/ops.test.mjs +117 -0
- package/40-checker/test/permissions.test.mjs +40 -0
- package/40-checker/test/semver.test.mjs +32 -0
- package/40-checker/test/verify.test.mjs +57 -0
- package/LICENSE +28 -0
- package/LICENSE-APACHE +190 -0
- package/LICENSE-CC-BY +23 -0
- package/NOTICE.md +11 -0
- package/README.md +146 -3
- package/bin/dsh-levels.mjs +4 -0
- package/bin/dsh-standards.mjs +17 -4
- package/docs/BOOST-FIXTURES-2026-11-02.md +38 -0
- package/docs/DEVELOPER-JOURNEY.md +40 -0
- package/docs/HOST-J3-BUG-REPORT-DRAFT.md +27 -0
- package/docs/HOST-J3-CONFIG-REPRO-2026-11-02.md +36 -0
- package/docs/NAMING-FALLBACK.md +11 -0
- package/docs/fork-policy.md +12 -0
- package/docs/full-test-plan-2026-11-02.md +207 -0
- package/docs/incident.md +37 -0
- package/docs/onboarding.md +27 -0
- package/docs/privacy.md +12 -0
- package/docs/release.md +16 -0
- package/docs/scope-security.md +62 -0
- package/docs/status-taxonomy.md +54 -0
- package/docs/sunset.md +44 -0
- package/docs/translating.md +12 -0
- package/package.json +49 -18
- package/spec/README.md +27 -0
- package/spec/boost/README.md +8 -0
- package/spec/clauses.json +253 -0
- package/spec/entry/README.md +9 -0
- package/spec/flow/README.md +8 -0
- package/spec/levels.json +371 -0
- package/spec/levels.schema.json +45 -0
- package/spec/reference-suite.json +35 -0
- package/spec/schemas/attestation.schema.json +284 -0
- package/spec/schemas/evidence.schema.json +331 -0
- package/spec/schemas/report.schema.json +64 -0
- package/index.mjs +0 -3
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-plugin-verify",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "DS-C conformance checker MVP for DeepSeek Harness plugins (standalone, zero dependencies)",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"dsh-plugin-verify": "bin/dsh-plugin-verify.mjs",
|
|
9
|
+
"dsh-levels": "bin/dsh-levels.mjs"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": "./src/index.mjs"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"test": "node --test",
|
|
16
|
+
"check:fixtures": "node bin/dsh-plugin-verify.mjs fixtures/good --format text; node bin/dsh-plugin-verify.mjs fixtures/bad --format text"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=20"
|
|
20
|
+
},
|
|
21
|
+
"license": "Apache-2.0"
|
|
22
|
+
}
|
|
@@ -0,0 +1,304 @@
|
|
|
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.
|