Codeg To-dos任务看板深度解析:让AI Agent在独立git worktree中无人值守并行开发
【免费下载链接】codegCollaborative multi-agent AI coding workspace: aggregate sessions from Claude Code, Codex, OpenCode, Pi, Grok Build, etc. Desktop app, self-hosted server, or Docker.项目地址: https://gitcode.com/gh_mirrors/co/codeg
Codeg(GitHub 加速计划 / co / codeg)是一个多智能体 AI 编码工作台,可以把 Claude Code、Codex、OpenCode、Pi、Grok Build 等 Agent 的会话聚合到同一界面。它的To-dos 任务看板让 AI Agent 在独立的 git worktree 中并行、无人值守地开发:你把需求写成任务卡片,引擎自动为每个任务创建一份独立代码副本(git worktree + 独立分支),多个 Agent 同时开工互不干扰,完成后停在「待验收」栏等你看 diff,通过后才由引擎亲自核对 git 并落地合并——真正做到无人值守的 AI 并行开发。
任务状态流转:四列看板背后的完整流水线
看板只有四列,但每列背后是多个精确状态。核心映射定义在 board-columns.ts 中:
| 看板列 | 底层状态 | 含义 |
|---|---|---|
| 📋 待办 | todo/queued | 排队等待并发槽位 |
| 🚀 进行中 | preparing/running | 创建 worktree、跑初始化命令、Agent 已启动 |
| ⚠️ 需关注 | awaiting_input/review/merging/failed | 等输入、待你验收、合并中或失败 |
| ✅ 完成 | done/canceled | 已落地或已取消 |
执行引擎驱动的完整流水线是todo → queued → running ⇄ awaiting_input → review → merging → done(见 engine.rs 头部注释)。每个进程只有一个引擎实例,通过独占文件锁选举产生,桌面端和自托管服务器模式都会启动它——所以你在手机上打开 Web 端看到的看板,和桌面端驱动的是同一台引擎。
独立 git worktree:多个任务为什么互不干扰
这是整套机制的安全核心:每个任务启动时,Codeg 会在项目旁边创建一份 git worktree,任务跑在自己的分支上。几个含义:
- 不碰你手头的代码——你正在主检出里写的东西,任务 Agent 完全看不见;
- 多任务并行互不干扰——A 任务改
src/api.ts、B 任务改src/db.ts也互不阻塞; - 随时可清理——验收通过后 worktree 连同目录一起移除。
git 层由 work_task/git.rs 封装:固定基础分支的 rev、全量提交、两阶段合并、worktree 移除都是薄包装的 git CLI 调用,由引擎统一持有「每文件夹一把 git 互斥锁」来串行化。移除 worktree 前还有一个保守到近乎偏执的脏检查(engine.rs):只要无法 100% 证明目录里没有未提交文件,就拒绝删除并保留现场——宁可任务卡住,也绝不误删代码。
无人值守:定时启动与并发上限
「无人值守」不等于「同时全开」。看板支持两种启动方式:
- 定时启动——通过任务调度对话框把开始时间约在今晚、周末,到点自动进入流水线(task-schedule-dialog.tsx、调度逻辑见 task-schedule.ts);
- 按文件夹并发上限自动消化队列——每个项目文件夹可配置
max_concurrent,引擎按队列顺序一件件放行,超出的任务安静地留在queued状态。
引擎每 15 秒检查一次计划启动、每 30 秒做一次对账扫描,崩溃重启后会根据数据库状态恢复未完成的运行与合并意图(合并意图在执行前就持久化,恢复时以 git 事实为准重放)。
验收与两阶段合并:不听 Agent 一面之词
做完的任务不会自动合并,它会停在「需关注」栏的 review 状态等你。点通过后,合并分两个阶段执行(engine.rs):
- 阶段 A:把基础分支并进任务的 worktree——冲突只会落在这个沙盒里,在那里解完;
- 阶段 B:在文件夹级 git 互斥锁保护下,把成果落到主分支。
更关键的是引擎不听 Agent 的口头汇报:合并后 Codeg 自己去核对 git 结果,确认不了的合并会退回待验收,而不是报一句「成功」。相关界面组件包括 task-merge-dialog.tsx、task-detail-sheet.tsx 以及顶部的 tasks-page.tsx 与任务卡片 task-card.tsx;会话过长时的压缩逻辑在 compact.rs。
适合谁用
如果你正在用 Claude Code / Codex 等 Agent 干活,但受困于「一次只能盯一个会话、Agent 改乱了当前分支」的问题,To-dos 看板就是解法:把重复性、可独立验证的需求写成卡片,让 Agent 们在各自的 worktree 里无人值守地并行推进,你只负责最后验收 diff。桌面端、自托管服务器、Docker 三种部署形态(deployment 说明 与 docker-compose.yml)共用同一套任务引擎,手机客户端还能远程验收。
【免费下载链接】codegCollaborative multi-agent AI coding workspace: aggregate sessions from Claude Code, Codex, OpenCode, Pi, Grok Build, etc. Desktop app, self-hosted server, or Docker.项目地址: https://gitcode.com/gh_mirrors/co/codeg
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考