Summary
clarify with multiple choices works on Telegram (inline buttons).
On Mattermost the question is rendered as a numbered text list, but the
user's typed reply is never intercepted. The agent blocks on
wait_for_response until the 10-minute timeout, then gets an empty
response.
Root cause
tools/clarify_gateway.py:95 sets awaiting_text = not bool(choices),
which is False when choices are provided. get_pending_for_session
(line 171) returns only entries with awaiting_text == True, so the
user's reply is never matched against the pending clarify.
Steps to reproduce
- Run Hermes gateway with Mattermost adapter
- Trigger
clarify with multiple choices
- Numbered list is sent correctly
- Reply with a number (e.g. "2") or choice text
- Agent times out after 10 minutes with
[user did not respond within 10m]
Expected behavior
When the base send_clarify uses the numbered-text fallback for
multiple-choice clarify, the next user message in that session should be
intercepted and resolved, just as it already works for open-ended clarify
(choices=None).
Environment
- Hermes HEAD: 942adf6
- Platform: Mattermost
Summary
clarifywith multiple choices works on Telegram (inline buttons).On Mattermost the question is rendered as a numbered text list, but the
user's typed reply is never intercepted. The agent blocks on
wait_for_responseuntil the 10-minute timeout, then gets an emptyresponse.
Root cause
tools/clarify_gateway.py:95setsawaiting_text = not bool(choices),which is
Falsewhen choices are provided.get_pending_for_session(line 171) returns only entries with
awaiting_text == True, so theuser's reply is never matched against the pending clarify.
Steps to reproduce
clarifywith multiple choices[user did not respond within 10m]Expected behavior
When the base
send_clarifyuses the numbered-text fallback formultiple-choice clarify, the next user message in that session should be
intercepted and resolved, just as it already works for open-ended clarify
(
choices=None).Environment