dsh-git-graph-view:在 DSH 會話頁只讀查看 Git 提交圖譜

前言

用 DeepSeek Harness(DSH)做智能體開發時,會話往往綁定一個工作區目錄。要弄清分支從哪分叉、HEAD 指哪、某次提交改了什麼,常見做法是切到終端跑 git log --graph,或在 IDE 裏開 Git 歷史面板。DSH Web GUI 本身不自帶這類可視化。社區插件 dsh-git-graph-view(維護者 LUOZIR)在會話視圖裏增加 「Git 圖譜」 標籤,把當前(或任選已註冊)工作區的提交 DAG 畫成泳道圖,並支持點選查看提交詳情;全程只讀,不寫倉庫。

下面介紹插件定位、能力、安裝方式與使用要點。事實以 GitHub 倉庫 README 爲準;當前文檔記載的最新版本爲 v0.2.1,許可證 MIT,依賴 DSH 0.2.1 系列(開發與驗證於 0.2.1-rc.5 桌面版)。

這是什麼

dsh-git-graph-view 是 DSH 的 雙半體 bundle 插件(dsh.bundle.patch + dsh.client):宿主 Node 半體通過只讀 git 命令拉取數據,瀏覽器 client 半體在官方 conversation.view 槽位註冊標籤頁,渲染彩色泳道、分支/標籤/遠程引用與詳情抽屜。分類上屬於 客戶端 向能力;在 SkillHub 插件目錄 可查到條目(社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

插件只執行 git rev-parse、status、log、show、diff-tree 等讀操作;不切分支、不建 worktree、不寫倉庫。Host 半體僅使用 Node 內置模塊,client 半體無額外 npm 運行時依賴,React 由 DSH 宿主提供。

核心功能

會話頁「Git 圖譜」標籤

標籤 order=6,位於「對話」(0)與「軌跡」(10)之間,欄位示意:對話 | Git 圖譜 | 軌跡。

頭部與工具條

頭部展示倉庫圖標塊、倉庫名、當前分支或游離 HEAD、變更/衝突/ahead-behind 狀態膠囊,以及工作區下拉、刷新、回到 HEAD。工具條支持按 subject、作者、sha、ref 搜索提交(不匹配行會淡化),並顯示「N 個提交 · M 分支 · K 標籤」摘要。

提交列表與泳道

列表行高約 46px(兩行佈局):SVG 泳道表達分叉、合流、八爪魚合併、被截斷的父提交;refs chip 區分 HEAD、本地分支、遠程分支、標籤;每行含 subject、作者、相對時間、短 sha。支持 hover/選中強調、骨架屏加載,以及 ↑/↓/Enter/Esc 鍵盤導航。

工作區切換

工作區列表來自 DSH 已註冊工作區。若當前會話工作區不是 Git 倉庫,界面會給出空態,並可通過下拉切換到其他已註冊倉庫查看圖譜。

提交詳情抽屜

右側約 380px 寬、可獨立滾動:完整 commit message、作者頭像/郵箱/時間、完整 sha(可複製)、可點選的父提交、合併標記、文件狀態色塊與 +/- 統計;左側列表滾動與右側詳情互不影響。

分頁與刷新

默認加載 200 條提交,「加載更多(+200)」最多到 1000 條;約 20 秒內存緩存;窗口重新聚焦時自動刷新。明暗主題跟隨 DSH 的 data-ds-dark-theme;中英文案隨頁面語言切換。對非 Git 倉庫、未註冊工作區、git 缺失、超時、宿主路由不可用等情形有明確空態與錯誤態。

安裝與啓用

安裝前請自行審閱 GitHub 源碼 與 LICENSE。插件以當前 DSH 進程權限在工作區上執行只讀 git;僅安裝 tgz 而不讀源碼時,也應至少確認許可證與行爲說明。

方式 A:web profile(源碼 checkout 運行 Harness)

適用於本地以 web profile 跑 DSH 的用戶:

dsh plugin --profile web add github:LUOZIR/dsh-git-graph-view#main
# 安裝後重啓 web:dsh web

鎖定版本可將 #main 換成 tag,例如 #v0.2.1。Release 頁提供 dsh-git-graph-view-0.2.1.tgz 直接下載。

方式 B:DSH Desktop(推薦 GUI 安裝)

  1. 打開 DSH Web GUI → 設置 →「插件」分區(或側邊欄插件面板)→ 安裝;
  2. 粘貼來源之一:GitHub 倉庫 https://github.com/LUOZIR/dsh-git-graph-view,或本地目錄 / npm pack 生成的 .tgz 絕對路徑;
  3. 完全退出並重新啓動 DeepSeek Harness(bundle 層在啓動時合成)。

Desktop profile 由 Electron 應用獨佔,不要在桌面端使用 dsh plugin --profile desktop ...(會被拒絕)。

方式 C:手動安裝(GUI 不接受來源時)

會修改 $env:DSH_HOME 下 profile 目錄,請先備份。概要步驟:將 tgz 放入 profiles\desktop\vendor\,在 package.json 的 dependencies 與 dsh.profile.bundles 中登記 dsh-git-graph-view,解包到 node_modules 對應目錄後重啓。倉庫內 scripts/install-profile.ps1 封裝了部分步驟;可用 node scripts/validate-install.mjs 做只讀校驗。詳見 README「方式 C」全文。

環境要求

  • DSH 0.2.1 系列及官方 conversation.view / client-modules 雙半體機制;
  • 宿主 PATH 中需有 git(Windows 亦會探測 C:\Program Files\Git\cmd\git.exe);
  • 僅運行插件不需要 Node;開發/測試需 Node 20.11+。

典型用法與驗證

經過上面的安裝並重啓 DSH 後,可按 README 建議做快速驗證:

  1. 可選:檢查宿主啓動標記 %TEMP%\dsh-git-graph-view-boot.json(host 半體 apply 時寫入版本/路由/時間);
  2. 打開任意會話,標籤欄應出現「Git 圖譜」;
  3. 若當前工作區非 Git 倉庫,使用工作區下拉切到已註冊的 Git 工作區,應看到完整圖譜;
  4. 點擊一行提交,右側詳情抽屜展示 message、作者與文件列表;左右滾動區域獨立;
  5. 啓動異常時查看 $env:DSH_HOME\logs\startup-*.log,並按 README 回滾說明處理。

日常使用中:在頭部確認分支與 dirty/ahead-behind 狀態,用搜索框定位提交,用「加載更多」擴展歷史深度;需要回到當前檢出版本時用「回到 HEAD」。數據經宿主 HTTP API(前綴 /git-graph-view)獲取,瀏覽器側不直接跑 git。

架構與安全(簡要)

Host 半體註冊 /git-graph-view 路由,經 信任閘(loopback、Origin 一致等)與 工作區閘(path 的 realpath 必須屬於已註冊工作區)後,用 execFile 調用 git(無 shell,GIT_TERMINAL_PROMPT=0)。主要 POST 接口包括 /graph、/commit、/workspaces;響應用 {ok, value} / {ok, error} envelope。詳細契約見倉庫 docs/CONTRACT.md,視覺規範見 docs/DESIGN.md(使用 --dsw-font-*、--dsw-radius-* 等官方 theme 令牌)。

適用場景與注意

適合:在 DSH 會話裏快速對照 Agent 改動與 Git 歷史,不想離開 Web GUI 或頻繁切終端/graph 命令的用戶;需要在多個已註冊工作區之間切換查看圖譜的場景。

注意:圖譜爲 只讀 視圖,不能替代 git checkout、合併、推送等寫操作。Desktop 與 web profile 安裝路徑不同,勿混用 CLI profile。社區插件 star 數與版本以倉庫與目錄頁爲準;本文不寫未在資料中出現的用戶案例或反饋數據。

結尾

dsh-git-graph-view 把 DSH 工作區的提交 DAG、引用與提交詳情收進會話頁的一個標籤,並與官方主題和非聊天視圖外殼對齊。需要安裝來源與 API 細節時,請直接查閱倉庫 README 與 release。

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

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

小夜