dsh-git-tree:在 DSH Web 對話裏掛上可拖拽的 Git 圖與提交 Diff 側欄

前言

用 DeepSeek Harness(DSH)寫代碼或審變更時,上下文往往在對話裏,而分支、合併點和提交歷史仍要切到終端或 IDE。若在 Web 對話同一屏看到當前倉庫的提交圖,並能點進某次提交的逐文件 diff,可以減少來回切換。下面介紹社區插件 dsh-git-tree(維護者 KiriuKazurei),它在 DSH Web 右上角提供可拖拽的 Git 圖 HUD,並在內置右側欄展示提交級 diff。

這是什麼

dsh-git-tree 是面向 DSH Web 的客戶端插件(分類:客戶端)。倉庫在 GitHub,社區目錄見 SkillHub 條目。插件在 DSH 0.2.1-rc.5 上開發;當前 package.json 版本爲 0.1.5,許可證 MIT。

它針對「當前對話工作目錄」對應的本地 Git 倉庫畫圖,不拉遠程歷史、不改分支、不寫文件;Host 需能在 PATH 裏調用 git,且對話的工作目錄必須落在要展示的那個倉庫內。

核心功能

README 中列出的能力如下,均屬本地只讀展示:

  • 在對話旁查看提交歷史,以及分支、合併(及 rebase)泳道。
  • 顯示當前分支、工作區是否髒、相對上游的 ahead/behind 數量、stash 數量。
  • 懸停提交可看到 hash、作者、時間、提交說明;點擊後在內置右側邊欄打開該提交,按文件展示 diff。
  • HUD 可拖拽或摺疊;位置和摺疊狀態保存在瀏覽器中。

開發說明中還提到:HUD 最多展示約 60 條提交,側欄明細最多約 240 條;體量很大的 diff 可能被截斷。

安裝與啓用

DSH 生態主張「一切皆插件」;SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。安裝方式以倉庫 README 爲準,不要使用未在文檔中出現的 dsh plugin add github:... 一類臆測命令。

用一條提示交給 Agent 安裝

將下面整句複製給能訪問你的 DSH Host 與 Profile 的 Agent:

Install and enable dsh-git-tree (https://github.com/KiriuKazurei/dsh-git-tree) in my active DSH profile by cloning it to a persistent local directory, using the bundled lib/ files and the DSH plugin_manager tool's install_bundle action with that directory as the target, and reusing any existing dsh-git-tree entry so the plugin is registered only once.

含義概括:把插件放到持久目錄,用 plugin_manager 的 install_bundle,target 指向含 package.json 的目錄(預構建產物在 lib/);若 Profile 裏已有 dsh-git-tree 登記項,應複用或替換,避免重複註冊。

手動安裝

  1. 將本倉庫 clone 或解壓 GitHub 源碼 ZIP 到可長期保留的目錄(lib/ 已含預構建的 Host/Web 文件)。
  2. 在目標 Profile 中調用 plugin_manager,action=install_bundle,target 設爲該目錄的絕對路徑(含 package.json 的那一層)。若已有手動登記的 dsh-git-tree,先複用或替換再註冊 bundle。
  3. 打開工作目錄位於 Git 倉庫內的 DSH Web 對話;啓用插件後刷新 Web 頁面,若 Host 未加載插件則重啓 DSH。

安裝前建議自行通讀源碼與 MIT 許可證:插件隨當前 DSH 進程權限運行,會透過 Host 讀取本地 Git 狀態。

典型用法

無需額外配置文件字段(資料中未列出獨立配置項)。啓用並按上節 reload 後:

  1. 在 DSH Web 中開啓對話,並將該對話的 working directory 設爲你的 Git 倉庫根或子目錄(仍須在倉庫內)。
  2. 右上角出現 Git 圖 HUD:可拖動、摺疊;查看當前分支與 dirty / upstream / stash 狀態。
  3. 在圖上懸停提交查看元信息,點擊某提交,右側欄打開逐文件 diff 供對照對話上下文。

插件不執行 git fetch、不切換分支;要看的仍是本機已有歷史。

適用場景與注意

適合:在 DSH Web 裏做 Code Review、對照 Agent 修改與最近提交關係、快速確認當前分支與工作區狀態的開發者。

不適合或需注意:

  • 工作目錄不在 Git 倉庫內時,無法展示目標圖。
  • Host 未安裝或未在 PATH 暴露 git 時,讀庫會失敗。
  • 不負責同步遠程;遠程-only 的提交若本地不存在則不會出現在圖中。
  • 大 diff 可能被截斷,細粒度審查仍可能需要本地 git show 或 IDE。

從 package.json 可見插件依賴 Node >=20,面向 web 客戶端,並注入 @deepseek-ai/dsh-client-ui-slots 與 @deepseek-ai/dsh-client-ui-sidebar-right;自行構建需 pnpm install、pnpm build(再生 lib/),測試爲 pnpm test。

結尾

dsh-git-tree 把本地 Git 提交圖和點擊即開的 diff 側欄嵌進 DSH Web,只讀、不改動倉庫,適合與對話並行看歷史與變更。更多說明見 GitHub 倉庫(含 簡體中文 README)與 SkillHub 目錄頁。

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

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

小夜