创建任务 (TODO) 标题 / 描述 / 优先级 / 标签 / baseBranch 点击「执行」 startPtyExecution() 创建 TaskExecution (PENDING → RUNNING) Task: TODO → IN_PROGRESS 创建 Git Worktree (如有 baseBranch) 加载 CliProfile · 注入 TOWER_TASK_ID 创建 PTY 会话 (session-store) 运行中 (IN_PROGRESS) Claude CLI 在终端运行 · 用户可交互输入 WebSocket 中继 I/O → xterm.js 实时显示 SessionStart Hook → 上报 sessionId PostToolUse Hook → 捕获文件变更 exitCode? 进程退出 != 0 重试 == 0 成功 评审阶段 (IN_REVIEW) 生成小总结 + Dreaming 洞察 查看 Diff (worktree vs base branch) DONE ✓ 合并 · 清理 Worktree 重新执行 CANCELLED 恢复执行 --resume sessionId --continue (最近会话) 执行流程 创建→执行→运行→退出→评审→完成 自动化 Worktree 自动创建 环境变量注入 · Hook 捕获 sessionId 恢复机制 --resume 恢复指定会话 --continue 继续最近会话 TODO IN_PROGRESS IN_REVIEW DONE CANCELLED Tower Task Lifecycle · 5 Status States