前言¶
DeepSeek Harness (DSH) 採用了「一切皆插件」的架構。在開發涉及多個 Git 倉庫的任務時,直接在源碼倉庫上操作容易導致工作混亂。dsh-worktree-space 插件通過隔離機制,把一個或多個倉庫的工作任務放進獨立的任務空間目錄,每個倉庫在同一個任務分支上各開一個 worktree,實現多任務並行推進。
插件簡介¶
dsh-worktree-space 是一個工作流類插件,由 kangtsang 維護,採用 MIT 許可證。
該插件的核心價值在於:把一個涉及一個或多個 Git 倉庫的工作任務放進獨立的任務空間目錄——參與的每個倉庫都在同一個任務分支上各開一個 worktree;任務空間自動註冊爲 DSH 工作區,agent 會話直接在任務空間裏開工。
核心功能¶
-
從會話裏建任務
選定源碼根、給任務起名、選分支前綴、勾選要參與的倉庫。每個倉庫都會得到一份位於<分支前綴><任務名>的 worktree。任務空間目錄下會生成記錄文件和說明文檔。 -
自動註冊與開工
任務空間自動註冊爲 DSH 工作區,名字是<上級>/<任務名>。Agent 會話直接在任務空間裏開工,工作目錄就是這個任務空間,不會動到源碼檢出。 -
管理視圖
管理頁面分三個視圖:- 工作區視圖:查看哪些工作區可以建任務空間,以及每個工作區裏有幾個倉庫。
- Git 倉庫視圖:查看每個 Git 倉庫及其鏈接的 worktree。
- 任務空間視圖:列出每個任務下的倉庫(分支、改動數、是否被鎖定、是否可清理)。
-
任務補倉
支持給任務補倉庫。在任務行上點「添加倉庫」,新倉庫在任務現有分支上開 worktree,起點默認爲各倉庫當前的 HEAD。 -
雙語與日誌
界面完整支持中英雙語。無額外服務依賴,支持開關操作日誌。
安裝與啓用¶
網頁端安裝:
dsh plugin --profile web add dsh-worktree-space
桌面端安裝:
側邊欄 → 插件,在「插件包名」填 dsh-worktree-space,點「安裝」。
典型用法¶
- 創建任務空間:在管理頁創建任務,指定分支前綴和參與的倉庫。
- Agent 工作:Agent 會話直接在任務空間裏開工,在各自的 worktree 中進行代碼修改。
- 結束任務:任務完成後,在任務行上點「結束任務」。默認把各倉庫的分支合併回它的目標分支、刪掉 worktree、將任務空間裏遺留的文檔歸檔到指定目錄。
注意事項¶
-
環境要求
- Node.js >= 22.19.0
- Git
- DSH >= 0.1.7-rc.1 < 0.3.0-0
-
提交與衝突
- 插件不代寫提交,未提交的改動會讓該倉庫停下。
- 實驗性功能:把提交和合並衝突交給 agent 處理的功能處於實驗性驗證階段(Beta)。默認顯示,如需隱藏,可在插件配置裏將「交由 agent 解決衝突入口」設爲「隱藏」。
-
限制
- 不支持從任務裏移除倉庫。
- 容器根目錄推薦落在根工作空間的下一層。
總結¶
該插件通過 worktree 機制實現了多倉庫任務的物理隔離,適合需要在 DSH 環境中處理複雜、跨倉庫開發任務的場景。更多細節請參考 GitHub 倉庫。