前言¶
DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在 Web GUI 中进行代码审查或历史追溯时,缺乏直观的提交图往往需要频繁切换到终端执行 git log 命令。dsh-git-graph 插件解决了这一痛点,它将 GitKraken / vscode-git-graph 风格的提交图直接嵌入到 DSH 的会话卡片中,让助手可以在对话上下文中直接展示、查看和操作 Git 历史。
插件介绍¶
这是一个运行在 DeepSeek Harness (dsh) web GUI 里的可视化插件。它通过在会话中渲染交互式卡片,将 Git 的分支、合并和标签泳道图形化。用户可以直接点击卡片中的提交节点,查看文件的变更详情和着色的 diff,而不需要离开浏览器界面。
核心功能¶
该插件主要提供三个核心能力:
-
提交 DAG 图
- 绘制逻辑:使用
git log --all --topo-order命令绘制(默认最近 500 条,可调至 2000)。 - 连接规则:首个父提交同列直连,合并父提交曲线连接;窗口外的父提交画成开口箭头。
- 视觉标识:自动分配泳道,分支/标签用彩色 pill 标注在提交右侧,HEAD 用高亮环标记。
- 绘制逻辑:使用
-
提交详情
- 交互方式:点击任意一行提交记录。
- 展开内容:显示作者、邮箱、时间、父提交信息、完整哈希(支持一键复制)。
-
diff 卡片
- 触发机制:通过执行
git_show工具。 - 渲染内容:直接在会话中展示变更文件列表(包含 A/M/D/R 状态徽章)以及绿加红减的完整补丁(超长内容自动截断)。
- 触发机制:通过执行
-
只读安全
- 插件提供的
git_graph和git_show两个工具均为只读操作。 - 检出、新建分支等写操作需要在终端中完成,卡片底部会有相应提示。
- 插件提供的
安装与启用¶
在终端中执行以下命令即可将插件安装到 web profile 中:
dsh plugin --profile web add @samecorner/dsh-git-graph
执行该命令会将包 reconcile 进 profile 的 bundle 层:服务端工具注册进 cordis 宿主,浏览器 half 由 dsh.client 声明自动编入 web 启动图。安装后请重启 DSH web 服务以生效。
典型用法¶
在 DSH 的会话中,助手会自动识别意图并调用工具。你可以通过自然语言直接触发:
- 查看提交图:输入
git_graph或「显示当前仓库的提交图」。 - 查看具体提交:输入
git_show并附带哈希(例如git_show aabbccd)或「看看提交 aabbccd 改了什么」。
工具在会话工作目录(session.header.cwd)中执行,也可以通过 workdir 参数指向其他仓库。助手返回的是文本摘要,而浏览器端渲染的是完整的 JSON 视图。
适用场景与注意¶
- 适用场景:适合需要在 Web 界面中快速定位 Git 历史、审查代码变更或展示项目演进图的开发者和智能体开发者。
- 已知限制:
- 默认取最近 500 提交(
maxCount可调至 2000)。 - 泳道分配为近似算法(拓扑正确,但紧凑度可能与 vscode-git-graph 不完全一致)。
git_show对合并提交仅显示其相对于首个父提交的差异。- 依赖要求:依赖宿主
tools服务与tool.call.toolview槽位,需要 DSH 版本 ≥ 0.1.0-rc.6。 - 主题适配:UI 样式层映射
--dsw-alias-*变量,会自动适配宿主的亮/暗色主题。
- 默认取最近 500 提交(
结尾¶
dsh-git-graph 将 Git 可视化能力无缝集成到了 DeepSeek Harness 的对话流中,减少了上下文切换的开销。如果你正在使用 DSH 进行代码辅助开发,这个插件能显著提升对代码历史的理解效率。