Repository navigation
fix: keep orchestrators working past terminal or node-capped workflows - #905
Merged
Merged
Conversation
Make 100 both the default and the floor for max_total_nodes, so a tight self-imposed cap cannot strand verification and review work. Point completed-workflow recovery and ceiling rejections at a bounded successor workflow, and tell the parent to continue in-scope work instead of pausing to ask the user. Issue: #904
LeXwDeX
marked this pull request as ready for review
October 28, 2026 14:18
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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 free
to 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.
Why
Closes #904
An orchestrator's DAG completed with a failing verification node while it had set
max_total_nodes: 20for itself.extendhit the node ceiling, andcontrol(recover)refused the completed workflow with "pause live scheduling first", which a completed graph cannot do. The orchestration policy said to stop and ask the user after a ceiling rejection, so the parent paused its goal and asked permission for verification and review that the original request already covered.What changed
effectiveMaxTotalNodesand workflow config normalisation now usemax(configured ?? 100, 100). A start document can raise the budget but not shrink it; existing workflows with a stored lower cap get 100 on their next graph action. The schema description says so.recoveron a completed or archived workflow now names the successor path: extend when allowed, otherwise a bounded successor workflow that reuses valid outputs, with no user approval needed for work the original request covers. The non-start node-ceiling hint points at a successor workflow too.orchestration-policy.md; the Escalation, budget-exhaustion, recovery and Bounded Repair text inworkflow.md/ the policy no longer tells the parent to stop and ask. It asks only when continuing would widen scope, need new permissions, take an irreversible external action, or repeat a plan that has already failed twice for the same reason.Evidence
bun test test/dag test/tool(opencode): 1525 passed, 0 failed after updating the workflow parameter snapshot for the new schema description.dag-create-validationanddag-local-recovery: 21 passed. Covers a configured cap of 2 enforced as 100 on create (101 nodes) and on replan, the successor hint on a replan ceiling rejection, and the completed-workflow recover message.bun test test/plugin(core): 24 passed, 36 failed, identical with and without this change (pre-existing local failures).tsgo --noEmit(opencode): passed.bun run lint: 0 errors.script/release-notes.tsforgraphagent-v1.0.91.--no-verify, so CI on the pinned toolchain is authoritative.Checklist
🤖 Generated with Claude Code