Gitlines:把 Git 提交、Diff 和 AI 修改記錄放進同一個 DSH 工作臺

前言

DSH 的理念是「一切皆插件」,但實際工作中查看一次提交往往要來回切換:在 CLI 裏跑 git log、在編輯器裏看 diff、再到 Harness 會話裏翻 AI 的修改記錄。三者分散在不同界面,想知道「這次改動爲什麼發生、影響哪些文件、是哪次會話改的」並不輕鬆。下面介紹的插件 Gitlines 就是解決這個問題的:它作爲獨立的 Harness 插件運行,把提交圖譜、提交概覽、文件樹與 Diff、會話追蹤合併到一個側欄面板裏。

這是什麼

Gitlines 是由 xiaowuDev 維護的社區插件,針對 DeepSeek Harness 0.2.1-rc.5 開發,MIT 許可,與 DeepSeek 官方無隸屬關係。它解決的問題是:在瀏覽提交時先看到改動的原因、影響和上下文,需要覈對代碼時再打開文件樹和 Diff,而不是先翻日誌再看圖。

核心功能

  1. 提交圖譜:展示作者、分支、提交與父提交的關係,圖例解釋普通連線和合並。顏色只用於區分歷史路徑,不代表作者或固定分支。
  2. 提交概覽:生成摘要、變更原因、影響範圍、核心變更、上下文、依賴關係和相關文檔。概覽可以手動編輯,也可以讓 AI 整理後保存。
  3. 文件樹與 Diff:可摺疊目錄、文件篩選、統一與並排差異、面板拉伸。同時支持已提交和未提交文件。
  4. 會話追蹤:查看同一文件在不同會話、不同回覆中的成功編輯記錄,保留具體調用的位置。來源記錄和完整原會話各有入口。
  5. 流程標記:把目標、涉及文件、完成內容和後續事項歸在一起。選擇某個流程後可以回到原會話繼續修改,保留已有草稿,由你發送。
  6. 文檔中心:按分支和提交組織的可編輯本地歸檔。
  7. 本地運行:顯示倉庫相關的監聽進程與端口,不包含測試結果面板。

安裝與啓用

本版本針對 DeepSeek Harness 0.2.1-rc.5,Harness API 尚未穩定,其他版本請先覈對兼容性。Git 需要在本機可執行。

桌面版

  1. 打開 Harness 的 插件 → 添加插件。
  2. 粘貼固定版本的 GitHub 地址:
   git+https://github.com/xiaowuDev/dsh-gitlines.git#v0.1.0
  1. 安裝並啓用 Gitlines。如果界面未刷新,重啓 Harness。
  2. 在工作區中選擇一個本地 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 編輯記錄的開發者。使用前注意幾點:

  1. 權限邊界:插件 Host 代碼在 Harness 進程中執行,AI 歸檔寫入遵守 Harness 當前的 cwd 權限與只讀模式。Git 查詢是隻讀的,插件不會 fetch、checkout、提交或推送,也不會修改暫存區。
  2. 數據流向:插件不收集遙測、不提供獨立雲端服務。你明確請求 AI 處理時,相關上下文會經 Harness 發送給當前配置的模型提供方。
  3. 歸屬侷限:外部編輯器、Shell 命令以及插件安裝前沒有保留的編輯記錄,不能可靠歸屬到某個會話,會話追蹤只記錄有成功編輯證據的部分。
  4. 依賴圖精度:依賴圖來自 manifest 聲明,不代表完整運行時調用關係;大倉庫和會話歷史受讀取上限約束,截斷會明確標出。
  5. 平臺依賴:本地監聽進程發現使用 lsof,不支持的平臺會顯示沒有觀測到運行項。
  6. 裝機前檢查:插件以當前 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

生態信息以上述社區目錄和倉庫爲準。

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

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

小夜