hermes - 💡(How to fix) Fix Gateway needs explicit one-shot /interrupt <prompt> command with busy_text_mode=queue [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…

After #31341 changed the default gateway behavior to:

display:
  busy_input_mode: interrupt
  busy_text_mode: queue

normal typed text during an active gateway session is intentionally debounced/merged and queued for the next turn. That is useful for preserving rapid follow-ups, but it leaves gateway users without a clear one-shot way to say: stop the current run and use this message as the replacement instruction.

Today the practical options are:

  • /stop, then send a second message with the replacement instruction
  • change persistent config to display.busy_text_mode: interrupt
  • send a non-text input that still takes the interrupt path

There does not appear to be a gateway command equivalent to:

/interrupt <replacement prompt>

Root Cause

The new default makes sense for mobile/chat platforms because users often send rapid text bursts that should survive as a merged next-turn follow-up. But some busy-time text is not a follow-up; it is an operator control message, for example:

/interrupt wait, do not send that; instead summarize the findings first

or:

/now stop editing the file and just report what you found

With busy_text_mode: queue, a plain text correction like “wait, don’t do that” is queued rather than acted on immediately. /stop is a hard escape hatch, but it cannot carry the replacement prompt, so the user needs a two-message workflow and may lose context/timing.

Fix Action

Fixed

Code Example

display:
  busy_input_mode: interrupt
  busy_text_mode: queue

---

/interrupt <replacement prompt>

---

/interrupt wait, do not send that; instead summarize the findings first

---

/now stop editing the file and just report what you found

---

/interrupt <prompt>
/now <prompt>
RAW_BUFFERClick to expand / collapse

Summary

After #31341 changed the default gateway behavior to:

display:
  busy_input_mode: interrupt
  busy_text_mode: queue

normal typed text during an active gateway session is intentionally debounced/merged and queued for the next turn. That is useful for preserving rapid follow-ups, but it leaves gateway users without a clear one-shot way to say: stop the current run and use this message as the replacement instruction.

Today the practical options are:

  • /stop, then send a second message with the replacement instruction
  • change persistent config to display.busy_text_mode: interrupt
  • send a non-text input that still takes the interrupt path

There does not appear to be a gateway command equivalent to:

/interrupt <replacement prompt>

Why this matters

The new default makes sense for mobile/chat platforms because users often send rapid text bursts that should survive as a merged next-turn follow-up. But some busy-time text is not a follow-up; it is an operator control message, for example:

/interrupt wait, do not send that; instead summarize the findings first

or:

/now stop editing the file and just report what you found

With busy_text_mode: queue, a plain text correction like “wait, don’t do that” is queued rather than acted on immediately. /stop is a hard escape hatch, but it cannot carry the replacement prompt, so the user needs a two-message workflow and may lose context/timing.

Related context

  • #31341 introduced queued/debounced text follow-ups during active sessions and documents the default pairing: busy_input_mode=interrupt + busy_text_mode=queue.
  • #31588 covers the broader “text while busy is silently queued / no feedback” issue.
  • #26813 discusses /stop and /interrupt being treated incorrectly in some busy modes.
  • #18366 proposes making /busy available on gateway platforms, which would help users change persistent behavior, but it does not provide a one-shot interrupt-with-prompt action.
  • #11639 proposes a broader optional micro interrupt router.

Proposed behavior

Add a gateway-visible command such as one of:

/interrupt <prompt>
/now <prompt>

Semantics:

  1. If no session is active, treat the prompt as a normal message or return a helpful usage response.
  2. If a session is active, bypass busy_text_mode: queue / text debounce.
  3. Interrupt the running agent using the same interrupt path as busy_input_mode: interrupt.
  4. Carry <prompt> as the replacement/interrupt instruction rather than requiring the user to send a second message.
  5. Ensure the command is handled as a control command and is not passed through as plain steer/queue text.
  6. If active subagents force interrupt demotion for safety, surface that explicitly to the user instead of silently queueing.

Acceptance criteria

  • Gateway command registry/help exposes the command on Telegram/Discord/Slack/etc. where applicable.
  • During an active gateway turn with busy_text_mode: queue, sending /interrupt revise this: ... interrupts or takes the documented interrupt-safe path; it does not enter the text debounce queue.
  • The replacement prompt is preserved and visible in the resulting turn/session history.
  • /interrupt without a prompt returns a clear usage message.
  • Tests cover at least:
    • active session + busy_text_mode: queue
    • active session + busy_text_mode: interrupt
    • no active session
    • active subagent demotion behavior, if that path remains special-cased

Alternative considered

Make busy_text_mode inherit busy_input_mode by default. That restores legacy interrupt semantics for plain typed text, but loses the value of #31341’s queued/debounced default. A one-shot /interrupt <prompt> keeps the new default while restoring an explicit operator control path.

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 Gateway needs explicit one-shot /interrupt <prompt> command with busy_text_mode=queue [1 pull requests]