Skip to content

目标

将 B2 evaluator 和 C3 broker 接入真实 server.ts 入口,实现 FlowRun/Stage/Task 生命周期受控操作。

实现要点

  1. server.ts 接入 (src/plugin/server.ts)

    • 新增 tool handler:flow_control(op, params)FlowControlResponse
    • 支持 op:run-start, stage-start, stage-complete, task-start
    • run-start:从 Issue body 读取 FlowRun → DAG 验证 → 更新 status → 绑定 GoalFlowRunRef
    • stage-start:验证预置条件(parent issue、Manifest、前置文档)→ 更新 Stage 状态
    • task-start:冻结 policy(Manifest + 迁移)→ 写入 executionBinding → Task running
  2. Goal 绑定 (src/plugin/goal.ts)

    • GoalFlowRunRef 新增 metadata 字段
    • flow_run start 时原子绑定:未绑定→写入;已绑定同一→幂等;不同→GOAL_FLOW_CONFLICT
    • goal.complete 时读取精确 FlowRun,非 completed 返回 FLOW_RUN_INCOMPLETE
  3. 受控操作协议

    • 每个 op 先执行无副作用 preflight
    • 外部副作用仅在 preflight 通过后发生
    • 重复请求按 FlowRun revision、Task 和 head branch 幂等

验收标准

  • [ ] server 入口状态迁移测试:planned→running→...完整链路
  • [ ] flow_task start 冻结 policy 测试
  • [ ] Goal-FlowRun 绑定和解绑测试
  • [ ] 错误码路径测试(TASK_NOT_FOUND, INVALID_TRANSITION 等)

Worktree

  • 路径: .worktree/tdd-d1-server/
  • 分支: feat/tdd-d1-server