前言¶
在 DeepSeek Harness(DSH)中,同时进行多个开发任务通常需要在同一个仓库或分支上操作,这容易导致冲突和上下文混乱。gord-dsh-worktree 插件通过引入 Git worktree 机制,允许在独立的目录和分支中隔离并行工作。它由 nightosong 维护,提供了一套从命令行到 UI 的管理方案,并附带了“快速模式”预设和任务注意力托盘。
核心功能¶
- 创建与管理:支持通过命令行(
worktree_list,worktree_create,worktree_status,worktree_remove,worktree_prune,worktree_relocate)或 UI(Settings → Worktrees)创建和管理 worktree。支持原子创建、安全删除(自动忽略 .env 等文件)以及双击重命名会话。 - 会话隔离:在 New Session 行中使用工作树选择器,可以选择在当前 worktree 启动,或创建新的 worktree 并在其中启动会话。
- 变更审查:侧边栏的 Changes 标签页会显示会话目录的未提交差异,包括文件变更统计和具体补丁。
- 任务注意力托盘(0.6.0 新增):位于对话右侧索引下方,用于跟踪运行中、等待中或已结束但未查看的聊天。支持拖动保存位置、点击打开以及重置位置。
- 快速模式:一个轻量级的代理预设,支持批量独立调用、上下文感知的错误解释以及在编辑前读取、编辑后重读。
- 并发工具调用:通过可选补丁,允许
bash,glob和grep等只读工具调用并发执行,而非串行运行。
安装与启用¶
使用官方安装命令添加插件:
dsh plugin --profile web add gord-dsh-worktree@0.6.0
安装完成后需要重启 dsh web 以加载插件。Fast mode(快速模式)由插件包声明,安装后即会出现在预设选择器中。
使用示例¶
- 命令行操作:
- 查看所有 worktree:
worktree_list - 创建新 worktree:
worktree_create - 迁移旧版工作树:
worktree_relocate
- 查看所有 worktree:
- UI 操作:
- 在 New Session 行选择工作树。
- 在 Settings → Worktrees 中管理列表、归档或迁移旧版工作树。
- 双击侧边栏会话行进行重命名。
注意事项¶
- 版本要求:插件依赖 DeepSeek Harness 引擎版本
^0.1.5-rc.1或更高。 - 冲突处理:Fast mode 由 bundle layer 声明。如果 profile 中的
cordis.patch.yml已有preset-fast声明,安装此插件会导致冲突(插件预设会覆盖或重复挂载)。 - 功能依赖:任务注意力托盘功能需要
uiSession.sessionStatus支持(版本0.2.0-rc.2+)。 - 旧版迁移:旧版本创建的工作树存储在
$DSH_HOME/worktree/,可通过 Settings → Worktrees 的“Move into project”或命令worktree_relocate迁移到项目目录内。
总结¶
gord-dsh-worktree 为 DSH 提供了标准的 Git worktree 管理能力,解决了多任务并行开发的隔离问题。配合快速模式和任务注意力托盘,能够提升开发效率和状态追踪能力。
GitHub 仓库 | SkillHub 目录