Skip to content

feat(discord): support guild-level free-response mode #19955

@williamhrs

Description

@williamhrs

Feature Description

Discord currently supports mention-gating globally (discord.require_mention) and channel-level free-response exemptions (discord.free_response_channels). It would be useful to also support guild-level free-response exemptions, so a bot can respond to every message in specific low-noise/private guilds while still requiring @mentions in all other guilds.

Motivation

Some users run Hermes in multiple Discord guilds:

  • Personal/private guilds where Hermes is the only or primary participant and should behave like a resident assistant.
  • Shared/team/community guilds where Hermes should stay quiet unless explicitly @mentioned.

Today, users must either:

  1. Disable discord.require_mention globally, which is too noisy/risky across all guilds.
  2. Maintain every channel ID in discord.free_response_channels, which is brittle when channels/threads are added.

Proposed Solution

Add a new Discord config key:

discord:
  require_mention: true
  free_response_guilds:
    - "1476256146980606197"

Behavior:

  • If discord.require_mention is true and the incoming message's guild ID is listed in discord.free_response_guilds, skip the @mention requirement.
  • Other guilds keep the existing mention-gated behavior.
  • Existing discord.free_response_channels, DMs, thread participation, ignored channels, and allowed channels behavior remains unchanged.

Alternatives Considered

  • Use discord.free_response_channels for every channel in a guild. This works but requires ongoing manual maintenance and misses new channels.
  • Set discord.require_mention: false globally. This is too broad when the bot is installed in multiple guilds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/gatewayGateway runner, session dispatch, deliveryplatform/discordDiscord bot adaptertype/featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions