Skip to content

fix(dag): replan verdict is advisory — a rejected checkpoint cannot structurally halt downstream execution #322

Description

@LeXwDeX

现象

Ultra-flow 的检查点节点返回 {verdict: "replan"},但下游各阶段仍照常执行:每个下游节点发现"没有已确认的设计"后也回 replan,整图空转到终态,零实现

实例(workflow dag_fe5ff13ada6fUONA2rH3Pypdf4):

  • cp-design-decision 返回 replan(设计含 4 个硬缺陷,均带 file:line 实证)
  • stage-developmentstage-acceptancestage-releasestage-summary 仍依次执行,各自返回 replan
  • 全图 15 节点状态 completed、workflow 终态 completed,但无分支、无代码改动

根因

裁决(verdict)只是节点的输出数据,拓扑只依据 depends_on 决定执行顺序,对 verdict 的取值完全无感知。report_to_parent: true 会唤醒父会话,但图不暂停等待父会话介入——等父会话看到 replan 时下游已在执行或已执行完。契约里"父会话收到 replan 后用 control/replan 补救"缺乏结构性的执行保证。

修法选项

  • 方案 A(结构性闸门,推荐):为 DAG 调度引入"门节点"语义——当一个节点声明了带 verdict 的 output_schema 且 report_to_parent: true 时,其下游在 verdict 产生后不自动调度,等待父会话处置;verdict 为 replan 则永不自动推进。或为下游节点提供 condition(引用上游 verdict),条件不满足即跳过。
  • 方案 B(作者纪律):强制把跨门阶段拆成独立 workflow,由父会话在段间决策。此为约定而非机制,新模板仍会复发,仅作过渡。

验收

  • 在检查点返回 replan 的 workflow 中,下游阶段不被调度;父会话被唤醒并携带 findings,经 control/replan 补救后从修正阶段推进。
  • 检查点返回 continue 时行为不变、流程照常推进(回归)。
  • 新增回归测试覆盖"replan 后下游不空转"。

关联

  • 同批编排健壮性:探索/设计门的独立验证问题(见同批 issue)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions