dsh-git-graph:在 Harness 对话里查看提交图、diff 与确认式 Git 操作

前言

在 DeepSeek Harness(DSH)里和 Agent 协作时,版本历史和工作区改动往往要切到独立 Git 客户端或终端。对话上下文一旦离开仓库状态,就容易出现「说了要改、却不知道当前 staged 了什么」的断层。dsh-git-graph 把提交图谱、文件 diff 与可确认的 Git 写操作收进 Harness 原生会话视图,范围限定在当前 workspace 内的仓库,界面为英文,提交信息、作者、分支与路径保持仓库原文。

这是什么

dsh-git-graph(包名 @edgarsantiago/dsh-git-graph,当前版本 0.14.6)是由 EdgarSantiago 维护的 DSH 客户端插件。它在对话中提供 Git graph 标签页:自动发现当前 workspace 下的仓库,展示分页提交历史、变更摘要与逐文件 diff,并在执行 stage、commit、fetch、pull、push 等操作前弹出确认对话框。插件基于 MIT 许可发布,分发方式为 GitHub 仓库,不是 npm 公开发布包(package.json 中 private: true 用于避免误发到 npm,仍可通过 GitHub 安装)。README 标明其改编自 1841220388zzzcccxxx-star/dsh-git-graph,并非 DeepSeek 官方产品。

核心功能

资料中的能力表可概括为以下几块,均已在插件 UI 或 Agent 工具侧实现,无 iframe 或单独 React 安装步骤。

区域 能力
历史 提交图、搜索、本地/远程分支与 tag 筛选、分页历史(每页 200 条提交)
检视 提交详情、变更文件列表、单文件 diff、文件历史与提交对比
工作区 Changes 摘要:staged / unstaged / untracked 分组,支持批量选择
Git 操作 stage、unstage、restore、ignore、commit、fetch、pull、push、分支与 tag
Workspace 按 workspace 自动发现仓库并记住选择,彼此隔离
界面 原生 Harness 标签与主题;控件与日期为英文

Agent 侧提供需逐项批准的 git_graph_operation 工具,与 UI 写操作共用同一执行器,且限制在 Agent 当前仓库。

键盘快捷键(英文界面下):↑/↓ 选择提交,Enter 打开详情,Ctrl/⌘ + F 聚焦搜索,Escape 关闭详情或确认框。

安装与启用

官方要求 DeepSeek Harness 0.2.2-rc.1、Node.js 18+,以及系统 PATH 上的 Git。README 未声明与其他 Harness 版本的兼容性。

按你使用的 Profile 执行对应命令:

Web profile

dsh plugin --profile web add github:EdgarSantiago/dsh-git-graph

Desktop profile

dsh plugin --profile desktop add github:EdgarSantiago/dsh-git-graph

安装后打开会话,在界面中选择 Git graph;若插件管理器提示重载,按指引操作即可。

社区目录页:https://www.skillhub.cn/plugins/EdgarSantiago/dsh-git-graph。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,listing 以站点扫描与审核为准,README 亦说明 Plugin Hub 内 listing 额外要求 npm 包,本仓库不声称已通过社区验证。

典型用法

README 中的日常流程可直接照做:

  1. 选择仓库。 当前 workspace 内仓库会自动列出;可用 Find repositories 重新扫描,或用 Open repository 显式添加目录。
  2. 查看历史。 按分支/tag 筛选,或按 message、author、hash 搜索;点击提交查看详情。
  3. 对比提交。 在某次提交详情中选 Compare,再选另一条提交。
  4. 审阅变更。 展开 Changes,查看 diff,可单选或批量选择文件。
  5. 确认写入。 在确认对话框中核对仓库、操作与文件后再执行。

若在面板外改动了文件或 refs,使用 Refresh;Refresh 也会重新扫描仓库列表。

操作可用性(节选):存在 unstaged/untracked 时可 Stage all;有 staged 文件时可 Unstage all;有本地改动时可 Commit(需先 stage 或在提交对话框勾选 Stage all files before committing)。Fetch / Pull / Push 在工作区干净时仍可用。加载或执行操作过程中按钮会禁用。

Workspace 隔离与安全注意

发现逻辑会检查 workspace 根目录及其下最多 两级 子目录(含同级仓库、嵌套仓库与 Git worktree)。单次扫描上限为 300 个目录、20 个仓库;隐藏目录、过重目录与外部符号链接会跳过。

显式打开的目录与当前选中仓库仅在该 workspace 下记忆;切换 workspace 会取消进行中的请求并清空详情与确认框。空 workspace 不会沿用全局记忆、不会自动爬上其他项目的 Git 根目录,也不会自动 git init。

权限方面:插件以当前 DSH 进程权限读取历史、refs、配置、状态与 diff;经确认的操作可修改工作区文件、索引与 refs。Restore/discard 可能丢失本地改动,push 会发布提交,务必看清确认对话框。安装前建议阅读 GitHub 源码 与 MIT 许可证。Git 通过 execFile 与参数数组执行,不使用 shell 拼接;fetch/pull/push 走本机 remote 与凭据配置。UI 与提交信息启发式不调用额外 AI 服务;插件 README 写明无遥测端点与自动自更新。

兼容性与限制:Live 开发与注册在 macOS 上做过验证,其他操作系统 GUI 未声明认证。历史一次仅支持一个分支筛选,图最多 八条 视觉车道;无自动轮询,外部变更靠 Refresh。星标数等动态指标以你访问 GitHub 时页面为准(抓取时仓库星标为 0)。

结尾

dsh-git-graph 适合需要在 Harness 对话内完成「看历史—看 diff—确认后写 Git」闭环的开发者:仓库范围绑在 workspace,写操作统一走确认,与 Agent 工具共用安全执行路径。进一步了解可查看社区目录页与仓库 README:

  • 目录页:https://www.skillhub.cn/plugins/EdgarSantiago/dsh-git-graph
  • GitHub:https://github.com/EdgarSantiago/dsh-git-graph
羽毛球分组比赛记分
小程序二维码

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

小夜