在 DeepSeek Harness (DSH) 的開發場景中,代理需要頻繁與 Git 倉庫交互。傳統的命令行工具缺乏可視化反饋,而 DSH 原生的工具調用往往較爲底層。dsh-git-manager 插件提供了一個 GitHub 連接的可視化 Git 管理器,它通過引導式的 GitHub-Flow 步驟、提交圖以及結構化的工具接口,將 Git 操作與 DSH 代理緊密結合。
介紹¶
dsh-git-manager 是一個專注於 GitHub 工作流的可視化面板插件。它不僅提供圖形化的分支管理和變更視圖,還向代理暴露了結構化的 Git 和 GitHub 工具(如 git_status、github_pr_create 等)。該插件由 Dayi-Z 維護,在 2.0.0 版本中從 gitcompass 重命名而來。
核心功能¶
該插件主要包含以下模塊化能力:
1. 工作流引導與可視化管理¶
- Guided Flow Strip:頂部提供可視化的步驟指示器,展示 GitHub-Flow 的完整階段:分支 → 提交 → 推送 → PR → 審查 → 合併。
- Commit Graph:提供類似 GitLens 的泳道可視化視圖,採用 3 列布局(泳道 / SHA / 提交信息),支持 PR 徽章、變基和回滾操作。
- Branch Management:支持查看、切換、創建、刪除、重命名本地/遠程分支,支持獲取和檢出遠程分支。
- Changes View:展示文件狀態(已暫存/未暫存/未跟蹤),支持暫存/取消暫存、提交、差異查看(點擊文件查看變更)、暫存/彈出以及推送/拉取/獲取。
2. PR 與 Issues 管理¶
- PR Management:支持 PR 列表查看、詳情瀏覽(含檢查項、審查、評論)、創建 PR、Squash 合併、審查(通過/要求修改/評論)以及添加評論。
- Issues:支持 Issues 的列表、詳情查看、創建新 Issue 以及添加評論。
3. GitHub 集成與 Agent 工具¶
- GitHub Integration:支持設備流 OAuth 登錄、PAT 輸入、複用
ghCLI 配置以及加密令牌存儲(Windows 上使用 DPAPI)。 - Structured Git Tools:爲模型側提供結構化接口,包括
git_status、git_diff、git_branches、git_commit、git_push以及github_pr_*、github_issue_*系列工具。 - Agent Activity Monitor:提供實時的 SSE 流,監控代理的每一次工具調用(開始/完成/失敗),並作爲倉庫觀察者檢測在插件工具之外執行的 Bash Git 操作(如新提交、分支切換)。
4. 權限與 UI 交互¶
- In-Panel Approvals:所有寫操作會在面板內彈出審批卡片,允許直接批准或拒絕。此面板審批會與 DSH 原生模態框競爭(先決斷生效),且不受任何審批策略(如
never全訪問策略)的自動拒絕影響。 - 主題與國際化:面板樣式完全遵循 DSH 主題令牌(無獨立調色板),支持自動跟隨 DSH Web 的語言環境(中文/英文)。
安裝與啓用¶
安裝該插件需要使用 DSH 的插件安裝命令:
dsh plugin --profile web add dsh-git-manager
安裝完成後,重啓 dsh web。打開一個綁定到 Git 倉庫的會話,”Git Manager” 面板將出現在右側列中。
雙宿主模式與自動註冊¶
插件支持兩種宿主模式:
- Sidebar 模式:當安裝了
dsh-better-sidebar插件時,dsh-git-manager會註冊爲一個側邊欄標籤頁 (dsh-git-manager:panel),並放棄自己的列,轉而由側邊欄承載。 - Dock 模式:當沒有
dsh-better-sidebar時,插件保持獨立的右側列卡片,支持摺疊(摺疊後停止後臺輪詢)。
插件會自動根據 tools/execute 的路徑參數註冊倉庫(最多 20 個),並在面板底部的兩行狀態欄中顯示當前會話文件夾和正在編輯的倉庫路徑。
注意事項¶
- 版本更新:插件在 2.0.0 版本中完成了從
gitcompass的重命名,涉及包 ID (dsh-git-manager)、HTTP 路由 (/gitm/*) 和 CSS 變量 (--gm-*) 的遷移。 - 審批機制:面板內的審批是內存單次生效的,若沒有面板連接,寫操作將快速失敗並提示打開面板或預先審批,不會出現長時間掛起。
- 主題適配:面板 UI 使用 DSH 主題令牌,無獨立配色方案,因此與 DSH 的皮膚系統完全兼容。