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 仓库。

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

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

小夜