前言¶
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 仓库。