Skip to content

feat(code): add interactive goal management - #4693

Merged
Mason Daugherty (mdrxy) merged 7 commits into
mainfrom
mdrxy/code/interactive-goal-management
Jul 14, 2026
Merged

feat(code): add interactive goal management#4693
Mason Daugherty (mdrxy) merged 7 commits into
mainfrom
mdrxy/code/interactive-goal-management

Conversation

@mdrxy

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

Copy link
Copy Markdown
Member

Deep Agents Code now supports amending, pausing, and resuming persistent goals while keeping their status visible above the input. Amendments are reviewed before they apply, and paused goals remain saved without driving work or grading until resumed.


Deep Agents Code now keeps goals visible above the input and lets users steer ongoing goal-driven work without cancelling the current task and replaying work.

  • /goal amend <feedback> proposes coordinated updates to the objective and acceptance criteria while preserving unaffected criteria and explicit constraints. The inline review supports accepting, editing, rejecting, or cancelling the proposal before it becomes canonical state.
  • /goal pause saves the goal without letting it drive work or grading. /goal resume continues from the existing conversation and checkpoint rather than resubmitting the original task.
  • The goal panel shows the current objective and its active, paused, blocked, or completed state.
  • Ordinary messages submitted during active goal work retain queue and interruption ordering and steer the next turn under the current goal.

Goal checkpoint changes wait for graph execution and turn-end reconciliation to reach a safe boundary. A goal update accepted during execution applies after the current turn finishes and before a subsequent turn begins. If a user message is already queued, it runs under the updated goal before any synthetic continuation turn.

User stories and before/after examples

Amend a goal without restarting the work

User story: As a user whose requirements change during a long-running task, I want to update the current objective and acceptance criteria without discarding context or repeating work that is already complete.

Before

  1. I start a goal to “Add CSV and JSON export with tests.”
  2. Partway through, I decide that JSON export is out of scope and CSV must also support streaming.
  3. There is no goal-specific amendment flow. I must replace or clear the goal and describe the revised work again, without a review that preserves unaffected criteria and constraints.

After

  1. I run /goal amend Remove JSON export, add streaming CSV support, and keep the existing CSV test requirements.
  2. dcode drafts a coordinated revision of both the objective and criteria while preserving requirements that the feedback did not change.
  3. The inline review lets me accept the proposal, edit its criteria, request another revision, or cancel it.
  4. Once accepted, dcode continues from the existing conversation and work instead of replaying the original task.
Pause a goal while keeping it available to resume

User story: As a user who needs to switch to unrelated work temporarily, I want to pause my current goal so it remains saved but does not affect the intervening prompts.

Before

  1. I have an active multi-turn goal.
  2. To stop that goal from driving later work and grading, I must clear it.
  3. Returning to it requires creating the goal again and redrafting its acceptance criteria.

After

  1. /goal pause saves the objective and criteria with a paused status.
  2. Unrelated prompts run without the paused goal driving work or grading.
  3. /goal resume reactivates the saved goal and continues from the existing conversation and checkpoint without resubmitting the original objective.
See the current goal and lifecycle state while working

User story: As a user working across multiple turns, I want the current goal and its status to remain visible so I can tell what dcode is working toward and whether it needs my input.

Before

The current objective is not persistently visible above the input. I must use /goal show or infer its state from earlier transcript messages.

After

  • A persistent panel above the input shows the current objective.
  • The panel distinguishes active, paused, blocked, and completed states.
  • The display follows checkpoint restoration and lifecycle changes, so reopening a thread or changing the goal state keeps the visible status aligned with the saved goal.
Apply in-flight goal changes without reordering queued input

User story: As a user who amends a goal while the agent is still working, I want the current turn to finish safely and my next message to run under the accepted revision in the order I submitted it.

Before

There is no accepted amendment to coordinate with graph execution, checkpoint writes, and messages already waiting in the queue.

After

  1. If I accept a goal update during an active turn, dcode waits until that turn and its reconciliation finish before changing the saved goal.
  2. The accepted update is applied before a subsequent turn begins.
  3. If I already submitted another message, that message runs first under the updated goal; dcode does not race ahead with a synthetic continuation turn.

@github-actions github-actions Bot added dcode Related to `deepagents-code` feature New feature/enhancement or request for one internal User is a member of the `langchain-ai` GitHub organization size: XL 1000+ LOC labels Jul 13, 2026

@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 found 2 potential issues.

Open in WebView Open SWE trace

Comment thread libs/code/deepagents_code/app.py Outdated
Comment thread libs/code/deepagents_code/goal_tools.py

@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 found 1 potential issue.

Open in WebView Open SWE trace

Comment thread libs/code/deepagents_code/app.py

@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 found 1 potential issue.

Open in WebView Open SWE trace

Comment thread libs/code/deepagents_code/app.py Outdated
@mdrxy
Mason Daugherty (mdrxy) merged commit 64205e2 into main Jul 14, 2026
51 checks passed
@mdrxy
Mason Daugherty (mdrxy) deleted the mdrxy/code/interactive-goal-management branch July 14, 2026 05:49
Mason Daugherty (mdrxy) added a commit that referenced this pull request Jul 14, 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).

---

_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.38](deepagents-code==0.1.37...deepagents-code==0.1.38)
(2026-07-14)

### Features

* Improve `/goal` criteria UX
([#4694](#4694))
([06f46ff](06f46ff))
* Add interactive goal management
([#4693](#4693))
([64205e2](64205e2))
* Conditionally drop `TodoListMiddleware`
([#4685](#4685))
([d3a3077](d3a3077))
* Add `memory.auto_save` config flag
([#4700](#4700))
([55b60ca](55b60ca))
* Trace experimental mode in metadata
([#4705](#4705))
([22d5045](22d5045))

### Bug Fixes

* Align context diff rows with changed rows
([#4714](#4714))
([f9915db](f9915db))
* Hydrate virtualized transcript on scroll offset changes
([#4646](#4646))
([f77eeb0](f77eeb0))
* Keep TODO and edit tools expanded
([#4704](#4704))
([1d549d3](1d549d3))
* Make `/goal` completion and grading reliable
([#4691](#4691))
([9da63c6](9da63c6))
* Preflight Ollama host reachability before discovery probe
([#4702](#4702))
([96fe71a](96fe71a))
* Quiet expected non-repo `git ls-files` logging
([#4701](#4701))
([3d499db](3d499db))
* Rename `ls_agent_kind` to `ls_agent_purpose`
([#4708](#4708))
([2678b16](2678b16))
* Run MCP login during a run, queue the restart
([#4643](#4643))
([65e1ee8](65e1ee8))
* Show "Took &lt;duration&gt;" when `task` tool completes
([#4638](#4638))
([19538e0](19538e0))
* Support unambiguous `read_file` gutters
([#4711](#4711))
([2089b54](2089b54))

---

_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: Mason Daugherty <github@mdrxy.com>
Mason Daugherty (mdrxy) added a commit to langchain-ai/docs that referenced this pull request Jul 14, 2026
Documents the Deep Agents Code `/goal` improvements shipped in
deepagents PRs
[#4691](langchain-ai/deepagents#4691),
[#4693](langchain-ai/deepagents#4693), and
[#4694](langchain-ai/deepagents#4694). Updates
`goals-and-rubrics.mdx` with interactive goal management
(`amend`/`pause`/`resume`), the goal status panel, review options,
reliable completion/clearing behavior, concise outcome-focused criteria
with bounded repo context, and the outcome-specific grader statuses with
an expandable (`Ctrl+O`) detail view. Adds a goal command reference and
refreshes the `quickstart.mdx` `/goal` entry.

Made by [Open
SWE](https://openswe.vercel.app/agents/6e5290ab-5f51-63e8-58c4-ed64168ba1e3)

---------

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
Deep Agents Code now supports amending, pausing, and resuming persistent
goals while keeping their status visible above the input. Amendments are
reviewed before they apply, and paused goals remain saved without
driving work or grading until resumed.

---

Deep Agents Code now keeps goals visible above the input and lets users
steer ongoing goal-driven work without cancelling the current task and
replaying work.

- `/goal amend <feedback>` proposes coordinated updates to the objective
and acceptance criteria while preserving unaffected criteria and
explicit constraints. The inline review supports accepting, editing,
rejecting, or cancelling the proposal before it becomes canonical state.
- `/goal pause` saves the goal without letting it drive work or grading.
`/goal resume` continues from the existing conversation and checkpoint
rather than resubmitting the original task.
- The goal panel shows the current objective and its active, paused,
blocked, or completed state.
- Ordinary messages submitted during active goal work retain queue and
interruption ordering and steer the next turn under the current goal.

Goal checkpoint changes wait for graph execution and turn-end
reconciliation to reach a safe boundary. A goal update accepted during
execution applies after the current turn finishes and before a
subsequent turn begins. If a user message is already queued, it runs
under the updated goal before any synthetic continuation turn.

## User stories and before/after examples

<details>
<summary>Amend a goal without restarting the work</summary>

**User story:** As a user whose requirements change during a
long-running task, I want to update the current objective and acceptance
criteria without discarding context or repeating work that is already
complete.

**Before**

1. I start a goal to “Add CSV and JSON export with tests.”
2. Partway through, I decide that JSON export is out of scope and CSV
must also support streaming.
3. There is no goal-specific amendment flow. I must replace or clear the
goal and describe the revised work again, without a review that
preserves unaffected criteria and constraints.

**After**

1. I run `/goal amend Remove JSON export, add streaming CSV support, and
keep the existing CSV test requirements`.
2. dcode drafts a coordinated revision of both the objective and
criteria while preserving requirements that the feedback did not change.
3. The inline review lets me accept the proposal, edit its criteria,
request another revision, or cancel it.
4. Once accepted, dcode continues from the existing conversation and
work instead of replaying the original task.

</details>

<details>
<summary>Pause a goal while keeping it available to resume</summary>

**User story:** As a user who needs to switch to unrelated work
temporarily, I want to pause my current goal so it remains saved but
does not affect the intervening prompts.

**Before**

1. I have an active multi-turn goal.
2. To stop that goal from driving later work and grading, I must clear
it.
3. Returning to it requires creating the goal again and redrafting its
acceptance criteria.

**After**

1. `/goal pause` saves the objective and criteria with a paused status.
2. Unrelated prompts run without the paused goal driving work or
grading.
3. `/goal resume` reactivates the saved goal and continues from the
existing conversation and checkpoint without resubmitting the original
objective.

</details>

<details>
<summary>See the current goal and lifecycle state while
working</summary>

**User story:** As a user working across multiple turns, I want the
current goal and its status to remain visible so I can tell what dcode
is working toward and whether it needs my input.

**Before**

The current objective is not persistently visible above the input. I
must use `/goal show` or infer its state from earlier transcript
messages.

**After**

- A persistent panel above the input shows the current objective.
- The panel distinguishes active, paused, blocked, and completed states.
- The display follows checkpoint restoration and lifecycle changes, so
reopening a thread or changing the goal state keeps the visible status
aligned with the saved goal.

</details>

<details>
<summary>Apply in-flight goal changes without reordering queued
input</summary>

**User story:** As a user who amends a goal while the agent is still
working, I want the current turn to finish safely and my next message to
run under the accepted revision in the order I submitted it.

**Before**

There is no accepted amendment to coordinate with graph execution,
checkpoint writes, and messages already waiting in the queue.

**After**

1. If I accept a goal update during an active turn, dcode waits until
that turn and its reconciliation finish before changing the saved goal.
2. The accepted update is applied before a subsequent turn begins.
3. If I already submitted another message, that message runs first under
the updated goal; dcode does not race ahead with a synthetic
continuation turn.

</details>
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).

---

_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.38](langchain-ai/deepagents@deepagents-code==0.1.37...deepagents-code==0.1.38)
(2026-07-14)

### Features

* Improve `/goal` criteria UX
([langchain-ai#4694](langchain-ai#4694))
([06f46ff](langchain-ai@06f46ff))
* Add interactive goal management
([langchain-ai#4693](langchain-ai#4693))
([64205e2](langchain-ai@64205e2))
* Conditionally drop `TodoListMiddleware`
([langchain-ai#4685](langchain-ai#4685))
([d3a3077](langchain-ai@d3a3077))
* Add `memory.auto_save` config flag
([langchain-ai#4700](langchain-ai#4700))
([55b60ca](langchain-ai@55b60ca))
* Trace experimental mode in metadata
([langchain-ai#4705](langchain-ai#4705))
([22d5045](langchain-ai@22d5045))

### Bug Fixes

* Align context diff rows with changed rows
([langchain-ai#4714](langchain-ai#4714))
([f9915db](langchain-ai@f9915db))
* Hydrate virtualized transcript on scroll offset changes
([langchain-ai#4646](langchain-ai#4646))
([f77eeb0](langchain-ai@f77eeb0))
* Keep TODO and edit tools expanded
([langchain-ai#4704](langchain-ai#4704))
([1d549d3](langchain-ai@1d549d3))
* Make `/goal` completion and grading reliable
([langchain-ai#4691](langchain-ai#4691))
([9da63c6](langchain-ai@9da63c6))
* Preflight Ollama host reachability before discovery probe
([langchain-ai#4702](langchain-ai#4702))
([96fe71a](langchain-ai@96fe71a))
* Quiet expected non-repo `git ls-files` logging
([langchain-ai#4701](langchain-ai#4701))
([3d499db](langchain-ai@3d499db))
* Rename `ls_agent_kind` to `ls_agent_purpose`
([langchain-ai#4708](langchain-ai#4708))
([2678b16](langchain-ai@2678b16))
* Run MCP login during a run, queue the restart
([langchain-ai#4643](langchain-ai#4643))
([65e1ee8](langchain-ai@65e1ee8))
* Show "Took &lt;duration&gt;" when `task` tool completes
([langchain-ai#4638](langchain-ai#4638))
([19538e0](langchain-ai@19538e0))
* Support unambiguous `read_file` gutters
([langchain-ai#4711](langchain-ai#4711))
([2089b54](langchain-ai@2089b54))

---

_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: 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` feature New feature/enhancement or request for one internal User is a member of the `langchain-ai` GitHub organization size: XL 1000+ LOC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant