前言¶
在 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,暫不列出。