dsh-git-component:給 DeepSeek Harness WebUI 加一個 Git 面板

前言

用 DeepSeek Harness(DSH)的 WebUI 工作時,看當前倉庫改了什麼、提交、推送,通常要切回終端敲 git status、git commit,一來一回容易打斷手頭的事。

dsh-git-component 解決的就是這個問題:它在 WebUI 右側掛一個懸浮面板,即時顯示工作區變更,提交和推送直接在面板裏完成,提交信息留空還能自動生成。下面介紹這個插件的定位、功能、安裝和用法。

這是什麼

dsh-git-component 是 DeepSeek Harness Web GUI 的 Git 插件,由 nieyunliang 維護,MIT 協議,當前版本 0.1.1。

它懸浮在窗口右側(376px 寬,透明卡片風),可以把當前更改按「已暫存 / 未暫存 / 未跟蹤」三組展示,並支持提交、提交併推送、推送三種操作。提交信息留空時,自動用當前默認模型生成中文提交信息。

核心功能

查看變更

  • 右側懸浮面板,可摺疊爲右上角的 Git 分支小圖標,需要時再展開。
  • 三個分組:已暫存 / 未暫存 / 未跟蹤,底層用 git status 的 porcelain v1 輸出做精確解析,重命名文件也能正確歸類。
  • 點擊文件名可內聯查看 diff,最多顯示 400 行。
  • 每 15 秒自動刷新一次。

提交與推送

  • 三種操作:提交、提交併推送、推送(推送當前分支到上游)。
  • 提交前會自動執行 git add -A 暫存全部更改。
  • 提交信息留空時,點提交會自動用當前默認模型生成中文提交信息(不超過 60 字,單行),然後提交。
  • 面板裏支持 Ctrl/⌘+Enter 快捷提交。

會話跟隨與執行方式

  • git 命令在當前會話的工作目錄下執行,插件會自動用 git rev-parse --show-toplevel 定位倉庫根;切換會話或工作區後面板自動重載。
  • 操作通過宿主的 shell 服務執行 git,按會話沙箱策略走,不會放寬當前的文件權限模式;同時設置 GIT_TERMINAL_PROMPT=0,禁止 git 彈交互提示。

安裝與啓用

要求:web profile(提供 webServer 與 shell 服務)、Node ≥ 22、Git ≥ 2.x。插件零運行時依賴,不引入其他包。

從 GitHub 安裝(git 源,推薦):

dsh plugin --profile web add github:nieyunliang/dsh-git-component

安裝後需要重啓 webui 進程才能生效——Node 的模塊緩存不會熱替換舊代碼。

關於構建腳本:本插件沒有構建腳本,git 源安裝通常不需要額外的 prepare/allowBuilds 配置;如果 pnpm 仍提示構建腳本被攔截,再在 profile 的 pnpm-workspace.yaml 的 allowBuilds 中加入對應 key 後重試。

典型用法

  1. 重啓後打開 WebUI,右側出現 Git 面板(右上角小分支圖標可展開/收起)。
  2. 面板顯示當前倉庫的三個分組與變更文件;點擊文件可查看 diff。
  3. 提交:填入提交信息後點「提交」或「提交併推送」(或直接 Ctrl/⌘+Enter);提交前會自動 git add -A 暫存全部更改。
  4. 留空提交信息:點提交後自動生成 AI 提交信息並提交。
  5. 「推送」按鈕把當前分支推送到上游。

如果是本地開發調試,想從源碼目錄安裝或重裝,在插件的父目錄執行:

dsh plugin --profile web add ./dsh-git-component

再用下面這條命令確認配置裏已出現 git-component 這一行,然後重啓 webui 進程:

dsh --profile web --dump-config | grep git-component

適用場景與注意事項

適合在 WebUI 裏以會話爲單位驅動開發的人:邊看智能體改代碼、邊核對變更並提交,不用來回切終端。

幾點需要注意:

  • 面板的 git 操作與在終端裏敲等價命令的風險一致,尤其是提交前自動 git add -A 會暫存全部更改,提交前先確認面板裏的文件列表。
  • 插件以當前 dsh 進程的權限運行,按會話沙箱策略執行,不會放寬文件權限模式;但安裝任何第三方插件前,都建議先檢查源碼與許可證。本項目採用 MIT 協議。
  • 從本地源碼目錄安裝時,必須在插件的父目錄執行命令。

小結

dsh-git-component 把查看變更、diff、提交、推送這幾步收進 WebUI 右側的一個面板,配合 AI 自動生成提交信息,減少在終端和界面之間的來回切換。安裝只需一條命令加一次重啓。

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

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

小夜