dsh-worktree-space:一任務一空間,工作多路並行

前言

DeepSeek Harness (DSH) 採用了「一切皆插件」的架構。在開發涉及多個 Git 倉庫的任務時,直接在源碼倉庫上操作容易導致工作混亂。dsh-worktree-space 插件通過隔離機制,把一個或多個倉庫的工作任務放進獨立的任務空間目錄,每個倉庫在同一個任務分支上各開一個 worktree,實現多任務並行推進。

插件簡介

dsh-worktree-space 是一個工作流類插件,由 kangtsang 維護,採用 MIT 許可證。

該插件的核心價值在於:把一個涉及一個或多個 Git 倉庫的工作任務放進獨立的任務空間目錄——參與的每個倉庫都在同一個任務分支上各開一個 worktree;任務空間自動註冊爲 DSH 工作區,agent 會話直接在任務空間裏開工。

核心功能

  1. 從會話裏建任務
    選定源碼根、給任務起名、選分支前綴、勾選要參與的倉庫。每個倉庫都會得到一份位於 <分支前綴><任務名> 的 worktree。任務空間目錄下會生成記錄文件和說明文檔。

  2. 自動註冊與開工
    任務空間自動註冊爲 DSH 工作區,名字是 <上級>/<任務名>。Agent 會話直接在任務空間裏開工,工作目錄就是這個任務空間,不會動到源碼檢出。

  3. 管理視圖
    管理頁面分三個視圖:

    • 工作區視圖:查看哪些工作區可以建任務空間,以及每個工作區裏有幾個倉庫。
    • Git 倉庫視圖:查看每個 Git 倉庫及其鏈接的 worktree。
    • 任務空間視圖:列出每個任務下的倉庫(分支、改動數、是否被鎖定、是否可清理)。
  4. 任務補倉
    支持給任務補倉庫。在任務行上點「添加倉庫」,新倉庫在任務現有分支上開 worktree,起點默認爲各倉庫當前的 HEAD。

  5. 雙語與日誌
    界面完整支持中英雙語。無額外服務依賴,支持開關操作日誌。

安裝與啓用

網頁端安裝:

dsh plugin --profile web add dsh-worktree-space

桌面端安裝:
側邊欄 → 插件,在「插件包名」填 dsh-worktree-space,點「安裝」。

典型用法

  1. 創建任務空間:在管理頁創建任務,指定分支前綴和參與的倉庫。
  2. Agent 工作:Agent 會話直接在任務空間裏開工,在各自的 worktree 中進行代碼修改。
  3. 結束任務:任務完成後,在任務行上點「結束任務」。默認把各倉庫的分支合併回它的目標分支、刪掉 worktree、將任務空間裏遺留的文檔歸檔到指定目錄。

注意事項

  1. 環境要求

    • Node.js >= 22.19.0
    • Git
    • DSH >= 0.1.7-rc.1 < 0.3.0-0
  2. 提交與衝突

    • 插件不代寫提交,未提交的改動會讓該倉庫停下。
    • 實驗性功能:把提交和合並衝突交給 agent 處理的功能處於實驗性驗證階段(Beta)。默認顯示,如需隱藏,可在插件配置裏將「交由 agent 解決衝突入口」設爲「隱藏」。
  3. 限制

    • 不支持從任務裏移除倉庫。
    • 容器根目錄推薦落在根工作空間的下一層。

總結

該插件通過 worktree 機制實現了多倉庫任務的物理隔離,適合需要在 DSH 環境中處理複雜、跨倉庫開發任務的場景。更多細節請參考 GitHub 倉庫。

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

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

小夜