
oh-my-claudecode 怎么启用 Native Team Worktree Mode 并验证 worker worktree 隔离【免费下载链接】oh-my-claudecodeTeams-first Multi-agent orchestration for Claude Code项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-claudecode在 oh-my-claudecode 的omc team多 worker 会话中多个 worker 默认在同一个共享工作区里改动文件容易互相踩到同一份 checkout。Native Team Worktree Mode 是 docs/TEAM-WORKTREE-MODE.md 描述的启用路径把每个 worker 放进专属的 git worktree同时任务、mailbox、status、manifest 等协调状态仍集中在 leader 工作区的团队级协调根目录下做到改动隔离、状态不分裂。该模式有几个必须知道的前提均以仓库文档为准这是opt-in / config-gated的 rollout默认不生效不要假设 worktree 模式是默认行为docs/MIGRATION.md 将该能力标注为 Unreleased: Native Team Worktree Mode (Opt-In)。目标 runtime 是runtime-v2旧版runtime.ts只保留 read/status 和 cleanup 兼容性。不需要新增依赖生命周期操作基于 git worktrees 加上现有 team CLI/API 面。启动前 leader 仓库必须是干净的如果 leader 仓库处于 dirty 状态启动会拒绝provisioning worktrees而不是带着不安全的基线继续。启用 worktree 模式两种配置方式启用只需设置team.ops.worktreeMode或环境变量OMC_TEAM_WORKTREE_MODE二者都写在 src/cli/commands/team.ts 的omc team帮助文本里Worktrees (opt-in): set team.ops.worktreeMode or OMC_TEAM_WORKTREE_MODEdetached|branch to launch workers from .omc/team/ /worktrees/ . Status includes workspace/worktree metadata.方式一环境变量会话级临时启用export OMC_TEAM_WORKTREE_MODEdetached # 或 branch方式二配置文件持久启用配置由 src/config/loader.ts 加载用户配置位于~/.config/claude-omc/config.jsonc项目配置位于.claude/omc.jsonc// .claude/omc.jsonc { team: { ops: { worktreeMode: detached } } }取值范围要留意两处文档口径CLI 帮助文本展示环境变量取值为detached|branch而配置加载器对team.ops.worktreeMode允许的完整集合是disabled、off、detached、branch、named见 src/config/loader.ts不在集合内的值会直接报错。解析顺序以 src/team/runtime-v2.ts 为准OMC_TEAM_WORKTREE_MODE优先于配置文件中的team.ops.worktreeMode。启动团队并让 worker 进入 worktree配置生效后用正常的omc team启动命令拉起团队例如文档中的示例omc team 3:claude fix failing testsworktree 模式下 worker 从repo/.omc/team/team-name/worktrees/worker-name启动team-name、worker-name由运行时按团队与 worker 生成不是手动指定的目录名。判断下一步的信号启动正常worker 的 cwd 就是其worktree_path即对应 worktree 目录。启动被拒leader 仓库 dirty 时启动会拒绝 provisioning——这是文档明确的行为先清理或提交 leader 工作区再试。分支/路径不匹配时运行时会失败而不是复用错误的 workspace已有且干净、兼容的 worker worktree 可以复用。验证 worker worktree 隔离验证分三层全部来自 docs/TEAM-WORKTREE-MODE.md 的 workspace contract 与 CLI and status expectations。1. JSON status确认契约字段omc team status team-name --json把team-name换成你启动时使用的团队名。JSON 消费方应能直接读到以下字段不需要去读私有状态文件workspace_modeworktree 会话应为worktree共享工作区行为为singleworktree_mode、team_state_root后者应指向 leader 工作区内的repo/.omc/state/team/team-name每个 worker 的 worktree 元数据worktree_repo_root、worktree_path、worktree_branch、worktree_detached、worktree_created。2. 人类可读 status确认改动落在哪omc team status team-name的输出格式格式来自 src/cli/commands/team.ts下列为按该格式标注的示例值以你的实际团队为准workspace_modeworktree worktree_modedetached team_state_rootrepo/.omc/state/team/team-name workerworker-1 working_dirrepo/.omc/team/team-name/worktrees/worker-1 worktree_repo_rootrepo worktree_pathrepo/.omc/team/team-name/worktrees/worker-1 worktree_branch... worktree_detachedtrue worktree_createdtrue重点核对workspace_modeworktree、每个 worker 的worktree_path位于.omc/team/team-name/worktrees/之下、team_state_root指向 leader 侧的协调根而不是 worker 自己的目录。3. 隔离边界协调状态没有复制到 worker 侧按文档契约OMC_TEAM_STATE_ROOT会把 worker 指回 leader 拥有的协调根worker 在 worktree 内不应新建或改动本地.omc/stateworktree 根目录会安装带备份/恢复保护的AGENTS.md。检查 worker worktree 目录内是否存在意外生成的.omc/state即可确认状态没有被分裂。清理行为与已知边界shutdown/cleanup 只会移除新创建且干净的 worktree 和运行时创建的分支安全时dirty 的 worker worktree 会被保留并以 warning/event 形式上报不会被强制清理。复用中的 worktree 也保留。回滚rollback可能移除新建的干净 worktree 与运行时创建的分支被复用的 worktree 不受影响。orphan-cleanup是破坏性逃生舱可能删除 worktree 恢复元数据和根AGENTS.md备份。存在这类证据时调用方必须在手动保留或明确放弃受影响的 worker worktree/备份之后才传acknowledge_lost_worktree_recovery: true。若你还需要 worktree 被删除后 OMC 状态仍然存活docs/REFERENCE.md 给出的是另一个正交开关设置OMC_STATE_DIR让状态写入集中目录而不是随 worktree 删除的本地.omc/。可以继续查阅的资料完整 rollout 契约、安全规则与贡献者验证清单docs/TEAM-WORKTREE-MODE.md迁移说明中的 TL;DR 与契约摘要docs/MIGRATION.mdworktree 模式解析与OMC_TEAM_STATE_ROOT注入实现src/team/runtime-v2.tsomc teamCLI 帮助、status 输出格式src/cli/commands/team.ts【免费下载链接】oh-my-claudecodeTeams-first Multi-agent orchestration for Claude Code项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-claudecode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考