前言¶
DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在 Web GUI 中進行代碼審查或歷史追溯時,缺乏直觀的提交圖往往需要頻繁切換到終端執行 git log 命令。dsh-git-graph 插件解決了這一痛點,它將 GitKraken / vscode-git-graph 風格的提交圖直接嵌入到 DSH 的會話卡片中,讓助手可以在對話上下文中直接展示、查看和操作 Git 歷史。
插件介紹¶
這是一個運行在 DeepSeek Harness (dsh) web GUI 裏的可視化插件。它通過在會話中渲染交互式卡片,將 Git 的分支、合併和標籤泳道圖形化。用戶可以直接點擊卡片中的提交節點,查看文件的變更詳情和着色的 diff,而不需要離開瀏覽器界面。
核心功能¶
該插件主要提供三個核心能力:
-
提交 DAG 圖
- 繪製邏輯:使用
git log --all --topo-order命令繪製(默認最近 500 條,可調至 2000)。 - 連接規則:首個父提交同列直連,合併父提交曲線連接;窗口外的父提交畫成開口箭頭。
- 視覺標識:自動分配泳道,分支/標籤用彩色 pill 標註在提交右側,HEAD 用高亮環標記。
- 繪製邏輯:使用
-
提交詳情
- 交互方式:點擊任意一行提交記錄。
- 展開內容:顯示作者、郵箱、時間、父提交信息、完整哈希(支持一鍵複製)。
-
diff 卡片
- 觸發機制:通過執行
git_show工具。 - 渲染內容:直接在會話中展示變更文件列表(包含 A/M/D/R 狀態徽章)以及綠加紅減的完整補丁(超長內容自動截斷)。
- 觸發機制:通過執行
-
只讀安全
- 插件提供的
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-*變量,會自動適配宿主的亮/暗色主題。
- 默認取最近 500 提交(
結尾¶
dsh-git-graph 將 Git 可視化能力無縫集成到了 DeepSeek Harness 的對話流中,減少了上下文切換的開銷。如果你正在使用 DSH 進行代碼輔助開發,這個插件能顯著提升對代碼歷史的理解效率。