在 DeepSeek Harness 中進行智能體開發時,頻繁查看倉庫變更、提交代碼或切換分支往往需要跳轉到終端或外部工具,打斷開發流。dsh-sidebar-git 是一個原生集成在右側欄的 Git 插件,它跟隨當前會話的倉庫,提供變更查看、暫存提交、分支切換及遠端同步等功能,讓 Git 操作不離開會話頁面。
核心功能¶
- 原生右側欄頁籤:註冊爲
sidebar-git類型,與聊天、終端等並列,不依賴第三方 UI 庫,使用 DSH 內置組件庫渲染。 - 跟隨會話綁定:默認自動解析當前會話的工作目錄(
cwd),支持手動改綁。當會話不在倉庫內時,提供空態表單進行綁定。 - 變更查看:分組展示已暫存、未暫存及未跟蹤文件。支持行內展開 diff,顯示增刪行着色及文件統計。
- 提交與推送:底部卡片式提交框,支持
amend上一次提交。推送與拉取僅支持--ff-only模式。 - 分支與 Stash 管理:支持分支切換、新建、刪除及推拉操作。Stash 支持存入、彈出、應用與刪除。
- 危險操作分級:對於破壞性操作(如刪除分支),採用
prepare -> confirm機制,防止誤觸。 - 狀態實時感:輪詢
/overview接口,實時聚合分支狀態與文件變更。
安裝與啓用¶
安裝腳本會自動處理軟鏈、依賴掛載及清理舊版腳本,無需使用 dsh plugin add。
node tools/install-into-profile.mjs
如需臨時停用而不卸載,編輯 profile 的 cordis.patch.yml,添加 disabled: true。
- id: sidebar-git
name: dsh-sidebar-git
disabled: true
典型用法¶
- 查看變更:打開 Git 頁籤,即可看到當前的文件變更列表。點擊行可以展開查看具體的 diff 內容。
- 手動綁定路徑:如果當前會話不在任何倉庫目錄中,頁面會顯示空態,直接在輸入框中填入倉庫路徑並確認即可綁定。
- 切換分支:在分支頁籤點擊頂部的分支 chip 進行切換,或點擊新建按鈕創建並切換新分支。
- 提交代碼:在底部的提交卡片填寫信息,提交後可點擊推送到遠端,或從遠端拉取代碼。
安全與邊界¶
- 插件不提供任意 Git 命令輸入框,也不進行 shell 拼接或參數模板注入。
- 明確不做
reset --hard、clean、push --force(非 lease)、cherry-pick、rebase及 merge 衝突解決 UI。 - 憑據完全交給用戶自己的 git credential helper,插件不讀、不存、不傳任何憑據。
pull操作固定爲--ff-only,若需要 merge 或 rebase,會給出終端指引。- 併發設計上,Agent 與本插件都能改工作區,以實時 status 爲準。
結語¶
dsh-sidebar-git 提供了一個在 DSH 環境內完成基礎 Git 流程的輕量級方案。它通過嚴格的操作分級和參數校驗,在便利性與安全性之間取得了平衡。