fix(dag): halt downstream scheduling when a reporting checkpoint returns verdict replan - #327
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题(Closes#322)
报告型检查点提交
{verdict: "replan"}时,拓扑只按depends_on推进,下游仍会在被否决的方向上执行——实测 ultra-flow 全图 15 节点空转到终态、零实现(workflowdag_fe5ff13ada6fUONA2rH3Pypdf4)。修法(issue 方案 A:结构性闸门)
NodeCompleted处理器中,report_to_parent检查点的输出若能解码出verdict: "replan",先dag.pause(持久化 paused)再看调度——下游在任何 spawn 轮次都不可能启动;pause 失败时回读 DB 同步运行时标志。父会话由既有 report_to_parent 唤醒携带 findings。control(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,含新增回归:WorkflowResumed事件)关联