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,暫不列出。

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

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

小夜