前言¶
DSH 的理念是「一切皆插件」,但实际工作中查看一次提交往往要来回切换:在 CLI 里跑 git log、在编辑器里看 diff、再到 Harness 会话里翻 AI 的修改记录。三者分散在不同界面,想知道「这次改动为什么发生、影响哪些文件、是哪次会话改的」并不轻松。下面介绍的插件 Gitlines 就是解决这个问题的:它作为独立的 Harness 插件运行,把提交图谱、提交概览、文件树与 Diff、会话追踪合并到一个侧栏面板里。
这是什么¶
Gitlines 是由 xiaowuDev 维护的社区插件,针对 DeepSeek Harness 0.2.1-rc.5 开发,MIT 许可,与 DeepSeek 官方无隶属关系。它解决的问题是:在浏览提交时先看到改动的原因、影响和上下文,需要核对代码时再打开文件树和 Diff,而不是先翻日志再看图。
核心功能¶
- 提交图谱:展示作者、分支、提交与父提交的关系,图例解释普通连线和合并。颜色只用于区分历史路径,不代表作者或固定分支。
- 提交概览:生成摘要、变更原因、影响范围、核心变更、上下文、依赖关系和相关文档。概览可以手动编辑,也可以让 AI 整理后保存。
- 文件树与 Diff:可折叠目录、文件筛选、统一与并排差异、面板拉伸。同时支持已提交和未提交文件。
- 会话追踪:查看同一文件在不同会话、不同回复中的成功编辑记录,保留具体调用的位置。来源记录和完整原会话各有入口。
- 流程标记:把目标、涉及文件、完成内容和后续事项归在一起。选择某个流程后可以回到原会话继续修改,保留已有草稿,由你发送。
- 文档中心:按分支和提交组织的可编辑本地归档。
- 本地运行:显示仓库相关的监听进程与端口,不包含测试结果面板。
安装与启用¶
本版本针对 DeepSeek Harness 0.2.1-rc.5,Harness API 尚未稳定,其他版本请先核对兼容性。Git 需要在本机可执行。
桌面版¶
- 打开 Harness 的 插件 → 添加插件。
- 粘贴固定版本的 GitHub 地址:
git+https://github.com/xiaowuDev/dsh-gitlines.git#v0.1.0
- 安装并启用 Gitlines。如果界面未刷新,重启 Harness。
- 在工作区中选择一个本地 Git 仓库,从侧栏打开 Gitlines。
也可以下载 v0.1.0 Release 中的 dsh-gitlines-0.1.0.tgz,通过添加插件入口安装。发布包已包含构建产物,安装时不需要构建插件。
CLI / Web¶
在已经安装 dsh 的环境中执行:
dsh plugin add 'git+https://github.com/xiaowuDev/dsh-gitlines.git#v0.1.0'
注意:Desktop 的插件由 Desktop 自己管理,不要用 CLI 修改它的专用 profile。
典型用法¶
了解一次提交¶
提交图谱 → 选择提交 → 概览 → 请 AI 整理概览。AI 读取该提交的事实与当前版本后保存,完成后自动更新概览。
审阅未提交修改¶
未提交变更 → 展开目录 → 查看 Diff → 会话追踪。需要区分清楚:会话历史只表明某个会话曾编辑过文件,它不等于当前 Diff 每一行的作者归属。
继续一个流程¶
流程标记 → 选择流程 → 带入 AI 继续修改。插件重新打开原会话并准备包含流程 ID 的草稿,不自动发送,也不创建替代会话。缓存是否命中仍取决于模型与提供方。
AI 工具¶
插件通过以下工具与 AI 交互,聊天回答不会自动被当作已保存概览,必须成功调用保存工具:
| 工具 | 用途 |
|---|---|
gitlines_history |
读取本地提交历史 |
gitlines_read_commit |
读取提交、变更文件与当前概览版本 |
gitlines_read_file_diff |
读取指定文件差异 |
gitlines_read_document |
读取该提交中的相关文档 |
gitlines_update_overview |
按 expectedRevision 保存概览 |
gitlines_checkpoint_workflow |
保存一个已完成阶段及其文件、上下文和会话位置 |
gitlines_read_workflows |
读取流程与前序流程 |
gitlines_file_history |
查看一个文件的会话编辑历史 |
并发修改使用版本检查,冲突会明确返回。
数据落在哪里¶
概览和流程标记写在当前仓库内的 gitlines/ 目录,按分支(编码后)和提交 SHA 组织:
your-repository/
└── gitlines/
├── <encoded-branch>/
│ └── <full-commit-sha>/
│ ├── overview.json
│ ├── overview.md
│ └── evidence.json
└── .workflows/
└── <workflow-id>.json
这些归档是否纳入 Git 由你决定;卸载插件不会删除它们,需要删除时请先备份。
适用场景与注意¶
适合用 DSH 做代码改动、需要频繁核对提交历史与 AI 编辑记录的开发者。使用前注意几点:
- 权限边界:插件 Host 代码在 Harness 进程中执行,AI 归档写入遵守 Harness 当前的 cwd 权限与只读模式。Git 查询是只读的,插件不会 fetch、checkout、提交或推送,也不会修改暂存区。
- 数据流向:插件不收集遥测、不提供独立云端服务。你明确请求 AI 处理时,相关上下文会经 Harness 发送给当前配置的模型提供方。
- 归属局限:外部编辑器、Shell 命令以及插件安装前没有保留的编辑记录,不能可靠归属到某个会话,会话追踪只记录有成功编辑证据的部分。
- 依赖图精度:依赖图来自 manifest 声明,不代表完整运行时调用关系;大仓库和会话历史受读取上限约束,截断会明确标出。
- 平台依赖:本地监听进程发现使用
lsof,不支持的平台会显示没有观测到运行项。 - 装机前检查:插件以当前 dsh 进程权限运行,安装前建议先查看源码与许可证,核对是否满足你的合规要求。
卸载与本地开发¶
在 Harness 的 插件 页面禁用或移除 Gitlines,按提示重启即可。本地开发使用以下命令:
npm ci
npm run typecheck
npm test
npm run build
源码位于 src/,构建脚本位于 scripts/build.mjs,插件组合入口为 cordis.patch.yml。lib/ 随版本提交,保证从 GitHub 安装时无需执行构建。修改源码后请重新构建并一并提交产物。
结语¶
Gitlines 的价值在于把「提交 → Diff → AI 修改记录」这条信息链收进同一个面板,让审阅和推进改动的上下文不再割裂。它是社区项目,Star 数和功能成熟度都还需自行评估。
- 目录页:https://www.skillhub.cn/plugins/xiaowuDev/dsh-gitlines
- GitHub:https://github.com/xiaowuDev/dsh-gitlines
生态信息以上述社区目录和仓库为准。