Skip to content

feat(code): frame HITL rejection reasons for the model - #5259

Merged
Mason Daugherty (mdrxy) merged 2 commits into
mainfrom
mdrxy/code/hitl-reject-reason-framing
Aug 3, 2026
Merged

feat(code): frame HITL rejection reasons for the model#5259
Mason Daugherty (mdrxy) merged 2 commits into
mainfrom
mdrxy/code/hitl-reject-reason-framing

Conversation

@mdrxy

@mdrxy Mason Daugherty (mdrxy) commented Aug 3, 2026

Copy link
Copy Markdown
Member

Rejecting a tool call with a typed reason now tells the model that a user rejected the call, instead of sending the bare reason on its own.


When a reason is typed into the rejection reason field (Tab on Reject), the human-in-the-loop middleware uses that string as the entire synthetic tool result, replacing its built-in "user rejected the tool call…" wording. A terse reason like "wrong file" therefore reached the model with no signal about who produced it or why the tool never ran — only an error status.

The client now frames the typed reason as User rejected the tool call with reason: <reason> before it becomes the rejection decision's message. The framing is applied at the point where the approval decision is translated into a RejectDecision, so the tool row in the transcript still renders the user's raw text, and a bare reject (no reason) still falls back to the middleware's canned wording.

Made by Open SWE

Stock HITL replaces its canned rejection wording with the user's raw
text, so a terse reason reached the model with no indication that a user
rejected the tool call. Prefix it before it becomes the synthetic
ToolMessage while the tool row keeps showing the raw text.

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
@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: S 50-199 LOC labels Aug 3, 2026
@mdrxy
Mason Daugherty (mdrxy) marked this pull request as ready for review August 3, 2026 18:36
@mdrxy
Mason Daugherty (mdrxy) merged commit 89c814b into main Aug 3, 2026
54 checks passed
@mdrxy
Mason Daugherty (mdrxy) deleted the mdrxy/code/hitl-reject-reason-framing branch August 3, 2026 18:43
Johannes du Plessis (johannes117) pushed a commit that referenced this pull request Aug 4, 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`. Publish reads the merged CHANGELOG via `release.yml`,
not this PR description — keep them aligned anyway so the PR stays an
accurate historical record for reviewers and anyone returning later._

---


##
[0.1.52](deepagents-code==0.1.51...deepagents-code==0.1.52)
(2026-08-04)

### Features

- Hooks v2 is now generally available, with support for loading hooks
from installed plugins.
([#5307](#5307),
[#5198](#5198))
- Auto approval classifier configuration now supports selecting the
classifier model and setting a review timeout.
([#5205](#5205),
[#5302](#5302))
- HITL rejection reasons are now framed for the model, and the approval
menu makes reject-with-feedback easier to discover.
([#5259](#5259),
[#5260](#5260))
- Added a tri-state `DEEPAGENTS_CODE_ONBOARDING` environment variable.
([#5301](#5301))
- The `/model` footer Ctrl+N hint now follows the current display mode.
([#5247](#5247))
- The price catalog now refreshes hourly in the background.
([#5264](#5264))
- Updated recommendations to include DeepSeek V4 Flash 0731.
([#5244](#5244))

### Bug Fixes

- Fixed several Hooks v2 lifecycle issues: session-end teardown is now
bounded, hooks refresh after cwd switches, malformed hook resumes are
handled, hook stops surface without agent errors, and unused
`SessionEndCause` members were removed.
([#5248](#5248),
[#5249](#5249),
[#5233](#5233),
[#5276](#5276),
[#5240](#5240))
- `PreCompact` now fires before auto-compaction.
([#5277](#5277))

_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>
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: S 50-199 LOC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant