feat(code): auto-accept /goal criteria in YOLO mode - #4784
Conversation
| or pending_request_is_active | ||
| or not allow_pending_proposal |
There was a problem hiding this comment.
🟡 Completed criteria proposals are discarded on cleanup failure
When a criteria run succeeds, cleanup calls _clear_submitted_goal_criteria_request() before this sync, but it ignores a False return. If that state update fails while the checkpoint read still succeeds, goal_criteria_request remains set to the same completed request, so this new pending_request_is_active branch strips the freshly generated _pending_goal_* payload and no review/YOLO acceptance is mounted. The user only gets the cleanup warning and the generated criteria are lost until they rerun /goal. Treat the marker as superseding only when it belongs to a different/newer request (or stop before sync when the clear fails), rather than discarding the proposal for the completed request itself.
(Refers to lines 9768-9769)
Your feedback helps Open SWE learn. React with 👍 or 👎 to tell us if this review comment was useful.
> [!CAUTION] > Merging this PR will automatically publish to **PyPI** and create a **GitHub release**. For the full release process, see [`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md). --- _Release notes preview: keep this section in sync with the package `CHANGELOG.md`. The published GitHub release body is extracted from the merged `CHANGELOG.md` by `release.yml`, not from this PR description._ --- ## [0.1.40](deepagents-code==0.1.39...deepagents-code==0.1.40) (2026-07-16) ### Features - Added plugin marketplace support ([#4554](#4554)). - Added an “always allow” option to the project MCP approval prompt ([#4562](#4562)). - Improved `/goal` workflows: criteria generation now runs server-side, YOLO mode auto-accepts criteria, goals complete after satisfied grading, and goal review editing now supports `Ctrl+X` ([#4754](#4754), [#4784](#4784), [#4781](#4781), [#4780](#4780)). - Reasoning effort now persists across restarts ([#4728](#4728)). - Added a toast prompting you to re-paste when a chat paste collapses ([#4742](#4742)). ### Bug Fixes - Tool calls awaiting approval are now surfaced correctly ([#4739](#4739)). - Fixed transcript tail hydration when scrolled to the bottom edge ([#4733](#4733)). - Kept chat input responsive during MCP viewer `Ctrl+R` reconnects ([#4753](#4753)). - Improved inline free-text prompts by sharing paste handling and matching primary-input `Ctrl+D` behavior ([#4736](#4736), [#4729](#4729)). - Fixed local offloaded tool results to use the real filesystem ([#4740](#4740)). - Cleaned offloaded history when deleting a thread ([#4751](#4751)). - Removed duplicated content from the system prompt by overwriting the base prompt ([#4516](#4516)). - Closed subprocess transport during install teardown ([#4735](#4735)). - Added targeted `uv` constraints for prerelease dependencies ([#4744](#4744)). _End release notes preview._ --- > [!NOTE] > A **New Contributors** section is appended to the GitHub release notes automatically at publish time (see [Release Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline), step 2). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: langchain-oss-automated-triage[bot] <248757908+langchain-oss-automated-triage[bot]@users.noreply.github.com>
Fixed `/goal` criteria being discarded when clearing the completed criteria request from the thread failed. --- Follow-up to #4784. When a YOLO `/goal` criteria run succeeds, cleanup clears the `goal_criteria_request` marker before syncing but ignored a failed clear (checkpoint write failure). A stale marker still naming the just-completed request then made the sync (`_sync_goal_rubric_state_from_thread`) and restore (`_restore_goal_rubric_state`) paths strip the freshly generated `_pending_goal_*` payload, so no review/YOLO acceptance mounted and the criteria were silently lost. The marker now supersedes a proposal only when it names a *different* request than the pending proposal's request id. Made by [Open SWE](https://openswe.vercel.app/agents/6f2018c7-ffa3-ac12-4dab-8eed1142e4c4) --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
) YOLO mode now automatically accepts successfully generated `/goal` acceptance criteria, including amendments, regenerated proposals, and proposals restored from a thread. --- When someone creates, amends, or regenerates a `/goal` while YOLO mode is enabled, dcode still generates acceptance criteria but now accepts a successful proposal without interrupting the workflow with an interactive review. Automatic acceptance reads the live per-thread approval mode and follows the same persistence and continuation path as selecting “Accept proposed criteria.” Turning YOLO on also resolves a proposal already awaiting review, while turning it off before generation finishes preserves the manual review. Failed, cancelled, rejected, stale, and superseded proposals remain fail-closed, and review widgets, futures, tasks, and focus are cleaned up when automatic acceptance takes over. Manual goal review and standalone `/rubric` behavior are unchanged. The transcript explains when YOLO accepted criteria automatically, and `/goal show` continues to expose the accepted objective and criteria.
> [!CAUTION] > Merging this PR will automatically publish to **PyPI** and create a **GitHub release**. For the full release process, see [`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md). --- _Release notes preview: keep this section in sync with the package `CHANGELOG.md`. The published GitHub release body is extracted from the merged `CHANGELOG.md` by `release.yml`, not from this PR description._ --- ## [0.1.40](langchain-ai/deepagents@deepagents-code==0.1.39...deepagents-code==0.1.40) (2026-07-16) ### Features - Added plugin marketplace support ([langchain-ai#4554](langchain-ai#4554)). - Added an “always allow” option to the project MCP approval prompt ([langchain-ai#4562](langchain-ai#4562)). - Improved `/goal` workflows: criteria generation now runs server-side, YOLO mode auto-accepts criteria, goals complete after satisfied grading, and goal review editing now supports `Ctrl+X` ([langchain-ai#4754](langchain-ai#4754), [langchain-ai#4784](langchain-ai#4784), [langchain-ai#4781](langchain-ai#4781), [langchain-ai#4780](langchain-ai#4780)). - Reasoning effort now persists across restarts ([langchain-ai#4728](langchain-ai#4728)). - Added a toast prompting you to re-paste when a chat paste collapses ([langchain-ai#4742](langchain-ai#4742)). ### Bug Fixes - Tool calls awaiting approval are now surfaced correctly ([langchain-ai#4739](langchain-ai#4739)). - Fixed transcript tail hydration when scrolled to the bottom edge ([langchain-ai#4733](langchain-ai#4733)). - Kept chat input responsive during MCP viewer `Ctrl+R` reconnects ([langchain-ai#4753](langchain-ai#4753)). - Improved inline free-text prompts by sharing paste handling and matching primary-input `Ctrl+D` behavior ([langchain-ai#4736](langchain-ai#4736), [langchain-ai#4729](langchain-ai#4729)). - Fixed local offloaded tool results to use the real filesystem ([langchain-ai#4740](langchain-ai#4740)). - Cleaned offloaded history when deleting a thread ([langchain-ai#4751](langchain-ai#4751)). - Removed duplicated content from the system prompt by overwriting the base prompt ([langchain-ai#4516](langchain-ai#4516)). - Closed subprocess transport during install teardown ([langchain-ai#4735](langchain-ai#4735)). - Added targeted `uv` constraints for prerelease dependencies ([langchain-ai#4744](langchain-ai#4744)). _End release notes preview._ --- > [!NOTE] > A **New Contributors** section is appended to the GitHub release notes automatically at publish time (see [Release Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline), step 2). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: langchain-oss-automated-triage[bot] <248757908+langchain-oss-automated-triage[bot]@users.noreply.github.com>
…hain-ai#4785) Fixed `/goal` criteria being discarded when clearing the completed criteria request from the thread failed. --- Follow-up to langchain-ai#4784. When a YOLO `/goal` criteria run succeeds, cleanup clears the `goal_criteria_request` marker before syncing but ignored a failed clear (checkpoint write failure). A stale marker still naming the just-completed request then made the sync (`_sync_goal_rubric_state_from_thread`) and restore (`_restore_goal_rubric_state`) paths strip the freshly generated `_pending_goal_*` payload, so no review/YOLO acceptance mounted and the criteria were silently lost. The marker now supersedes a proposal only when it names a *different* request than the pending proposal's request id. Made by [Open SWE](https://openswe.vercel.app/agents/6f2018c7-ffa3-ac12-4dab-8eed1142e4c4) --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
YOLO mode now automatically accepts successfully generated
/goalacceptance criteria, including amendments, regenerated proposals, and proposals restored from a thread.When someone creates, amends, or regenerates a
/goalwhile YOLO mode is enabled, dcode still generates acceptance criteria but now accepts a successful proposal without interrupting the workflow with an interactive review.Automatic acceptance reads the live per-thread approval mode and follows the same persistence and continuation path as selecting “Accept proposed criteria.” Turning YOLO on also resolves a proposal already awaiting review, while turning it off before generation finishes preserves the manual review. Failed, cancelled, rejected, stale, and superseded proposals remain fail-closed, and review widgets, futures, tasks, and focus are cleaned up when automatic acceptance takes over.
Manual goal review and standalone
/rubricbehavior are unchanged. The transcript explains when YOLO accepted criteria automatically, and/goal showcontinues to expose the accepted objective and criteria.