DeepSeek Harness Hub
← 返回列表

Git 提交链图ShinonomeAya/dsh-git-chain

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

以泳道图查看提交拓扑、Diff 并安全切换分支

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/27 · 已提供中文文档

DeepSeek Harness 插件:Cursor 风格的 Git 提交链图谱,带 SVG 泳道、提交详情、差异、过滤以及受保护的分支切换。

综合分
28.7
GitHub 分
28.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ShinonomeAya/dsh-git-chain
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-workspace
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-git-chain

English · 中文

面向 DeepSeek Harness(DSH) 的 Git 提交图插件。它把仓库历史呈现为可读的 SVG 泳道图,并在同一个侧边栏工作流中提供提交详情、完整 Diff、范围过滤和受保护的本地分支切换。

当前版本:0.1.1 · Stable · GitHub Release · MIT License

为什么使用 dsh-git-chain

- 看清提交拓扑:用连续泳道、节点、merge 汇入线和分支出线表达真实的 Git DAG。
- 保持工作流连贯:优先显示在 dsh-better-sidebar 中;没有该基座时回退为输入栏芯片和浮动面板。
- 从查看到定位:点击提交即可查看作者、父提交、变更文件和懒加载的 unified Diff。
- 安全地切换分支:切换前检查冲突、进行中的 Git 操作、其他 worktree 和可能被覆盖的文件。
- 适配不同阅读方式:支持全部 refs、当前分支、指定本地分支和 first-parent 主线;支持中文/英文界面。

当前版本是 0.1.1 Stable;已在 Windows 11 + DSH Desktop 2.0.2.0 的固定 profile 完成安装、升级、卸载、重装和 fallback 验收。其他 DSH/OS 组合请先参考兼容性矩阵。

界面预览

完整链路展示分支泳道、merge 节点、当前分支和 refs;“仅主线”聚焦当前 HEAD 的第一父链。

功能

Git 历史与过滤

- 使用 Git CLI 获取带父关系和 decorations 的拓扑排序历史。
- 查看全部 refs、当前分支或指定本地分支的服务端范围。
- 使用 first-parent 查看当前 HEAD 的主线视图,同时保留 merge 元数据。
- 在已加载的历史窗口内按主题、作者、引用或 commit OID 即时过滤。
- 固定行高、虚拟滚动和可识别的 lane identity,适合较长的提交列表。

提交详情与 Diff

- 展示作者、提交者、时间、父提交和变更文件。
- 用文件状态徽标和增删行数快速定位变化。
- 按需加载 unified Diff;Host 对单次输出设置 1 MB 上限,避免大变更占满界面。

分支切换与刷新

- 列出当前工作区的本地分支,并同步当前分支勾选状态。
- 使用 git switch --no-guess,不会隐式创建或猜测远端分支。
- Host 通过 SSE 推送外部 Git 变化,窗口重新聚焦时也会节流刷新。

安装

从源码安装到 DSH

环境要求:

- DSH >= 0.1.1-rc.1
- Node.js >= 22.19.0
- Git,且已加入系统 PATH

git clone https://github.com/ShinonomeAya/dsh-git-chain.git
cd dsh-git-chain
pnpm install
pnpm run build
dsh plugin --profile desktop add link:/absolute/path/to/dsh-git-chain

重新启动 DSH,使 Host 侧插件和 bundle patch 生效,然后打开侧边栏中的 Git 链路图。

卸载:

dsh plugin --profile desktop remove dsh-git-chain

Windows PowerShell 示例:

dsh plugin --profile desktop add link:F:\path\to\dsh-git-chain

将上面的路径替换为你的本地 checkout 路径。

开发与验证

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
node scripts/browser-smoke.mjs

当前仓库的发布前验证包括:双工程类型检查、55 个单元/集成测试、Host/Client 构建,以及真实 Chromium 中的完整链路、first-parent、详情、Diff、过滤、分支菜单、fallback 和响应式检查。smoke 截图输出到 smoke/。

公开协作:贡献指南 · 安全策略 · 变更记录 · 兼容性矩阵 · 社区收录准备计划 · 固定包生命周期计划

技术架构

DSH Web GUI                         DSH Host
┌──────────────────────────┐       ┌─────────────────────────────┐
│ better-sidebar tab       │ HTTP  │ workspace-gated Git service │
│ 或 fallback 浮动面板      │ ────► │ /git-chain/* JSON + SSE      │
│ React + SVG graph        │       │ Node + ctx.subprocess + Git  │
└──────────────────────────┘       └─────────────────────────────┘

- Host:通过 ctx.subprocess 调用 Git CLI,提供 workspace、status、branches、graph、show、diff 和受守卫的 switch 能力。
- Client:React 面板负责 SVG 泳道、节点交互、虚拟滚动、过滤和详情联动。
- 布局:纯函数布局快照携带 lane identity、节点类型、merge edge、窗口边界和节点入边语义,避免线路断开或因列变化错色。
- 构建:tsdown 分别输出 Host bundle 和浏览器 Client bundle,符合 DSH 的双面 Cordis 插件装配方式。

安全边界

- Git 路由只接受 DSH 已注册 workspace,并进行真实路径校验。
- 默认只接受 loopback 请求;配对设备放行仍需额外信任凭据。
- 变更接口要求 application/json。
- 分支名和 commit OID 在进入 Git 命令前经过白名单校验;命令使用 argv,不拼接 shell 字符串。
- 分支切换遇到冲突、进行中的操作、其他 worktree 或文件覆盖风险时会拒绝执行。

已知限制

- 文本过滤目前只作用于已加载窗口;subject、author、文件级的全历史服务端搜索仍在路线图中。
- 图布局采用最小泳道策略,少数复杂菱形 merge 可能出现轻微曲线重叠。
- 虚拟滚动窗口上下缘会对泳道进行截断,并通过 overscan 减少视觉跳变。
- 单次完整 Diff 输出上限为 1 MB。

路线图与反馈

后续计划包括父链 hover 高亮、键盘导航、提交比较、服务端全文查询、分页和增量更新。详细的同类项目调研、架构取舍和分阶段计划见 docs/ROADMAP.md。

欢迎通过 GitHub Issues 反馈问题或提交改进建议。涉及安全问题,请不要在公开 Issue 中发布敏感信息。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群