Skip to content

fix(code): avoid duplicate "criteria ready" message on /goal revisions - #4559

Merged
Mason Daugherty (mdrxy) merged 2 commits into
mainfrom
open-swe/goal-revision-duplicate-message
Jul 9, 2026
Merged

fix(code): avoid duplicate "criteria ready" message on /goal revisions#4559
Mason Daugherty (mdrxy) merged 2 commits into
mainfrom
open-swe/goal-revision-duplicate-message

Conversation

@mdrxy

@mdrxy Mason Daugherty (mdrxy) commented Jul 8, 2026

Copy link
Copy Markdown
Member

Fixed /goal showing a duplicate "Proposed acceptance criteria are ready." message when revising proposed criteria.


When using /goal and going through revision cycles of the proposed criteria, _propose_goal_rubric re-announced "Proposed acceptance criteria are ready." on every regeneration, so the transcript accumulated a duplicate message each cycle. This suppresses the success message when regenerating from feedback (the review widget is remounted with the updated criteria anyway) while still surfacing any unsaved-state warning.

Made by Open SWE

@github-actions github-actions Bot added dcode Related to `deepagents-code` fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization open-swe size: XS < 50 LOC labels Jul 8, 2026
@mdrxy Mason Daugherty (mdrxy) changed the title fix: avoid duplicate "criteria ready" message on /goal revisions fix(code): avoid duplicate "criteria ready" message on /goal revisions Jul 8, 2026
@mdrxy Mason Daugherty (mdrxy) changed the title fix(code): avoid duplicate "criteria ready" message on /goal revisions fix(code): avoid duplicate "criteria ready" message on /goal revisions Jul 8, 2026
@mdrxy
Mason Daugherty (mdrxy) marked this pull request as ready for review July 8, 2026 15:29

@open-swe open-swe Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Open SWE Review: No issues found

Open SWE reviewed this PR and found no potential bugs to report.

Open in WebView Open SWE trace

During `/goal` revision cycles, `_propose_goal_rubric` re-announced
"Proposed acceptance criteria are ready." on every regeneration, so the
transcript accumulated a duplicate message each cycle. Suppress the
success message when regenerating from feedback while still surfacing any
unsaved-state warning.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
@mdrxy
Mason Daugherty (mdrxy) force-pushed the open-swe/goal-revision-duplicate-message branch from 9ef16c2 to 230ae01 Compare July 8, 2026 21:06
@github-actions github-actions Bot added size: S 50-199 LOC and removed size: XS < 50 LOC labels Jul 8, 2026
Address PR review findings on the duplicate "criteria ready" fix:

- Stub `_start_pending_goal_rubric_review` in the dedup test so it no
  longer schedules a real goal-review task, and drop the now-unused
  review-future plumbing.
- Add coverage for the revision path where the success message is
  suppressed but the write fails, asserting the unsaved-state warning
  still surfaces.
- Fix a latent race in `test_load_thread_history_remounts_pending_goal_review`
  that flaked under event-loop load: wait for the `call_after_refresh`
  task instead of racing a single pause.
- Clarify the revision-suppression comment in `_propose_goal_rubric` so
  it no longer implies the widget remount causes the duplicate message.
@mdrxy
Mason Daugherty (mdrxy) force-pushed the open-swe/goal-revision-duplicate-message branch from 230ae01 to 19e3b13 Compare July 9, 2026 00:51
@mdrxy
Mason Daugherty (mdrxy) merged commit 1110497 into main Jul 9, 2026
52 of 54 checks passed
@mdrxy
Mason Daugherty (mdrxy) deleted the open-swe/goal-revision-duplicate-message branch July 9, 2026 01:08
Mason Daugherty (mdrxy) added a commit that referenced this pull request Jul 9, 2026
> [!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).

---

_Everything below this line will be the GitHub release body._

---


##
[0.1.35](deepagents-code==0.1.34...deepagents-code==0.1.35)
(2026-07-09)

### Features

* Restore interrupted prompt to input on ESC
([#4544](#4544))
([fccf037](fccf037))
* Add `[startup].mode` default approval mode
([#4573](#4573))
([7c5bf54](7c5bf54))
* Offer restart after saving Tavily key via `/auth`
([#4560](#4560))
([12df81a](12df81a))
* Reload env from `/auth` modal via Ctrl+R
([#4566](#4566))
([f07d638](f07d638))
* Toast on saved `/auth` API key
([#4558](#4558))
([ee3c264](ee3c264))

### Bug Fixes

* Harden approval content rendering
([#4581](#4581))
([38446fd](38446fd))
* Preserve transcript order during virtualization
([#4549](#4549))
([f6ee70c](f6ee70c))
* Run stdio MCP server pre-flight check off the event loop
([#4434](#4434))
([c9636e2](c9636e2))
* Avoid duplicate "criteria ready" message on `/goal` revisions
([#4559](#4559))
([1110497](1110497))
* Restore welcome banner tips
([#4528](#4528))
([3f1e55e](3f1e55e))
* Clarify managed `rg` install failures
([#4578](#4578))
([434c84a](434c84a))
* Dedupe update/install log path output
([#4553](#4553))
([1398fee](1398fee))
* Keep notification center open for API-key entry
([#4568](#4568))
([6e89417](6e89417))
* Queue `/mcp login` sent before the server connects
([#4533](#4533))
([edac82c](edac82c))
* Serialize MCP OAuth token refreshes to prevent reuse revocation
([#4565](#4565))
([c37100d](c37100d))

---

_Everything above this line will be the GitHub release body._

---

> [!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: Mason Daugherty <github@mdrxy.com>
Marcelo5444 pushed a commit to Marcelo5444/deepagents that referenced this pull request Jul 30, 2026
…ons (langchain-ai#4559)

Fixed `/goal` showing a duplicate "Proposed acceptance criteria are
ready." message when revising proposed criteria.

---

When using `/goal` and going through revision cycles of the proposed
criteria, `_propose_goal_rubric` re-announced "Proposed acceptance
criteria are ready." on every regeneration, so the transcript
accumulated a duplicate message each cycle. This suppresses the success
message when regenerating from feedback (the review widget is remounted
with the updated criteria anyway) while still surfacing any
unsaved-state warning.

Made by [Open
SWE](https://openswe.vercel.app/agents/2b61a2fb-628a-5e98-6e33-5cc275d5d42a)

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Marcelo5444 pushed a commit to Marcelo5444/deepagents that referenced this pull request Jul 30, 2026
> [!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).

---

_Everything below this line will be the GitHub release body._

---


##
[0.1.35](langchain-ai/deepagents@deepagents-code==0.1.34...deepagents-code==0.1.35)
(2026-07-09)

### Features

* Restore interrupted prompt to input on ESC
([langchain-ai#4544](langchain-ai#4544))
([fccf037](langchain-ai@fccf037))
* Add `[startup].mode` default approval mode
([langchain-ai#4573](langchain-ai#4573))
([7c5bf54](langchain-ai@7c5bf54))
* Offer restart after saving Tavily key via `/auth`
([langchain-ai#4560](langchain-ai#4560))
([12df81a](langchain-ai@12df81a))
* Reload env from `/auth` modal via Ctrl+R
([langchain-ai#4566](langchain-ai#4566))
([f07d638](langchain-ai@f07d638))
* Toast on saved `/auth` API key
([langchain-ai#4558](langchain-ai#4558))
([ee3c264](langchain-ai@ee3c264))

### Bug Fixes

* Harden approval content rendering
([langchain-ai#4581](langchain-ai#4581))
([38446fd](langchain-ai@38446fd))
* Preserve transcript order during virtualization
([langchain-ai#4549](langchain-ai#4549))
([f6ee70c](langchain-ai@f6ee70c))
* Run stdio MCP server pre-flight check off the event loop
([langchain-ai#4434](langchain-ai#4434))
([c9636e2](langchain-ai@c9636e2))
* Avoid duplicate "criteria ready" message on `/goal` revisions
([langchain-ai#4559](langchain-ai#4559))
([1110497](langchain-ai@1110497))
* Restore welcome banner tips
([langchain-ai#4528](langchain-ai#4528))
([3f1e55e](langchain-ai@3f1e55e))
* Clarify managed `rg` install failures
([langchain-ai#4578](langchain-ai#4578))
([434c84a](langchain-ai@434c84a))
* Dedupe update/install log path output
([langchain-ai#4553](langchain-ai#4553))
([1398fee](langchain-ai@1398fee))
* Keep notification center open for API-key entry
([langchain-ai#4568](langchain-ai#4568))
([6e89417](langchain-ai@6e89417))
* Queue `/mcp login` sent before the server connects
([langchain-ai#4533](langchain-ai#4533))
([edac82c](langchain-ai@edac82c))
* Serialize MCP OAuth token refreshes to prevent reuse revocation
([langchain-ai#4565](langchain-ai#4565))
([c37100d](langchain-ai@c37100d))

---

_Everything above this line will be the GitHub release body._

---

> [!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: Mason Daugherty <github@mdrxy.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dcode Related to `deepagents-code` fix A bug fix (PATCH) internal User is a member of the `langchain-ai` GitHub organization open-swe size: S 50-199 LOC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant