feat(code): allow muting the "YOLO is active" toast - #5103
Merged
Conversation
Users who deliberately live in YOLO see the no-review warning on every launch and every switch back into the mode, with no way to turn it off. Route both toasts through `_warn_yolo_active`, which honors a new `yolo` key in `[warnings].suppress`, and add the matching `/notifications` checkbox. Suppression is cosmetic only: the first-enable acknowledgement and the status-bar indicator are untouched. Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Follow-ups on muting the "YOLO is active" toast, so a bad config can never silently hide it: - `is_warning_suppressed` type-checks the `[warnings]` section. A hand-edited `warnings = ["yolo"]` used to raise `AttributeError` out of the chained `.get`, straight through the mode switch. - `_warn_yolo_active` guards the suppression lookup and warns anyway if it fails, so an unreadable config cannot swallow the notice. - A failed write in `/notifications` reverts the checkbox to disk state instead of claiming a warning is armed while it is still suppressed. Also expands the suppression docstrings to spell out what muting leaves untouched, and covers the startup path, the acknowledgement gate, and the unsuppress direction in tests.
Marcelo5444
pushed a commit
to Marcelo5444/deepagents
that referenced
this pull request
Jul 30, 2026
The recurring "YOLO is active" warning toast can now be turned off from `/notifications`, or by adding `yolo` to `[warnings].suppress` in `config.toml`. --- People who deliberately live in YOLO get the no-review warning on every launch and on every switch back into the mode, with no way to opt out. Both call sites now go through a single `_warn_yolo_active` helper that honors a new `yolo` key in the existing `[warnings].suppress` list — the same mechanism already used for the ripgrep and Tavily warnings — so the opt-out is both a config key and a checkbox in the `/notifications` modal. The suppression is deliberately cosmetic. The first-enable acknowledgement modal, the `startup.yolo_switcher` policy, and the status-bar mode indicator are all untouched, so unrestricted mode still requires an explicit opt-in and stays visible while it is on. <details> <summary>Test plan</summary> - New tests cover the default warning, the muted path, that muting does not weaken the mode switch or the status-bar indicator, and that the new `/notifications` checkbox persists the key. </details> Made by [Open SWE](https://openswe.vercel.app/agents/40b5babe-cea3-6b01-d998-fc3b980ad406) --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Mason Daugherty (mdrxy)
pushed a commit
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`. 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.50](deepagents-code==0.1.49...deepagents-code==0.1.50) (2026-07-30) ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedback ([#5105](#5105), [#5104](#5104), [#4997](#4997), [#5045](#5045)). - Added an option to mute the “YOLO is active” toast ([#5103](#5103)). - Made the splash screen `thread` ID clickable to copy it ([#5173](#5173)). - Show `ask_user` answers directly on the answered tool row ([#5100](#5100)). - Show a toast when submitting an empty required `ask_user` answer ([#5095](#5095)). - Added thread message counts to the Debug Console ([#5117](#5117)). ### Fixes and improvements - Gated Hooks v2 behind `DEEPAGENTS_CODE_EXPERIMENTAL` and improved hook resume stability across identity and Command tool results ([#5146](#5146), [#5176](#5176)). - Kept server hook state out of task results ([#5164](#5164)). - Stopped duplicate Auto transcript events during interrupt replay ([#5157](#5157)). - Kept `/update` and `/install --package` prompts responsive ([#5127](#5127)). - Refreshed the `/threads` cache after each turn ([#5174](#5174)). - Anchored toasts above the chat input and added a toast when media is dropped into a free-text question ([#5101](#5101), [#5099](#5099)). - Improved thread status message styling and links ([#5118](#5118)). - Made resume hints echo the launched command name ([#5119](#5119)). - Scoped selection copy to the clicked screen ([#5140](#5140)). - Ignored mouse hits on detached widgets ([#5114](#5114)). _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> Co-authored-by: Johannes du Plessis <johannes@langchain.dev>
Mason Daugherty (mdrxy)
pushed a commit
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`. 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.50](deepagents-code==0.1.49...deepagents-code==0.1.50) (2026-07-30) ### Highlights - Added project hooks workspace trust and expanded Hooks v2 support with client and server lifecycle events plus runtime feedback ([#5105](#5105), [#5104](#5104), [#4997](#4997), [#5045](#5045)). - Added an option to mute the “YOLO is active” toast ([#5103](#5103)). - Made the splash screen `thread` ID clickable to copy it ([#5173](#5173)). - Show `ask_user` answers directly on the answered tool row ([#5100](#5100)). - Show a toast when submitting an empty required `ask_user` answer ([#5095](#5095)). - Added thread message counts to the Debug Console ([#5117](#5117)). ### Fixes and improvements - Gated Hooks v2 behind `DEEPAGENTS_CODE_EXPERIMENTAL` and improved hook resume stability across identity and Command tool results ([#5146](#5146), [#5176](#5176)). - Kept server hook state out of task results ([#5164](#5164)). - Stopped duplicate Auto transcript events during interrupt replay ([#5157](#5157)). - Kept `/update` and `/install --package` prompts responsive ([#5127](#5127)). - Refreshed the `/threads` cache after each turn ([#5174](#5174)). - Anchored toasts above the chat input and added a toast when media is dropped into a free-text question ([#5101](#5101), [#5099](#5099)). - Improved thread status message styling and links ([#5118](#5118)). - Made resume hints echo the launched command name ([#5119](#5119)). - Scoped selection copy to the clicked screen ([#5140](#5140)). - Ignored mouse hits on detached widgets ([#5114](#5114)). _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> Co-authored-by: Johannes du Plessis <johannes@langchain.dev>
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.
The recurring "YOLO is active" warning toast can now be turned off from
/notifications, or by addingyoloto[warnings].suppressinconfig.toml.People who deliberately live in YOLO get the no-review warning on every launch and on every switch back into the mode, with no way to opt out. Both call sites now go through a single
_warn_yolo_activehelper that honors a newyolokey in the existing[warnings].suppresslist — the same mechanism already used for the ripgrep and Tavily warnings — so the opt-out is both a config key and a checkbox in the/notificationsmodal.The suppression is deliberately cosmetic. The first-enable acknowledgement modal, the
startup.yolo_switcherpolicy, and the status-bar mode indicator are all untouched, so unrestricted mode still requires an explicit opt-in and stays visible while it is on.Test plan
/notificationscheckbox persists the key.Made by Open SWE