hermes - ✅(Solved) Fix [Bug]: Discord - Hermes no longer responds in threads [2 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#12750Fetched 2026-04-20 12:17:07
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
cross-referenced ×2referenced ×2commented ×1labeled ×1

Error Message

Additional Logs / Traceback (optional)

Root Cause

Root Cause Analysis (optional)

Fix Action

Fixed

PR fix notes

PR #12780: fix(discord): restore thread creation for free response channels

Description (problem / solution / changelog)

Problem

Fixes #12750 — Discord free response channels no longer respond in threads; they reply inline in the channel instead.

Root Cause

Commit 93fe4b35 added is_free_channel to the skip_thread condition, which prevented auto-threading in free response channels. Free response channels should only skip the @mention requirement, not thread creation.

Fix

Remove is_free_channel from the skip_thread check so free response channels auto-thread normally. Users can still disable threading per-channel via DISCORD_NO_THREAD_CHANNELS.

Tests

  • test_discord_free_channel_auto_threads — verifies free channels create threads
  • test_discord_free_channel_no_thread_when_auto_thread_disabled — respects DISCORD_AUTO_THREAD=false
  • test_discord_free_channel_no_thread_override — respects DISCORD_NO_THREAD_CHANNELS override

All 22 tests in test_discord_free_response.py pass.

Changed files

  • gateway/platforms/discord.py (modified, +1/-1)
  • tests/gateway/test_discord_free_response.py (modified, +52/-5)

PR #12811: fix: Anthropic max_tokens + Feishu channel_prompt + Discord free_response

Description (problem / solution / changelog)

Fixes #12790: Anthropic max_tokens fallback for all proxies

The max_tokens fallback in _build_api_kwargs() only fired when the base URL was OpenRouter or Nous Portal. Any other chat-completions proxy (AWS Bedrock, NVIDIA, LiteLLM, vLLM, corporate gateways) serving Claude models would silently bypass the fallback, shipping requests without max_tokens set. Proxies like AWS Bedrock default to 4096 output tokens, which easily exhausts on thinking tokens + large tool calls like write_file or patch.

Fix: Changed the condition from URL-gated to model-gated. If the model is in _ANTHROPIC_OUTPUT_LIMITS (Claude, MiniMax), max_tokens is always set regardless of which proxy serves it.

Fixes #12805: Feishu adapter missing channel_prompt resolution

The Feishu platform adapter did not implement per-channel prompt resolution (_resolve_channel_prompt), unlike Discord and Slack which both support this feature. This means channel_prompts config in config.yaml was silently ignored for Feishu.

Fix: Added _resolve_channel_prompt() method matching the Discord/Slack pattern. Passes channel_prompt to all three MessageEvent construction sites (main message, reaction routing, card action routing).

Fixes #12750: Discord free_response_channels not working

The on_message handler checked DISCORD_IGNORE_NO_MENTION (default: true) before _handle_message was called. When a message had no @mention (human or bot), it returned early — never reaching the free_response_channels logic inside _handle_message. This meant free response channels could never receive unmentioned messages.

Fix: In the DISCORD_IGNORE_NO_MENTION gate at on_message, check the channel against DISCORD_FREE_RESPONSE_CHANNELS before returning early. Configured channels are exempted from the ignore-no-mention filter.


Discussed in: #12790, #12805, #12750

Changed files

  • gateway/platforms/discord.py (modified, +8/-2)
  • gateway/platforms/feishu.py (modified, +8/-0)
  • run_agent.py (modified, +12/-11)

Code Example

n/a

---

discord:
  require_mention: true
  free_response_channels: '12345'
  allowed_channels: ''
  auto_thread: true
  reactions: false
  channel_prompts: {}
RAW_BUFFERClick to expand / collapse

Bug Description

I have a free response channel.

Prior to the last update, when posting a message in that channel, hermes would respond in a thread. Now, it responds in-line in the channel. It also doesn't create threads when DM-ing.

Steps to Reproduce

  1. Send message without @mention in channel 12345 (configured for free response, see below)

Expected Behavior

Respond in thread

Actual Behavior

Responds in channel

Affected Component

Gateway (Telegram/Discord/Slack/WhatsApp)

Messaging Platform (if gateway-related)

Discord

Debug Report

n/a

Operating System

Debian 13, LXC

Python Version

Python 3.13.5

Hermes Version

Hermes Agent v0.10.0 (2026.4.16)

Additional Logs / Traceback (optional)

discord:
  require_mention: true
  free_response_channels: '12345'
  allowed_channels: ''
  auto_thread: true
  reactions: false
  channel_prompts: {}

Root Cause Analysis (optional)

No response

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

extent analysis

TL;DR

The issue can be potentially resolved by adjusting the require_mention setting in the Discord configuration.

Guidance

  • Review the require_mention setting in the Discord configuration, as it might be causing Hermes to respond in-line instead of creating a thread.
  • Verify that the auto_thread setting is correctly set to true, which should enable thread creation for free response channels.
  • Check if there are any updates or changes in the Hermes documentation regarding thread creation and free response channels.
  • Test the behavior with and without the @mention to see if it affects the response type.

Example

No code snippet is provided as the issue seems to be related to configuration settings.

Notes

The provided information does not include detailed logs or a debug report, which might be necessary for a more in-depth analysis. Additionally, the issue might be specific to the Discord gateway or the Hermes version being used.

Recommendation

Apply workaround: Adjust the require_mention setting to false and verify if it resolves the issue, as the current setting might be causing the in-line response behavior.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - ✅(Solved) Fix [Bug]: Discord - Hermes no longer responds in threads [2 pull requests, 1 comments, 2 participants]