From cdf4876bfe1a53920c94d2c8839920c060ca5c71 Mon Sep 17 00:00:00 2001 From: ygd58 Date: Wed, 1 Apr 2026 12:28:19 +0200 Subject: [PATCH] fix(cli): skip tool-call-only entries in resume recap, expose limits as config options --- cli.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cli.py b/cli.py index d78e9d0e69a..89a9af4f022 100644 --- a/cli.py +++ b/cli.py @@ -5088,10 +5088,13 @@ class HermesCLI: if self.resume_display == "minimal": return - MAX_DISPLAY_EXCHANGES = 10 # max user+assistant pairs to show - MAX_USER_LEN = 300 # truncate user messages - MAX_ASST_LEN = 200 # truncate assistant text - MAX_ASST_LINES = 3 # max lines of assistant text + # Read limits from config (with hardcoded defaults) + _disp = CLI_CONFIG.get("display", {}) + MAX_DISPLAY_EXCHANGES = int(_disp.get("resume_exchanges", 10)) + MAX_USER_LEN = int(_disp.get("resume_max_user_chars", 300)) + MAX_ASST_LEN = int(_disp.get("resume_max_assistant_chars", 200)) + MAX_ASST_LINES = int(_disp.get("resume_max_assistant_lines", 3)) + SKIP_TOOL_ONLY = _disp.get("resume_skip_tool_only", True) # Collect displayable entries (skip system, tool-result messages) entries = [] # list of (role, display_text) @@ -5154,6 +5157,10 @@ class HermesCLI: if not parts: # Skip pure-reasoning messages that have no visible output continue + # Skip tool-call-only entries when SKIP_TOOL_ONLY is enabled + has_text = bool(text) + if SKIP_TOOL_ONLY and not has_text and tool_calls: + continue entries.append(("assistant", " ".join(parts))) _last_asst_idx = len(entries) - 1 _last_asst_full = " ".join(full_parts)