前言¶
在 DSH 社区插件体系里,插件通常会向 profile 注册工具,供智能体在任务中调用。dsh-code-impact 注册的工具是 code_impact,用途很明确:对一次具体的 TypeScript 或 JavaScript Git 变更执行只读影响分析。
它不替代测试执行,也不维护长期仓库索引。一次调用会临时构建反向模块依赖图,然后返回变更声明、受影响文件、传播路径、证据位置和排序后的测试候选。下面介绍它的定位、安装方式、典型用法和安全边界。
这是什么¶
dsh-code-impact 是一个独立的 DeepSeek Harness 社区插件,定位为:
Read-only TypeScript and JavaScript change-impact analysis for DeepSeek Harness
已核实资料中的关键信息:
- 插件名:
dsh-code-impact - 维护者:
baidd1011 - 许可证:MIT
- 版本:
0.2.0 - GitHub 仓库:
https://github.com/baidd1011/dsh-code-impact
它通过 DSH services 读取 Git metadata、Git objects 和文件。它不会 checkout,不写 index,不创建 worktree,不运行测试,不编辑文件,也不访问网络。
DSH 社区目录是独立站点,不等同于官方应用商店;本文按社区插件介绍。
核心功能¶
一次只读影响分析¶
code_impact 针对一次具体变更工作。它会先做只读分析,再返回可核对材料:
- changed declarations
- affected files
- propagation paths
- evidence locations
- ranked test candidates
插件会在一次调用内复用未变化的 snapshot content,但不会维护长期 repository index。
比较模式¶
插件支持三种比较模式:
workspacestagedrefs
TypeScript/JavaScript 解析¶
插件使用 TypeScript Compiler API 处理以下文件类型:
.ts
.tsx
.mts
.cts
.js
.jsx
.mjs
.cjs
0.2.0 版本还处理这些项目配置和模块解析线索:
- JSONC project configuration
tsconfig.json/jsconfig.jsonextends- project references
- path aliases
- package
exports/imports
非 TypeScript/JavaScript 文件仍会保留在变更结果中,但不会得到虚构的 symbol-level impact。
配置校验¶
插件加载时,会使用 Schemastery 校验配置字段。
版本边界¶
0.2.0 不包含以下能力:
- LSP
- call graph
- cross-language analysis
- persistent index
- PR API
- test execution
- risk score
- dedicated web panel
安装与启用¶
兼容版本¶
已核实资料给出的目标兼容版本:
Node: ^22.19.0 || >=24.0.0
Cordis: 4.0.1
dsh-fs: 0.0.1-rc.1
dsh-subprocess: 0.0.1-rc.1
dsh-tools: 0.0.1-rc.1
DSH peer 版本为精确匹配。
添加插件¶
已核实资料给出的添加命令:
dsh plugin --profile demo add dsh-code-impact
典型用法¶
code_impact 接受 JSON 参数。
workspace¶
{"mode":"workspace"}
比较 HEAD 与当前 working tree,包括 staged、unstaged 和未被忽略的 untracked 文件。
staged¶
{"mode":"staged"}
比较 HEAD 与 Git index。
refs¶
{"mode":"refs","base_ref":"origin/main","head_ref":"feature/payment"}
插件会校验两个 refs,并比较 merge-base 到 head_ref。
安全边界与限制¶
- Git 使用 argv 调用,不经过 shell。
- refs 通过
rev-parse --verify --end-of-options校验。 - 指向 workspace 外的 symlink、binary files、submodules、未解析的相关 imports、错误的项目配置和 traversal limits 会形成显式 warning,并令
complete: false。 - 仓库级规模限制可能返回
CODE_IMPACT_REPOSITORY_TOO_LARGE。 - 单个超大文件会产生 warning,并得到不完整报告。
- 结果数组受
maxResultChars限制,截断时会有 truncation。
适用场景与注意¶
适合:
- 使用 DSH profile 的 TypeScript/JavaScript 仓库。
- 需要一次只读变更影响分析。
- 只需要模块依赖级别的影响面,不需要 LSP、call graph、cross-language analysis、persistent index、PR API、test execution、risk score 或 dedicated web panel。
安装前注意:
- 插件以当前 dsh 进程权限运行。
- 应检查源码、MIT 许可证、Node 与 DSH peer exact versions,以及
baidd1011/dsh-code-impact仓库内容。
结尾¶
经过上面的步骤,dsh-code-impact 提供的是一个边界清楚的只读工具:把一次 TS/JS 变更转成变更声明、受影响文件、传播路径、证据位置和候选测试,并保持不修改工作区、不执行测试、不访问网络。
GitHub:https://github.com/baidd1011/dsh-code-impact
当前已核实资料未给出目录页 URL,暂不列出。