前言¶
DeepSeek Harness (DSH) 的插件化架構允許開發者擴展 Web 端能力。在本地開發過程中,頻繁切換終端查看 Git 狀態或查看提交歷史會影響效率。@wongzexu/dsh-git-status 插件直接在 DSH Web 界面右側提供 Git 狀態浮窗,將 commit DAG 泳道圖、未提交改動、stash 以及分支操作集成到編輯器或對話界面的側邊,減少上下文切換。
是什麼¶
@wongzexu/dsh-git-status 是一個獨立運行的 Git 狀態插件,專爲 DSH Web 端設計。它通過右緣浮窗展示 Git 倉庫狀態,核心能力包括 commit DAG 泳道圖渲染、未提交改動分類、stash 管理、行內 diff 查看以及完整的分支/遠程操作。
插件由 Wongzexu 維護,基於 MIT 許可證開源,零第三方依賴(無 React、無構建產物依賴)。
安裝與依賴¶
使用該插件前,需確保環境滿足以下條件:
1. DSH web 端已安裝並運行。
2. 系統已安裝 git 命令行工具(插件通過系統 git 執行所有操作)。
安裝插件:
dsh plugin --profile web add @wongzexu/dsh-git-status
啓用插件:
1. 重啓 DSH web 服務。
2. 打開 DSH Web 頁面,進入設置頁的“插件”面板,確認 @wongzexu/dsh-git-status 已啓用。
核心功能¶
該插件提供以下主要功能:
-
浮窗交互
面板支持拖拽移動,位置會自動記憶。右上角設有懸浮開關按鈕,關閉後可重新展開。 -
Commit DAG 泳道圖
使用網格制 SVG 渲染。第一父鏈成線,列分配採用貪心最左算法,泳道支持複用。合併提交會有連線,HEAD 處顯示加粗圓點。 -
Refs 徽標
顯示 HEAD(游離)、分支(金色)、遠程(藍色)、標籤(綠色)。支持同名本地/遠程分支合併顯示,或同一分支有多個遠程時的計數摺疊。 -
未提交改動虛擬行
當工作區有改動時,圖頂部會插入虛擬行,用空心圓和灰色虛線連接 HEAD。分類顯示未暫存和已暫存的文件處數,點擊展開詳情。 -
暫存與提交
提供暫存全部、貯藏未提交改動、放棄全部未提交(包含未跟蹤文件)的操作。支持提交已暫存內容或修訂上一條提交,多行提交信息使用快捷鍵提交。 -
Stash 顯示與操作
stash 節點以雙層圓和徽標顯示在圖中。支持展開詳情、應用、彈出、從 stash 創建分支及刪除操作。 -
行內展開詳情
點擊 commit 行可展開提交信息、變更文件列表及逐文件的 diff 詳情。 -
分支操作
右鍵本地分支徽標可進行切換、合併(支持 NoFF/Squash)、重命名、刪除(含強制刪除)。支持變基、重置到指定提交、創建 tag。 -
遠程操作
支持一鍵拉取所有遠程倉庫(git fetch --all)。右鍵遠程分支可創建本地分支並檢出,或進行刪除操作。推送支持 normal、force-with-lease 和 force 模式。 -
衝突處理
顯示未解決衝突以及合併/rebase 進行中的狀態。提供中止/繼續操作入口。 -
即時刷新
通過 SSE 訂閱/git/events實現即時刷新,斷連時自動切換至 10s 輪詢兜底。
使用方法¶
安裝並啓用後,進入任意聊天視圖:
-
展開浮窗
點擊面板右上角外側的分支圖標按鈕,展開「Git 狀態」浮窗。 -
查看詳情
點擊 commit 行可展開查看提交信息和 diff;右鍵 stash 徽標可應用或刪除;右鍵 commit 行可創建 tag 或在該提交基礎上創建分支。 -
分支與遠程操作
右鍵本地分支徽標可進行切換、合併、變基、重命名或刪除。右鍵遠程分支徽標可創建本地分支或拉取合併。點擊浮窗頭部的「⇣」按鈕可一鍵拉取所有遠程倉庫。 -
處理未提交改動
右鍵未提交改動虛擬行可暫存全部、貯藏改動或放棄全部未提交。右鍵 stash 徽標可應用、彈出或刪除。
注意事項¶
- 包名區分:npm 上存在同名但無作用域的包
dsh-git-status(非本插件),安裝時請認準@wongzexu/dsh-git-status。 - 環境依賴:插件依賴當前 DSH 進程所在的 git 倉庫。如果當前會話不是 git 倉庫,浮窗會顯示提示,需切換到倉庫目錄所在的會話。
- 權限與安全:插件通過系統 git 執行寫操作,請確保在可信環境中使用。
總結¶
@wongzexu/dsh-git-status 通過可視化浮窗將 Git 基礎操作直接集成到 DSH Web 界面中,減少了開發者查看狀態和執行常規 Git 命令的步驟。對於需要在 DSH 環境下進行高頻 Git 操作的開發者,該插件提供了較爲完整的 CLI 能力替代方案。