NousResearch/hermes-agent

Session title display and resume UX fixes

Cluster 14082 · hermes cli. Data as of

1 open item. Fix merged in #31710 on 24 May 2026. Check it covers your case.

The short answer

0open issues
1open PR
7items grouped
Known?
Yes. 7 related items grouped here, 2 issues already closed.
Fix event
A fix was merged to main in PR #31710. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this partially resolved, deciding PR #31710. That is separate from the fix event.
Still open
0 issues and 1 PR.

Multiple issues and PRs address truncated session titles in the /resume command, including display length limits, prefix matching, and a related security scoping concern for session endpoints.

Open issues0

No open issues.

Open PRs1

  • PR#15373fix(cli): increase session list title display from 30 to 50 chars (#14082)

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #31710 fix(cli): show full session titles in /resume list (#14082)

    merged to main

    files: cli.py, tests/cli/test_cli_init.py

    Show the diff
    • cli.py
      @@ -6175,7 +6175,7 @@ def _show_recent_sessions(self, *, reason: str = "history", limit: int = 10) ->
               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']}")
    • tests/cli/test_cli_init.py
      @@ -360,6 +360,34 @@ def test_resume_updates_hermes_session_id_env_and_context(self, tmp_path):
                   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).
       

3 PRs closed without merging

From the close comments: done elsewhere 1 · duplicate 1 · merged via another change 1

  • #14098 fix(cli): show full titles in /resume session list · merged via another change → #31710, #14082
  • #14133 fix(cli): show full titles in /resume list instead of silently truncating · duplicate → #14098
  • #14411 fix(resume): accept unique truncated title prefixes · done elsewhere → 6c44d53, #31710, #14082
Closed issues · 2
  • Closed#14082/resume fails on title match because display truncates titles to 30 chars
  • Closed#15537[Feishu] /resume shows session titles but requires session IDs — UX mismatch
How this cluster was grouped
  • Link evidence (partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
  • Members outside that structural core may belong to a different underlying problem.
  • Pairwise link density 0.26: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
hermes cli
Merged PRs
#31710
Closed issues
2
Attempts
3 PRs closed without merging
Fix link checked
24 May 2026

For your agent

The same facts, typed.