From 6c44d537cc207628e13901ae8d3a65f2c437364f Mon Sep 17 00:00:00 2001 From: LeonSGP43 <154585401+LeonSGP43@users.noreply.github.com> Date: Thu, 23 Apr 2026 02:17:35 +0800 Subject: [PATCH] fix(cli): show full session titles in /resume list --- cli.py | 2 +- tests/cli/test_cli_init.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/cli.py b/cli.py index 92be2c487cf..93c6bcfb7d1 100644 --- a/cli.py +++ b/cli.py @@ -6175,7 +6175,7 @@ class HermesCLI: print(f" {'Title':<32} {'Preview':<40} {'Last Active':<13} {'ID'}") print(f" {'─' * 32} {'─' * 40} {'─' * 13} {'─' * 24}") for session in sessions: - title = (session.get("title") or "—")[:30] + title = session.get("title") or "—" preview = (session.get("preview") or "")[:38] last_active = _relative_time(session.get("last_active")) print(f" {title:<32} {preview:<40} {last_active:<13} {session['id']}") diff --git a/tests/cli/test_cli_init.py b/tests/cli/test_cli_init.py index 5f163942283..cdd6c090dc4 100644 --- a/tests/cli/test_cli_init.py +++ b/tests/cli/test_cli_init.py @@ -360,6 +360,34 @@ class TestHistoryDisplay: os.environ.pop("HERMES_SESSION_ID", None) _VAR_MAP["HERMES_SESSION_ID"].set(_UNSET) + def test_resume_list_shows_full_long_titles(self, capsys): + """Long session titles render in full in the /resume table — not + truncated to 30 chars (fixes #14082).""" + cli = _make_cli() + cli.session_id = "current" + cli._session_db = MagicMock() + long_title = "Salvage BytePlus Volcengine PR With Fixes" + cli._session_db.list_sessions_rich.return_value = [ + { + "id": "current", + "title": "Current", + "preview": "Current preview", + "last_active": 0, + }, + { + "id": "20260401_201329_d85961", + "title": long_title, + "preview": "fix byteplus pr and resume", + "last_active": 0, + }, + ] + + cli._handle_resume_command("/resume") + output = capsys.readouterr().out + + assert long_title in output + assert "20260401_201329_d85961" in output + def test_sessions_command_no_args_lists_recent_sessions(self, capsys): """/sessions with no args prints the recent-sessions table (TUI parity).