Skip to content

fix(dag): halt downstream scheduling when a reporting checkpoint returns verdict replan - #327

Merged
LeXwDeX merged 3 commits into
devfrom
fix/dag-replan-gate
Aug 17, 2026
Merged

fix(dag): halt downstream scheduling when a reporting checkpoint returns verdict replan#327
LeXwDeX merged 3 commits into
devfrom
fix/dag-replan-gate

Conversation

@LeXwDeX

Copy link
Copy Markdown
Owner

问题(Closes#322

报告型检查点提交 {verdict: "replan"} 时,拓扑只按 depends_on 推进,下游仍会在被否决的方向上执行——实测 ultra-flow 全图 15 节点空转到终态、零实现(workflow dag_fe5ff13ada6fUONA2rH3Pypdf4)。

修法(issue 方案 A:结构性闸门)

  • loop.tsNodeCompleted 处理器中,report_to_parent 检查点的输出若能解码出 verdict: "replan",先 dag.pause(持久化 paused)再看调度——下游在任何 spawn 轮次都不可能启动;pause 失败时回读 DB 同步运行时标志。父会话由既有 report_to_parent 唤醒携带 findings。
  • workflow.tscontrol(replan) 对 paused workflow 自动 resume(门暂停与 pause-first 协议两条路闭环续流),resume 竞态用 catch 兜底不炸已落地的 replan;pause 输出说明同步更新。
  • continue / 无 verdict 输出一律照常推进(回归保持)。

验证

  • bun typecheck(packages/opencode)干净;全 monorepo pre-commit turbo typecheck 绿
  • test/dag/553 pass / 0 fail,含新增回归:
    • replan 裁决 → 持久 paused、依赖节点不 spawn、resume 后恢复
    • continue 裁决 → 正常推进
    • 工具级:对 gate-paused workflow 执行 control(replan) → 自动 resume(WorkflowResumed 事件)
  • 崩溃恢复:recovery 认持久 paused 状态(既有机制,已核)

关联

fix: memory wiring repair and dag-init GitLab probe hardening
release batch: exerciser watchdog hardening and verify-to-delivery doctrine
…rns verdict replan
A reporting checkpoint submitting {verdict: "replan"} now pauses the workflow durably before any spawn round, so dependents can never run on the rejected direction; the parent is woken by the existing report_to_parent wake. control(replan) resumes a paused workflow so corrective nodes run, with TOCTOU-safe resume handling and updated pause guidance. continue verdicts and non-verdict outputs advance unchanged. Closes#322
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@LeXwDeX