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:
- User sends a message while Hermes is busy
- Gateway sends onboarding hint mentioning
/busy commands
- User types
/busy status on Telegram
- Gets "Unknown command /busy"
Root Cause
cli_only=True on the CommandDef (line 141) prevents gateway registration
- No
_handle_busy_command handler exists in gateway/run.py
- No dispatch entry for
"busy" in the gateway's command routing
Proposed Fix
- Remove
cli_only=True from the /busy CommandDef
- Add
_handle_busy_command to the gateway (reads subcommand, updates _busy_input_mode and persists to config)
- Add
"busy" to the active-session dispatch and non-running dispatch sections
Environment
- Hermes v0.12.0
- Platform: Telegram
Bug Description
The
/busyslash command is registered inCOMMAND_REGISTRY(hermes_cli/commands.py:140) but markedcli_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 modeThis creates a confusing UX where:
/busycommands/busy statuson TelegramRoot Cause
cli_only=Trueon the CommandDef (line 141) prevents gateway registration_handle_busy_commandhandler exists in gateway/run.py"busy"in the gateway's command routingProposed Fix
cli_only=Truefrom the/busyCommandDef_handle_busy_commandto the gateway (reads subcommand, updates_busy_input_modeand persists to config)"busy"to the active-session dispatch and non-running dispatch sectionsEnvironment