dsh-workflow-worktree
在终端中运行以下命令:
dsh plugin install lisycotana/dsh-workflow-worktree
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 终端中运行 dsh plugin install lisycotana/dsh-workflow-worktree 即可安装该插件,源码地址见 https://github.com/lisycotana/dsh-workflow-worktree 。
插件介绍
@dsh-external/workflow 预留了 worktree 隔离接口但未实现任何方案,声明 isolation: "worktree" 的任务会直接失败。dsh-workflow-worktree 就是补上这一环的适配器,让工作流引擎为每个写入型代理创建独立的 Git worktree checkout,使其无法触及你的工作树,且崩溃后可恢复。
设计核心原则只有一条:绝不降级到共享 checkout。目录不是有效的 Git 工作树、或 worktree 无法创建时,prepare() 直接拒绝,任务大声失败而非静默回退。每条 lane 记录 runId、taskId、worktree 路径、分支和 base commit,绑定关系在崩溃后依然存活。未提交的工作永远不会被丢弃——脏 lane 被保留并标记为 retained-dirty。lane 目录写入 .git/info/exclude 而非已跟踪的 .gitignore,保证 git status 干净、工作流指纹稳定。dispose() 幂等,引擎可在任务结束、运行失败或显式停止时安全调用。
这不是手动 worktree 管理工具,而是为工作流引擎服务的适配器。如果你想 fork 一个工作区继续开发,选手动 worktree 插件更合适;如果你希望 spawnAgent 在 isolation: "worktree" 下自动隔离、崩溃恢复并幂等清理,这就是你要的。两者可以共存,互不冲突。
使用场景
- 多代理并行写入同一仓库时,为每个任务分配独立 worktree 避免互相干扰
- 工作流任务崩溃后恢复 lane 绑定关系,找回对应的 worktree 路径和分支
- 保证 git status 始终干净,隔离目录不污染工作流验证指纹
适合人员
- 使用 DSH 工作流引擎的开发者,需要让 worktree 隔离真正生效
- 运行多代理并行写入任务的团队,需要崩溃安全的隔离保证
- 追求工作流可验证性的工程师,需要隔离后端不污染仓库状态