Skip to content

/busy command is cli_only — not available on Telegram/gateway despite onboarding hints #18362

@AxDSan

Description

@AxDSan

Bug Description

The /busy slash command is registered in COMMAND_REGISTRY (hermes_cli/commands.py:140) but marked cli_only=True — making it unavailable on Telegram, Discord, and other gateway platforms.

Meanwhile, the onboarding module (agent/onboarding.py) explicitly tells users they can run:

  • /busy interrupt — Stop current task immediately
  • /busy queue — Queue follow-ups for after the task
  • /busy steer — Inject messages mid-run without interrupting
  • /busy status — Check current mode

This creates a confusing UX where:

  1. User sends a message while Hermes is busy
  2. Gateway sends onboarding hint mentioning /busy commands
  3. User types /busy status on Telegram
  4. Gets "Unknown command /busy"

Root Cause

  1. cli_only=True on the CommandDef (line 141) prevents gateway registration
  2. No _handle_busy_command handler exists in gateway/run.py
  3. No dispatch entry for "busy" in the gateway's command routing

Proposed Fix

  1. Remove cli_only=True from the /busy CommandDef
  2. Add _handle_busy_command to the gateway (reads subcommand, updates _busy_input_mode and persists to config)
  3. Add "busy" to the active-session dispatch and non-running dispatch sections

Environment

  • Hermes v0.12.0
  • Platform: Telegram

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/cliCLI entry point, hermes_cli/, setup wizardcomp/gatewayGateway runner, session dispatch, deliveryplatform/telegramTelegram bot adaptertype/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions