Zum Hauptinhalt springen
H

dsh-review-graph

huaxiaolong/dsh-review-graph

Review a change set as a relationship graph in the middle column, with every node clickable to the exact source line.

Installation

dsh plugin --profile web add github:huaxiaolong/dsh-review-graph

README

dsh-review-graph

English · 中文 · npm

一次变更里哪些文件互相调用、影响面多大、每处改动到底在哪一行——在会话里直接看懂,不用在编辑器里一个个翻。

变更关系图与审查面板:左侧是业务流程 AI 的原版/改动后对照流程图,右侧是语法高亮、双列行号的变更审查

它把三件事放进会话中间栏:

你关心的它给你什么
影响面:谁调用谁变更关系图:只显示本次改动的文件,按调用深度分列,细线表示调用关系
位置:改在哪点任意文件 → 右侧变更审查打开整个变更集并定位到该文件
内容:改了什么红绿差异、原始/改动后双列行号、语法高亮(297 种语言)、跳转行左侧标记
业务:对应哪块逻辑业务流程 AI:按需生成改动前/后对照的流程图,每一步标注文件与行

安装

要求:DSH(Host + Web 端),被审查的工作区是 git 仓库。

# 1) 从 npm(推荐)
dsh plugin --profile <profile> add dsh-review-graph

# 2) 从 git(无需任何账号)
dsh plugin --profile <profile> add https://github.com/huaxiaolong/dsh-review-graph

# 3) 从 Release 里的 tarball(无需 npm 账号,可钉死版本)
dsh plugin --profile <profile> add https://github.com/huaxiaolong/dsh-review-graph/releases/download/v1.0.0/dsh-review-graph-1.0.0.tgz

或在 GUI 里:侧栏「插件」→ Add plugin → 粘贴上面任意一种(包名、git 地址、tarball 地址或本地路径)。

三种方式装的是同一份代码,能力完全相同;npm 只是其中一个渠道。

装完重启 DSH(Host 半边生效),刷新页面(Client 半边生效),然后在会话中间栏切到「变更关系图」。

用起来

变更关系图

  • 一个文件一个框,同一列 = 同一调用深度;最左一列是入口(本次改动里没有任何文件调用它)。
  • 颜色:蓝色 = 与其他改动文件有引用关系;黄色 = 本次改动里没有任何引用关系(悬停会写明)。
  • 单击文件:在右侧打开整个变更集并定位到该文件;连线从调用方指向被调用方。
  • 右上:⌃ 收起工具栏(把高度让给图)、适应窗口(回到全景);右下:- / + / 百分比是缩放。
  • 关系太密时只画最强的 600 条,左上角写明隐藏了多少,并给出「显示全部引用」。

变更审查(右侧栏)

  • 顶部切换变更来源:未提交 / 未暂存 / 已暂存 / 单个 commit / 与某个分支对比。
  • 左栏是这次来源里的全部改动文件,‹ › 切上一个/下一个;跳转过来的那一行左侧有竖条(不影响红绿底色)。
  • 「在文件中打开」用 DSH 自带的预览看整个文件(那里有编辑器级别的高亮)。

业务流程 AI(默认不生成)

  • 点「生成」才开始,调用的是你在对话区选择的模型。生成前卡片会写清:将发送几个文件的变更片段、多大、是否带对话摘要、输出上限。
  • 结果是改动前 / 改动后左右对照的流程图,点任意节点跳到对应文件与行。
  • 三层缓存:同一份材料再打开→直接命中、不花 token;材料变了→保留上一次结果并标「已过期」,重新生成由你决定。
  • 「查看发送内容与原始回答」能看到实际发出的提示词与模型原文(排查用)。

会花钱吗?会外发什么?

  • 只有点「生成」才消耗 token。关系图、审查、diff、语法高亮全部本地完成,不联网。
  • 生成时会把变更片段 + 文件/符号结构 +(可选)对话摘要发给你选的模型。变更片段不截断——整份差异都会送进去;变更集过大可能超出模型上下文窗口,那会明确报错,不会悄悄截断给你一个少内容的答案。
  • 模型只在对话区选,本插件不提供第二个模型开关(只在 provider 公布档位时暴露推理强度)。
  • 缓存落在 <DSH_HOME>/storages/review-graph-flows/,最多 30 份,权限 0600;删掉该目录即清空。

已知限制

  • 关系图只覆盖能静态解析出引用的文件类型(JS/TS、Python、Go、Rust、Java 等);解析不出的文件会作为孤立节点(黄色)出现。
  • 已删除的文件不在图里(它已不在工作区索引中)。
  • 有多个入口时,最"忙"的那个放最左,其余入口排在相邻列。
  • 工作区不是 git 仓库时会明确提示,而不是给你一个空面板。

出问题时

现象原因与处理
面板显示 review graph: xxx is not defined插件缺陷;那句话就是原因,直接贴进 issue(这是错误边界的结果,以前会变成空白页签)
生成失败并说"占满输出预算"模型把额度全用在推理上;去对话区换一个不做长推理的模型再生成
刚生成过却说"没有缓存"切换 commit/分支会清空面板并重新判定;对话摘要变化算「已过期」
关系图里只有一个文件本次只改了一个文件,或其余文件静态解析不出引用

卸载

dsh plugin --profile <profile> remove review-graph
rm -rf "$DSH_HOME/storages/review-graph-flows"   # 可选:连同生成的缓存

开发、架构与自检

见 docs/DEVELOPMENT.md(注入契约、分层设计、缺陷清单、358 项自检怎么跑)。

许可证

MIT © 2026 huaxiaolong。内联的 Prism.js 同为 MIT,归属与再生成方式见 vendor/prism/NOTICE.md。

Ähnliche Plugins