hermes - 💡(How to fix) Fix Feature request: add Stop controls to stoppable gateway messages

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…

Error Message

On Telegram, once a long-running task starts, the user often has to remember or manually type the correct stop command. This is inconvenient on mobile and error-prone when multiple tasks are running.

Root Cause

  • Makes long-running background tasks safer and easier to cancel.
  • Reduces friction on mobile chat clients.
  • Prevents users from hunting for process IDs or remembering exact command syntax.
  • Helps when several long-running tasks are active, because each message can carry its own stop handle.

Code Example

Background task started
id: proc_abc123

[ Stop ]

---

/stop proc_abc123
RAW_BUFFERClick to expand / collapse

Feature request

Add Stop controls to Hermes Telegram messages that correspond to stoppable work.

Problem

Hermes can launch long-running work such as background processes, background agent tasks, scheduled/manual jobs, delegated coding agents, or other operations that can later be stopped with commands like /stop.

On Telegram, once a long-running task starts, the user often has to remember or manually type the correct stop command. This is inconvenient on mobile and error-prone when multiple tasks are running.

Proposed behavior

When Hermes sends a Telegram message for work that can be stopped, include a Stop action directly in that message.

Example:

  • Telegram: inline button such as Stop.

The Stop control should only appear when there is a real stoppable handle, such as:

  • background process/session id
  • active agent/task id
  • cron/manual job run id if supported
  • delegated/background task id

Normal final answers with no active stoppable work should not include a Stop button.

Desired UX

Example Telegram message:

Background task started
id: proc_abc123

[ Stop ]

The button should trigger the same safe behavior as the existing stop mechanism, e.g. equivalent to:

/stop proc_abc123

Why this matters

  • Makes long-running background tasks safer and easier to cancel.
  • Reduces friction on mobile chat clients.
  • Prevents users from hunting for process IDs or remembering exact command syntax.
  • Helps when several long-running tasks are active, because each message can carry its own stop handle.

Compatibility notes

  • Reuse existing /stop semantics where possible.
  • Do not add Stop controls to ordinary messages.
  • The control should be scoped to the specific session/chat/thread and task id.
  • If a task is already finished, pressing Stop should return a harmless “already completed/not running” response.
  • This request is specifically for Telegram. Other platforms can be considered separately later.
  • When the task finishes, the Telegram Stop button should be hidden/removed or the message should be edited so the stale Stop action is no longer shown.

Scope clarification

This request is Telegram-only for now. It does not require Slack/Discord/other gateway support or text fallback behavior in the initial implementation.

When a stoppable task completes, Hermes should update the Telegram message to remove the Stop inline button so users do not see a stale cancellation action.

Implementation sketch

Potential areas to investigate:

  • Telegram gateway message send/edit pipeline: attach optional Stop button metadata to outgoing messages for stoppable work.
  • Telegram adapter: render a Stop inline keyboard button when stop metadata is present.
  • Gateway callback handling: map the button callback to existing /stop <id> logic.
  • Completion handling: when the task/process completes, edit the Telegram message to remove/hide the Stop button.
  • Background process/tool result messages: include stop handle metadata when returning session_id or task id.
  • Tests for:
    • Stop button appears for stoppable messages.
    • Stop button is absent for non-stoppable final answers.
    • Callback invokes the same code path as /stop <id>.
    • Completed/nonexistent task gives a safe no-op response.

Alternatives considered

Users can manually type /stop, but this is awkward on Telegram mobile and does not scale well when several tasks are running. Inline Stop actions are a safer and more discoverable Telegram UI.

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 Feature request: add Stop controls to stoppable gateway messages