dsh-code-impact:面向 DeepSeek Harness 的只读 TypeScript/JavaScript 变更影响分析

前言

在 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 针对一次具体变更工作。它会先做只读分析,再返回可核对材料:

  1. changed declarations
  2. affected files
  3. propagation paths
  4. evidence locations
  5. ranked test candidates

插件会在一次调用内复用未变化的 snapshot content,但不会维护长期 repository index。

比较模式

插件支持三种比较模式:

  • workspace
  • staged
  • refs

TypeScript/JavaScript 解析

插件使用 TypeScript Compiler API 处理以下文件类型:

.ts
.tsx
.mts
.cts
.js
.jsx
.mjs
.cjs

0.2.0 版本还处理这些项目配置和模块解析线索:

  • JSONC project configuration
  • tsconfig.json / jsconfig.json
  • extends
  • 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,暂不列出。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜