dsh-git-graph:在 DeepSeek Harness 中可视化 Git 提交图

前言

DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在 Web GUI 中进行代码审查或历史追溯时,缺乏直观的提交图往往需要频繁切换到终端执行 git log 命令。dsh-git-graph 插件解决了这一痛点,它将 GitKraken / vscode-git-graph 风格的提交图直接嵌入到 DSH 的会话卡片中,让助手可以在对话上下文中直接展示、查看和操作 Git 历史。

插件介绍

这是一个运行在 DeepSeek Harness (dsh) web GUI 里的可视化插件。它通过在会话中渲染交互式卡片,将 Git 的分支、合并和标签泳道图形化。用户可以直接点击卡片中的提交节点,查看文件的变更详情和着色的 diff,而不需要离开浏览器界面。

核心功能

该插件主要提供三个核心能力:

  1. 提交 DAG 图

    • 绘制逻辑:使用 git log --all --topo-order 命令绘制(默认最近 500 条,可调至 2000)。
    • 连接规则:首个父提交同列直连,合并父提交曲线连接;窗口外的父提交画成开口箭头。
    • 视觉标识:自动分配泳道,分支/标签用彩色 pill 标注在提交右侧,HEAD 用高亮环标记。
  2. 提交详情

    • 交互方式:点击任意一行提交记录。
    • 展开内容:显示作者、邮箱、时间、父提交信息、完整哈希(支持一键复制)。
  3. diff 卡片

    • 触发机制:通过执行 git_show 工具。
    • 渲染内容:直接在会话中展示变更文件列表(包含 A/M/D/R 状态徽章)以及绿加红减的完整补丁(超长内容自动截断)。
  4. 只读安全

    • 插件提供的 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-* 变量,会自动适配宿主的亮/暗色主题。

结尾

dsh-git-graph 将 Git 可视化能力无缝集成到了 DeepSeek Harness 的对话流中,减少了上下文切换的开销。如果你正在使用 DSH 进行代码辅助开发,这个插件能显著提升对代码历史的理解效率。

目录页:dsh-git-graph on SkillHub
源码地址:dsh-git-graph on GitHub

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

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

小夜