From 674a6f96d36d67918567b506f6ee2b37a3e83090 Mon Sep 17 00:00:00 2001 From: teknium1 Date: Mon, 23 Feb 2026 15:01:22 -0800 Subject: [PATCH] feat: unify set-home command naming across platforms - Updated the command name from `/set-home` to `/sethome` in the GatewayRunner class for consistency. - Added a new slash command `/sethome` in the Discord adapter to set the home channel. - Registered the `/sethome` command in the Telegram adapter to align with the updated naming convention. --- gateway/platforms/discord.py | 10 ++++++++++ gateway/platforms/telegram.py | 1 + gateway/run.py | 8 ++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gateway/platforms/discord.py b/gateway/platforms/discord.py index d57ab455d..b3f128116 100644 --- a/gateway/platforms/discord.py +++ b/gateway/platforms/discord.py @@ -513,6 +513,16 @@ class DiscordAdapter(BasePlatformAdapter): except Exception as e: logger.debug("Discord followup failed: %s", e) + @tree.command(name="sethome", description="Set this chat as the home channel") + async def slash_sethome(interaction: discord.Interaction): + await interaction.response.defer(ephemeral=True) + event = self._build_slash_event(interaction, "/sethome") + await self.handle_message(event) + try: + await interaction.followup.send("Done~", ephemeral=True) + except Exception as e: + logger.debug("Discord followup failed: %s", e) + @tree.command(name="stop", description="Stop the running Hermes agent") async def slash_stop(interaction: discord.Interaction): await interaction.response.defer(ephemeral=True) diff --git a/gateway/platforms/telegram.py b/gateway/platforms/telegram.py index 01bbad0db..73d749bd3 100644 --- a/gateway/platforms/telegram.py +++ b/gateway/platforms/telegram.py @@ -125,6 +125,7 @@ class TelegramAdapter(BasePlatformAdapter): BotCommand("undo", "Remove the last exchange"), BotCommand("status", "Show session info"), BotCommand("stop", "Stop the running agent"), + BotCommand("sethome", "Set this chat as the home channel"), BotCommand("help", "Show available commands"), ]) except Exception as e: diff --git a/gateway/run.py b/gateway/run.py index a4c59a323..1a64763c4 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -419,7 +419,7 @@ class GatewayRunner: if command == "undo": return await self._handle_undo_command(event) - if command in ["set-home", "sethome"]: + if command in ["sethome", "set-home"]: return await self._handle_set_home_command(event) # Check for pending exec approval responses @@ -487,7 +487,7 @@ class GatewayRunner: f"đŸ“Ŧ No home channel is set for {platform_name.title()}. " f"A home channel is where Hermes delivers cron job results " f"and cross-platform messages.\n\n" - f"Type /set-home to make this chat your home channel, " + f"Type /sethome to make this chat your home channel, " f"or ignore to skip." ) @@ -754,7 +754,7 @@ class GatewayRunner: "`/personality [name]` — Set a personality\n" "`/retry` — Retry your last message\n" "`/undo` — Remove the last exchange\n" - "`/set-home` — Set this chat as the home channel\n" + "`/sethome` — Set this chat as the home channel\n" "`/help` — Show this message" ) @@ -861,7 +861,7 @@ class GatewayRunner: return f"â†Šī¸ Undid {removed_count} message(s).\nRemoved: \"{preview}\"" async def _handle_set_home_command(self, event: MessageEvent) -> str: - """Handle /set-home command -- set the current chat as the platform's home channel.""" + """Handle /sethome command -- set the current chat as the platform's home channel.""" source = event.source platform_name = source.platform.value if source.platform else "unknown" chat_id = source.chat_id