dsh-git-graph:在 DeepSeek Harness 中可視化 Git 提交圖

前言

DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在 Web GUI 中進行代碼審查或歷史追溯時,缺乏直觀的提交圖往往需要頻繁切換到終端執行 git log 命令。dsh-git-graph 插件解決了這一痛點,它將 GitKraken / vscode-git-graph 風格的提交圖直接嵌入到 DSH 的會話卡片中,讓助手可以在對話上下文中直接展示、查看和操作 Git 歷史。

插件介紹

這是一個運行在 DeepSeek Harness (dsh) web GUI 裏的可視化插件。它通過在會話中渲染交互式卡片,將 Git 的分支、合併和標籤泳道圖形化。用戶可以直接點擊卡片中的提交節點,查看文件的變更詳情和着色的 diff,而不需要離開瀏覽器界面。

核心功能

該插件主要提供三個核心能力:

  1. 提交 DAG 圖

    • 繪製邏輯:使用 git log --all --topo-order 命令繪製(默認最近 500 條,可調至 2000)。
    • 連接規則:首個父提交同列直連,合併父提交曲線連接;窗口外的父提交畫成開口箭頭。
    • 視覺標識:自動分配泳道,分支/標籤用彩色 pill 標註在提交右側,HEAD 用高亮環標記。
  2. 提交詳情

    • 交互方式:點擊任意一行提交記錄。
    • 展開內容:顯示作者、郵箱、時間、父提交信息、完整哈希(支持一鍵複製)。
  3. diff 卡片

    • 觸發機制:通過執行 git_show 工具。
    • 渲染內容:直接在會話中展示變更文件列表(包含 A/M/D/R 狀態徽章)以及綠加紅減的完整補丁(超長內容自動截斷)。
  4. 只讀安全

    • 插件提供的 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-* 變量,會自動適配宿主的亮/暗色主題。

結尾

dsh-git-graph 將 Git 可視化能力無縫集成到了 DeepSeek Harness 的對話流中,減少了上下文切換的開銷。如果你正在使用 DSH 進行代碼輔助開發,這個插件能顯著提升對代碼歷史的理解效率。

目錄頁:dsh-git-graph on SkillHub
源碼地址:dsh-git-graph on GitHub

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

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

小夜