{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"yuezengwu-dsh-explain","slug":"yuezengwu-dsh-explain","rank":268,"url":"https://github.com/yuezengwu/dsh-explain","name":"yuezengwu/dsh-explain","category":"session","description":{"zh":"本地优先学习模式：跨会话全局学习线程、按来源讲解。","en":"Local-first learning mode: cross-session learning threads with per-source explanations."},"stars":11,"starsCheckedAt":"2026-08-21","repository":{"owner":"yuezengwu","repo":"dsh-explain","requestedRef":null,"subpath":""},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:yuezengwu/dsh-explain","tarball":null,"added":"2026-08-13","page":"https://awesome-dsh-plugin.com/p/yuezengwu/dsh-explain/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"yuezengwu-dsh-explain","slug":"yuezengwu-dsh-explain","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:23:01.486Z","scanStatus":"static-complete","verdict":"caution","score":94,"commit":"99239d4aab7cec2073293514c8b910eb47c981c4","commitDate":"2026-08-20T10:24:58+08:00","artifactDigest":"sha256:ac2e808d9ac8a3794f2a74f61c0dd076224b0f01ed08d5b4b774ca8b0e332134","downloadUrl":"https://github.com/yuezengwu/dsh-explain/archive/99239d4aab7cec2073293514c8b910eb47c981c4.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:yuezengwu/dsh-explain","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-explain","packageVersion":"0.1.0","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"},"lifecycleScripts":{"prepare":"pnpm build"},"peerDependencies":["@deepseek-ai/cordis","@deepseek-ai/dsh-api-gateway","@deepseek-ai/dsh-brand","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-primitives","@deepseek-ai/dsh-client-ui-slots","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-commands","@deepseek-ai/dsh-llm","@deepseek-ai/dsh-session","@deepseek-ai/dsh-settings","@deepseek-ai/dsh-token-meter","@deepseek-ai/dsh-typert-generator","@deepseek-ai/dsh-typert-protocol","@deepseek-ai/schemastery"]},"identity":{"status":"not-published","installMode":"github-source","upstreamNpm":null,"manifestName":"dsh-explain","nameMatch":null,"npm":null,"repositoryMatch":"not-checked","provenance":"not-checked","tarballHost":null},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"explain","name":"dsh-explain","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["browser-ui","environment","filesystem","host-bundle","session","subprocess"],"outboundHosts":[],"findings":[{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"medium","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":80,"evidence":"\"prepare\": \"pnpm build\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"源码安装需用户在 allowBuilds 中授权，此脚本会在安装期于用户机器执行","hash":"619d136d2740ac49e3552764"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/build-client.mjs","pathClass":"source","line":7,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"1b64d0dc30b7be2f6d187fe7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/build-client.mjs","pathClass":"source","line":7,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"914d1acd2b025e00f76a3c03"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/m6-combination.snapshot.ts","pathClass":"test-example-docs","line":1,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"912453b05c63273fdb8a17db"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/m6-combination.snapshot.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"6fd8c98ce64d41ef1dae76ff"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/web.snapshot.ts","pathClass":"test-example-docs","line":1,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"739f411bc6dd4dc22f6ba510"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/web.snapshot.ts","pathClass":"test-example-docs","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"ecd88c5c6b3512b49ed6095e"}],"counts":{"critical":0,"high":0,"medium":1,"low":2},"rawCounts":{"critical":0,"high":0,"medium":1,"low":6},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":61,"bytesScanned":696850,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"markdown":6,"cordis":1,"manifest":1,"yaml":2,"source":30,"test-example-docs":15,"data":6}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:23:01.486Z","commit":"99239d4aab7cec2073293514c8b910eb47c981c4","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:22:45.900Z","commit":"99239d4aab7cec2073293514c8b910eb47c981c4","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:51:25.957Z","commit":"99239d4aab7cec2073293514c8b910eb47c981c4","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"99239d4aab7cec2073293514c8b910eb47c981c4","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:23:01.486Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"99239d4aab7cec2073293514c8b910eb47c981c4","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:22:45.900Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"99239d4aab7cec2073293514c8b910eb47c981c4","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:51:25.957Z"}]}