IndexError from whitespace-only input in build_plan_path

NousResearch/hermes-agent · cluster 2745 · agent

Data as of

Nothing open on GitHub. Fix merged in #26245. Check it covers your case.

The short answer

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

Multiple bug reports and proposed fixes addressing an unguarded str.split() index access in build_plan_path that raises an IndexError when given whitespace-only input. Related guards are also proposed for Slack command text parsing.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

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

  • #26245 fix(slack): guard split()[0] against whitespace-only command text

    merged to main

    files: gateway/platforms/slack.py, scripts/release.py

    Show the diff
    • gateway/platforms/slack.py
      @@ -2785,7 +2785,10 @@ async def _handle_slash_command(self, command: dict) -> None:
                   from hermes_cli.commands import slack_subcommand_map
                   subcommand_map = slack_subcommand_map()
                   subcommand_map["compact"] = "/compress"
      -            first_word = text.split()[0] if text else ""
      +            # Guard against whitespace-only text where ``text`` is truthy but
      +            # ``text.split()`` returns ``[]`` (e.g. user sends ``/hermes   ``).
      +            parts = text.split() if text else []
      +            first_word = parts[0] if parts else ""
                   if first_word in subcommand_map:
                       rest = text[len(first_word):].strip()
                       text = f"{subcommand_map[first_word]} {rest}".strip() if rest else subcommand_map[first_word]
    • scripts/release.py
      @@ -1069,6 +1069,8 @@
           "[redacted:email]": "yifengingit",  # PR #25589 salvage (AUTOINCREMENT id ordering)
           "[redacted:email]": "vanthinh6886",  # PR #25562 salvage (.env 0600 perms)
           "[redacted:email]": "Arkmusn",  # PR #25559 salvage (approvals.timeout from config)
      +    "[redacted:email]": "nidhi-singh02",  # PR #2752 salvage (slack whitespace-only IndexError guard)
      +    "[redacted:email]": "nidhi-singh02",
       }
       
       

5 PRs closed without merging

From the close comments: PR volume cleanup 1 · done elsewhere 1 · duplicate 1 · merged via another change 1 · superseded by another PR 1

  • #2752 fix: guard str.split() index access against empty results · merged via another change → #26245
  • #7474 fix(skills): prevent IndexError in build_plan_path on whitespace-only input · PR volume cleanup
  • #7613 fix(plan): guard build_plan_path against whitespace-only input · superseded by another PR → #7474
  • #7692 fix: guard build_plan_path against whitespace-only input · duplicate → #7474, #7613
  • #9102 fix(agent): handle whitespace-only input in build_plan_path · done elsewhere → b2e124d, #15047
Closed issues · 2
  • Closed#2745[Bug]: Unchecked str.split() index access can raise IndexError
  • Closed#7576[Bug]: IndexError in build_plan_path on whitespace-only input
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.23: 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
agent
Merged PRs
#26245
Closed issues
2
Attempts
5 PRs closed without merging
Fix link checked
15 May 2026

For your agent

The same facts, typed.