hermes - 💡(How to fix) Fix Telegram inline approval buttons do not resume typing indicator after command approval [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Fix Action

Fixed

Code Example

_adapter.resume_typing_for_chat(source.chat_id)

---

count = resolve_gateway_approval(session_key, choice)
if count and query.message:
    self.resume_typing_for_chat(str(query.message.chat_id))
RAW_BUFFERClick to expand / collapse

Bug Description

When a Telegram user approves a dangerous command using the inline keyboard approval buttons, the agent resumes execution but Telegram typing status does not resume. The typing indicator disappears for the rest of the long-running turn even though the command is still running.

The text command path (/approve and /deny) explicitly resumes typing, but the Telegram inline button callback path does not.

Steps to Reproduce

  1. Trigger a Telegram gateway task that requests dangerous-command approval and shows the inline approval keyboard.
  2. Click Allow Once, Session, or Always on the Telegram inline keyboard.
  3. Let the approved command continue running for a while.

Expected Behavior

After resolving the approval, the gateway should resume the typing indicator while the agent continues processing, matching the behavior of the text /approve command.

Actual Behavior

The approval resolves and the command continues, but typing remains paused / disappears.

Observed behavior in a live gateway run: after clicking the Telegram approval button, logs showed the approval resolved and a child command continued running (npx tsc --noEmit ...), but Telegram typing status stayed gone.

Suspected Cause

GatewayRunner._handle_approve_command() and _handle_deny_command() call:

_adapter.resume_typing_for_chat(source.chat_id)

But TelegramAdapter._handle_callback_query() only calls resolve_gateway_approval(...) and edits the approval message. It never calls resume_typing_for_chat(...) after a successful inline-button approval/deny.

Proposed Fix

After resolve_gateway_approval(session_key, choice) returns a nonzero count in the Telegram ea: callback path, resume typing for the callback chat:

count = resolve_gateway_approval(session_key, choice)
if count and query.message:
    self.resume_typing_for_chat(str(query.message.chat_id))

A regression test can pause typing for the chat, click an approval callback, and assert the chat id is removed from _typing_paused.

Environment

  • Platform: Telegram gateway
  • Component: inline dangerous-command approval buttons / typing indicator
  • Repository: NousResearch/hermes-agent

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Telegram inline approval buttons do not resume typing indicator after command approval [1 pull requests]