fix(dag): complete workflows at rejected review checkpoints instead of failing them - #300
Merged
Conversation
…f failing them (issue #294)
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#294
Summary
A REJECT verdict terminalized the workflow as failed — and failed workflows are immutable. That made two of the four Verdict Disposal Contract options physically unreachable (additive extend reopen requires
completed; replan rejects terminal workflows), so post-checkpoint correction waves could never happen. The harness also contradicted its own policy: node-level rule says a REJECT gate is a completed node, while the workflow level failed the graph for it.The reopen mechanism was explicitly designed for this shape (its rationale names skipped dependents as non-executed, so the graph "effectively ended at the checkpoint") — it was simply unreachable.
Change
dag.completegains an explicitskipReviewGateoption: explicit completion shortcuts (tool/HTTP) keep the review gate; only the natural loop path passes the bypass.workflow(action="status")surfacesunresolved_reviewsexplicitly instead of burying the verdict in a terminal reason string.Verification
completed, review/audit nodes skipped, parent woken with the completed terminal wake).dag.completedefault still guarded).bun typecheckclean frompackages/opencode.Note
Pairs conceptually with #299 (parallel writers) and the disposal wording in the docs/disposal-classifier branch; independent in code, safe to merge in any order.