{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"zseven-w-dsh-crew","slug":"zseven-w-dsh-crew","rank":70,"url":"https://github.com/ZSeven-W/dsh-crew","name":"ZSeven-W/dsh-crew","category":"workflow","description":{"zh":"从 Claude Code / Codex 派发任务给 DSH Agent：原生子代理进度、按能力分层预设的宿主内工作会话，以及为纯文本 Harness 提供视觉与图像生成的多模态桥。","en":"Dispatch work to DSH agents from Claude Code or Codex: native subagent progress, in-host worker sessions with per-tier presets, and a multimodal bridge for vision and image generation."},"stars":93,"starsCheckedAt":"2026-08-21","repository":{"owner":"ZSeven-W","repo":"dsh-crew","requestedRef":null,"subpath":""},"npm":"@zseven-w/dsh-crew","downloads":413,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add @zseven-w/dsh-crew","tarball":null,"added":"2026-08-19","page":"https://awesome-dsh-plugin.com/p/ZSeven-W/dsh-crew/","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":"zseven-w-dsh-crew","slug":"zseven-w-dsh-crew","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:20:26.034Z","scanStatus":"static-complete","verdict":"review","score":58,"commit":"b1cb3667dcc595e233796126a0c4427784fd9fd3","commitDate":"2026-08-21T22:50:29+08:00","artifactDigest":"sha256:c59aa94044d9e4fceec150d9fd12a2a98694ba53317acfc3e4c19239f9a4a616","downloadUrl":"https://github.com/ZSeven-W/dsh-crew/archive/b1cb3667dcc595e233796126a0c4427784fd9fd3.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add @zseven-w/dsh-crew","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"@zseven-w/dsh-crew","packageVersion":"0.1.0-rc.4","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"},"lifecycleScripts":{},"peerDependencies":[]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"@zseven-w/dsh-crew","manifestName":"@zseven-w/dsh-crew","nameMatch":true,"npm":{"name":"@zseven-w/dsh-crew","latestVersion":"0.1.0-rc.3","publishedAt":"2026-08-20T16:18:18.407Z","createdAt":"2026-08-16T17:14:39.264Z","versionCount":3,"maintainers":2,"repository":"git+https://github.com/ZSeven-W/dsh-crew.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"differs"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"dsh-crew-hub","name":"@zseven-w/dsh-crew","path":"cordis.patch.yml","disabled":false}],"overrides":[{"id":"sdk-jsonrpc-server","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-sdk-jsonrpc-server","keys":["maxTokensAsSuccess"],"path":"worker.cordis.yml"},{"id":"llm-deepseek","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-llm-deepseek","keys":["apiKeyEnv","thinking","reasoningEffort"],"path":"worker.cordis.yml"},{"id":"sandbox","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-sandbox-local","keys":[],"path":"worker.cordis.yml"},{"id":"sandbox-policy","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-sandbox-policy","keys":["mode","workspaceRoot"],"path":"worker.cordis.yml"},{"id":"subprocess","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-subprocess-local","keys":[],"path":"worker.cordis.yml"},{"id":"bash","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-bash-local","keys":["cwd","timeoutMs"],"path":"worker.cordis.yml"},{"id":"agent-spine","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-agent-spine-demo","keys":["persona","workspaceContext","skills","toolBash","toolJobs"],"path":"worker.cordis.yml"},{"id":"fs-local","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-fs-local","keys":["cwd"],"path":"worker.cordis.yml"},{"id":"fs-observation-policy","tier":"critical","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-fs-observation-policy","keys":[],"path":"worker.cordis.yml"},{"id":"tool-fs","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-fs","keys":[],"path":"worker.cordis.yml"},{"id":"tool-todo","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-tool-todo","keys":["allowParallelInProgress"],"path":"worker.cordis.yml"},{"id":"sessions","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-session-persistence-jsonl","keys":["root","compression"],"path":"worker.cordis.yml"},{"id":"token-meter","tier":"normal","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-token-meter","keys":[],"path":"worker.cordis.yml"},{"id":"compaction-basic","tier":"sensitive","mode":"override","disabled":false,"replacesImplementation":true,"name":"@deepseek-ai/dsh-compaction-basic","keys":["thresholdRatio","retainRatio","maxTokens","compactionRetries"],"path":"worker.cordis.yml"}],"jsExpressions":7,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","credentials","environment","filesystem","host-bundle","mcp","network","session","subprocess"],"outboundHosts":[{"host":"tools.ietf.org","count":6},{"host":"api.example.com","count":2},{"host":"stackoverflow.com","count":2},{"host":"mathiasbynens.be","count":1},{"host":"www.safaribooksonline.com","count":1}],"findings":[{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/server.mjs","pathClass":"source","line":14289,"evidence":"execSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"aa3eef5d130b431b6f142eb1"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"lib/server.mjs","pathClass":"source","line":14289,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f3875ce080466d50dae8cb3c"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"medium","confidence":"medium","layer":"static","path":"lib/server.mjs","pathClass":"source","line":2231,"evidence":"new Function(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","hash":"c61b881c8be94e8a5b29e7f3","review":{"verdict":"functional","reason":"此为ajv风格JSON Schema编译器的标准实现，sourceCode由schema定义生成后传入new Function，是JSON Schema校验库固有的性能优化模式，非任意远程代码执行。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:19:12.968Z"}},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/smoke-bundle.mjs","pathClass":"source","line":16,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"710a02a3c43c7ac8a6f325ee"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/smoke-pack.mjs","pathClass":"source","line":35,"evidence":"execFileSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"295411e94cf1de4ddedb8e66"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/smoke-pack.mjs","pathClass":"source","line":35,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"3a6301b6428547d669a697e8"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/install/install.mjs","pathClass":"source","line":186,"evidence":"execSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"4162d6a638f908303660e113"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/install/install.mjs","pathClass":"source","line":186,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"02cf944ed10a44389b542e1b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/multimodal.mjs","pathClass":"source","line":7,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"97fcd5a8db31d8a96ecb7d2d"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/server.mjs","pathClass":"source","line":53,"evidence":"execSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"f59815439432b0cece8bcdf6"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/server.mjs","pathClass":"source","line":53,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"7c8a7c425a63f3148a003983"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"worker.cordis.yml","pathClass":"cordis","line":15,"evidence":"!!js process.env.DSH_REASONING_EFFORT ?? 'high'","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"0f3b858a4fbfc7716b4a43af"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"worker.cordis.yml","pathClass":"cordis","line":23,"evidence":"!!js process.env.DSH_SANDBOX_MODE ?? 'workspace-write'","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"a245dd2b6de3f5662cc740af"},{"id":"HT-DATA-001","title":"同一模块同时接触凭据与网络","severity":"medium","confidence":"medium","layer":"static","path":"lib/server.mjs","pathClass":"source","line":14020,"evidence":"credential access at line 14020 + outbound network at line 14219","remediation":"拆分能力边界，限定目的域名，并提供不会发送凭据值的可验证证明。","hash":"ccf621e8e77588e06091fec7","review":{"verdict":"functional","reason":"DEEPSEEK_API_KEY仅通过env注入本地拉起的dsh-jsonrpc-agent子进程(RUNTIME_BIN)，用于调用用户自行配置的provider:'deepseek-official'，符合插件派发任务到DSH的既定用途。","model":"sonnet@p2","reviewedAt":"2026-08-21T11:19:12.968Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"worker.cordis.yml","line":16,"evidence":"override: id=sandbox name=@deepseek-ai/dsh-sandbox-local","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 命令沙箱（sandbox）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"4f7322359168c5c2880ef41b","review":{"verdict":"functional","reason":"该sandbox定义位于worker.cordis.yml，是为dsh-crew派发的独立协作worker子进程从零搭建的沙箱，未被cordis.patch.yml引用不会自动覆盖宿主已有沙箱，属于工作进程自身必要组件。","model":"sonnet@p2","reviewedAt":"2026-08-21T13:16:27.242Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"worker.cordis.yml","line":19,"evidence":"override: id=sandbox-policy name=@deepseek-ai/dsh-sandbox-policy config[mode,workspaceRoot]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 沙箱策略（sandbox-policy）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"69292db04ed390021ceca33b","review":{"verdict":"functional","reason":"sandbox-policy将mode限定为workspace-write且workspaceRoot锁定为cwd/DSH_CWD，是为派发的worker进程设置的合理受限沙箱策略，非对宿主既有策略的静默削弱，且该文件未被bundle自动加载。","model":"sonnet@p2","reviewedAt":"2026-08-21T13:16:27.242Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"worker.cordis.yml","line":25,"evidence":"override: id=subprocess name=@deepseek-ai/dsh-subprocess-local","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 子进程执行（subprocess）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"8976a730cdfda5322179135a","review":{"verdict":"functional","reason":"subprocess组件是worker.cordis.yml中为独立子agent worker从零定义的子进程能力，配合bash超时300000ms等限制，是无人值守编码worker的必要功能而非隐蔽覆盖宿主子进程控制。","model":"sonnet@p2","reviewedAt":"2026-08-21T13:16:27.242Z"}},{"id":"HT-PERMISSION-001","title":"覆盖安全关键宿主能力","severity":"medium","confidence":"medium","path":"worker.cordis.yml","line":50,"evidence":"override: id=fs-observation-policy name=@deepseek-ai/dsh-fs-observation-policy","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 文件可见性策略（fs-observation-policy）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"513af85c513d9afd6315518c","review":{"verdict":"functional","reason":"fs-observation-policy与同文件中fs-local(cwd限定)配套，为派发worker定义文件可见范围，是worker组合的标准安全组件而非绕过宿主已有文件策略，且该配置需用户手动应用才生效。","model":"sonnet@p2","reviewedAt":"2026-08-21T13:16:27.242Z"}},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"worker.cordis.yml","line":53,"evidence":"override: id=tool-fs name=@deepseek-ai/dsh-tool-fs","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 文件工具（tool-fs）；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"fe434cf2e82c0214cbf562e6"},{"id":"HT-PERMISSION-002","title":"覆盖敏感宿主能力","severity":"medium","confidence":"medium","path":"worker.cordis.yml","line":70,"evidence":"override: id=compaction-basic name=@deepseek-ai/dsh-compaction-basic config[thresholdRatio,retainRatio,maxTokens,compactionRetries]","remediation":"安全关键 seam 的替换必须逐项解释、最小化，并接受人工复核；用户安装前应知晓该能力被谁接管。","note":"替换实现 compaction-basic；该配置随包分发但未被 dsh.bundle 引用，只有用户手动应用时才生效","layer":"dsh-semantics","pathClass":"cordis","hash":"88094286d2fe1eb20dd4e580"},{"id":"HT-VULN-001","title":"依赖存在已知漏洞","severity":"high","confidence":"high","path":"pnpm-lock.yaml","pathClass":"manifest","line":1,"evidence":"@modelcontextprotocol/sdk@1.17.5 GHSA-345p-7cg4-v4c7 (CVE-2026-25536) fixed in 1.26.0","remediation":"升级 @modelcontextprotocol/sdk 至 1.26.0 或更高版本。","layer":"vulnerability","hash":"d4fba581f16103bb3e5b3136","review":{"verdict":"confirmed","reason":"pnpm-lock.yaml 确认依赖 @modelcontextprotocol/sdk 精确锁定为 1.17.5，落在规则所指存在漏洞的版本范围内（修复版本 1.26.0），构成真实的依赖漏洞风险。","model":"sonnet","reviewedAt":"2026-08-21T10:47:00.642Z"}},{"id":"HT-VULN-001","title":"依赖存在已知漏洞","severity":"high","confidence":"high","path":"pnpm-lock.yaml","pathClass":"manifest","line":1,"evidence":"@modelcontextprotocol/sdk@1.17.5 GHSA-8r9q-7v3j-jr4g (CVE-2026-0621) fixed in 1.25.2","remediation":"升级 @modelcontextprotocol/sdk 至 1.25.2 或更高版本。","layer":"vulnerability","hash":"aa220d196e01ac7c052c22f3","review":{"verdict":"confirmed","reason":"同一处 lockfile 记录 @modelcontextprotocol/sdk@1.17.5，早于规则所述 GHSA-8r9q-7v3j-jr4g 的修复版本 1.25.2，确认为受影响版本。","model":"sonnet","reviewedAt":"2026-08-21T10:47:00.642Z"}},{"id":"HT-VULN-001","title":"依赖存在已知漏洞","severity":"high","confidence":"high","path":"pnpm-lock.yaml","pathClass":"manifest","line":1,"evidence":"@modelcontextprotocol/sdk@1.17.5 GHSA-w48q-cv73-mx4w (CVE-2025-66414) fixed in 1.24.0","remediation":"升级 @modelcontextprotocol/sdk 至 1.24.0 或更高版本。","layer":"vulnerability","hash":"9f0add9533831c1be36df62b","review":{"verdict":"confirmed","reason":"lockfile 中 @modelcontextprotocol/sdk 固定为 1.17.5，早于 GHSA-w48q-cv73-mx4w 的修复版本 1.24.0，依赖漏洞风险属实。","model":"sonnet","reviewedAt":"2026-08-21T10:47:00.642Z"}}],"counts":{"critical":0,"high":3,"medium":10,"low":10},"rawCounts":{"critical":0,"high":3,"medium":10,"low":10},"vulnerabilities":[{"id":"GHSA-345p-7cg4-v4c7","aliases":["CVE-2026-25536"],"package":"@modelcontextprotocol/sdk","version":"1.17.5","severity":"high","fixed":"1.26.0","summary":"@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse"},{"id":"GHSA-8r9q-7v3j-jr4g","aliases":["CVE-2026-0621"],"package":"@modelcontextprotocol/sdk","version":"1.17.5","severity":"high","fixed":"1.25.2","summary":"Anthropic's MCP TypeScript SDK has a ReDoS vulnerability"},{"id":"GHSA-w48q-cv73-mx4w","aliases":["CVE-2025-66414"],"package":"@modelcontextprotocol/sdk","version":"1.17.5","severity":"high","fixed":"1.24.0","summary":"Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default"}],"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":52,"bytesScanned":1352387,"truncated":false,"lockfiles":["pnpm-lock.yaml"],"pathClasses":{"data":3,"test-example-docs":1,"markdown":23,"cordis":2,"source":18,"manifest":1,"yaml":2,"script":2}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:20:26.034Z","summary":null,"intentMatch":null,"findingsReviewed":9,"findingsCandidates":9,"fromCache":9,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:20:26.034Z","commit":"b1cb3667dcc595e233796126a0c4427784fd9fd3","policyVersion":"HT-DSH-0.2.2","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T13:16:27.242Z","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.2","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T13:16:09.914Z","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.2","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T11:19:12.968Z","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.1","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T10:47:00.642Z","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.0","verdict":"review","status":"static-complete"}],"events":[{"kind":"commit-change","from":"6eace6f69525da7c984427dd7b97d629a904ae3e","to":"b1cb3667dcc595e233796126a0c4427784fd9fd3","commit":"b1cb3667dcc595e233796126a0c4427784fd9fd3","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:20:26.034Z"},{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.2","at":"2026-08-21T13:16:09.914Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:19:12.968Z"},{"kind":"first-scan","from":null,"to":"review","commit":"6eace6f69525da7c984427dd7b97d629a904ae3e","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:47:00.642Z"}]}