From 9ef013cf23a38d1f3aa7ca70a51bba78e2886511 Mon Sep 17 00:00:00 2001 From: BarnacleBoy Date: Thu, 28 May 2026 19:54:20 +0000 Subject: [PATCH] fix(cli): decouple quiet_mode from -v flag, derive from tool_progress_mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit quiet_mode was set to , making every non-verbose session silently suppress tool result output in tool_executor.py — even when display.tool_progress was configured as 'all'. The two rendering branches in tool_executor (quiet-tool-messages and not-quiet-mode) both failed, so only the spinner callback's one-liner was visible. Now quiet_mode derives from tool_progress_mode: True only when 'off', False for 'all', 'new', and 'verbose'. The /verbose cycle also syncs agent.quiet_mode to stay consistent. Fixes #33860 --- cli.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cli.py b/cli.py index aeffd8bad..e2b918a61 100644 --- a/cli.py +++ b/cli.py @@ -4961,7 +4961,7 @@ class HermesCLI: enabled_toolsets=self.enabled_toolsets, disabled_toolsets=self.disabled_toolsets, verbose_logging=self.verbose, - quiet_mode=not self.verbose, + quiet_mode=(self.tool_progress_mode == "off"), ephemeral_system_prompt=self.system_prompt if self.system_prompt else None, prefill_messages=self.prefill_messages or None, reasoning_config=self.reasoning_config, @@ -9606,6 +9606,9 @@ class HermesCLI: if self.agent: self.agent.reasoning_callback = self._current_reasoning_callback() + # Keep agent quiet_mode in sync with the new tool_progress_mode + # so tool_executor rendering paths stay consistent. + self.agent.quiet_mode = (self.tool_progress_mode == "off") # Use raw ANSI codes via _cprint so the output is routed through # prompt_toolkit's renderer. self.console.print() with Rich markup