From 72bfa115a03ad028a50134eb81ced0522fed6b43 Mon Sep 17 00:00:00 2001 From: charliekerfoot Date: Tue, 17 Mar 2026 18:27:00 -0400 Subject: [PATCH 1/2] fix(discord): removebugged follow up messages from discord slash commands --- gateway/platforms/discord.py | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/gateway/platforms/discord.py b/gateway/platforms/discord.py index 43b48b3db..d7a9965b4 100644 --- a/gateway/platforms/discord.py +++ b/gateway/platforms/discord.py @@ -1364,16 +1364,17 @@ class DiscordAdapter(BasePlatformAdapter): self, interaction: discord.Interaction, command_text: str, - followup_msg: str = "Done~", + followup_msg: str | None = None, ) -> None: """Common handler for simple slash commands that dispatch a command string.""" await interaction.response.defer(ephemeral=True) event = self._build_slash_event(interaction, command_text) await self.handle_message(event) - try: - await interaction.followup.send(followup_msg, ephemeral=True) - except Exception as e: - logger.debug("Discord followup failed: %s", e) + if followup_msg: + try: + await interaction.followup.send(followup_msg, ephemeral=True) + except Exception as e: + logger.debug("Discord followup failed: %s", e) def _register_slash_commands(self) -> None: """Register Discord slash commands on the command tree.""" @@ -1388,12 +1389,6 @@ class DiscordAdapter(BasePlatformAdapter): await interaction.response.defer() event = self._build_slash_event(interaction, question) await self.handle_message(event) - # The response is sent via the normal send() flow - # Send a followup to close the interaction if needed - try: - await interaction.followup.send("Processing complete~", ephemeral=True) - except Exception as e: - logger.debug("Discord followup failed: %s", e) @tree.command(name="new", description="Start a new conversation") async def slash_new(interaction: discord.Interaction): @@ -1414,10 +1409,6 @@ class DiscordAdapter(BasePlatformAdapter): await interaction.response.defer(ephemeral=True) event = self._build_slash_event(interaction, f"/reasoning {effort}".strip()) 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="personality", description="Set a personality") @discord.app_commands.describe(name="Personality name. Leave empty to list available.") @@ -1493,10 +1484,6 @@ class DiscordAdapter(BasePlatformAdapter): await interaction.response.defer(ephemeral=True) event = self._build_slash_event(interaction, f"/voice {mode}".strip()) 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="update", description="Update Hermes Agent to the latest version") async def slash_update(interaction: discord.Interaction): From 1bee519a6f1989cf7bb0635c1325a5c1b68ec395 Mon Sep 17 00:00:00 2001 From: Test Date: Tue, 17 Mar 2026 16:25:09 -0700 Subject: [PATCH 2/2] fix(discord): remove redundant /ask slash command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /ask was just 'send a message to the bot' via the slash command menu — completely redundant since Discord bots already listen to channel messages. Removed as part of salvaging PR #1827. --- gateway/platforms/discord.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/gateway/platforms/discord.py b/gateway/platforms/discord.py index d7a9965b4..af36d5682 100644 --- a/gateway/platforms/discord.py +++ b/gateway/platforms/discord.py @@ -1383,13 +1383,6 @@ class DiscordAdapter(BasePlatformAdapter): tree = self._client.tree - @tree.command(name="ask", description="Ask Hermes a question") - @discord.app_commands.describe(question="Your question for Hermes") - async def slash_ask(interaction: discord.Interaction, question: str): - await interaction.response.defer() - event = self._build_slash_event(interaction, question) - await self.handle_message(event) - @tree.command(name="new", description="Start a new conversation") async def slash_new(interaction: discord.Interaction): await self._run_simple_slash(interaction, "/reset", "New conversation started~")