hermes - 💡(How to fix) Fix fix(discord): free_response_channels now correctly honored — breaks existing workflows that relied on wildcard '*' never matching [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#15262Fetched 2026-04-25 06:23:23
View on GitHub
Comments
1
Participants
2
Timeline
7
Reactions
0
Author
Participants
Timeline (top)
labeled ×4commented ×1mentioned ×1subscribed ×1

After commit 8a1e247c, free_response_channels is now correctly honored. This breaks existing configurations where users set DISCORD_FREE_RESPONSE_CHANNELS=* (or a specific channel) expecting it to behave as a no-thread channel — meaning the bot would reply directly without creating threads.

The problem: Before this fix, * was a no-op in free_response_channels (literal string never matched), so the bot fell through to auto_thread: true behavior and created threads. Users who configured a channel in free_response_channels were actually relying on this broken behavior as a workaround to force direct replies in specific channels.

After the fix, free_response_channels works correctly — and those channels now reply silently without threads — which is the opposite of what those users wanted.

Root Cause

  • auto_thread: true → user wants threads
  • free_response_channels → user added channels here expecting threads (because of the bug)

Fix Action

Fix / Workaround

The problem: Before this fix, * was a no-op in free_response_channels (literal string never matched), so the bot fell through to auto_thread: true behavior and created threads. Users who configured a channel in free_response_channels were actually relying on this broken behavior as a workaround to force direct replies in specific channels.

Code Example

# discord.py line ~3254-3268
if not is_thread and auto_thread and not is_silent and not skip_thread:
    await message.create_thread(...)
    return

# line ~3258
skip_thread = bool(channel_ids & no_thread_channels) or is_free_channel

---

discord:
  auto_thread: true
  free_response_channels: "1483189336714510439"  # was expecting threads here
RAW_BUFFERClick to expand / collapse

🐛 Bug Description

Commit: 8a1e247c6c984098da4c8455b3bf1f872125ad4c
Date: Fri Apr 24 02:57:59 2026
Component: gateway/platforms/discord.py

Summary

After commit 8a1e247c, free_response_channels is now correctly honored. This breaks existing configurations where users set DISCORD_FREE_RESPONSE_CHANNELS=* (or a specific channel) expecting it to behave as a no-thread channel — meaning the bot would reply directly without creating threads.

The problem: Before this fix, * was a no-op in free_response_channels (literal string never matched), so the bot fell through to auto_thread: true behavior and created threads. Users who configured a channel in free_response_channels were actually relying on this broken behavior as a workaround to force direct replies in specific channels.

After the fix, free_response_channels works correctly — and those channels now reply silently without threads — which is the opposite of what those users wanted.

Expected vs Actual Behavior

ConfigBefore fixAfter fix
free_response_channels: "*"❌ Creates threads (bug — * never matched)✅ Direct reply, no thread (correct)
free_response_channels: "123456"❌ Creates threads (bug)❌ Creates threads (still broken?)

The issue: if auto_thread: true AND the channel is in free_response_channels (no_thread_channels), the skip_thread flag is set to True, so no thread is created.

# discord.py line ~3254-3268
if not is_thread and auto_thread and not is_silent and not skip_thread:
    await message.create_thread(...)
    return

# line ~3258
skip_thread = bool(channel_ids & no_thread_channels) or is_free_channel

The Design Problem

  • auto_thread: true → user wants threads
  • free_response_channels → user added channels here expecting threads (because of the bug)

These two settings are mutually exclusive by design, but users didn't know that. The fix exposed a configuration confusion.

Suggested Fix

Add a config option to distinguish between:

  1. "Reply without thread" (current behavior — what free_response_channels does)
  2. "Reply in-thread even in free_response_channels" (new option, e.g. free_response_channels_create_thread: true)

Reproduction

  1. Set DISCORD_FREE_RESPONSE_CHANNELS=1483189336714510439
  2. Set DISCORD_AUTO_THREAD=true
  3. Send a message in that channel
  4. Before fix: Thread created ✅
  5. After fix: Direct reply, no thread ❌

Config Example

discord:
  auto_thread: true
  free_response_channels: "1483189336714510439"  # was expecting threads here

Expected: Thread created because auto_thread: true
Actual: Direct reply, no thread, because channel is in free_response_channels


cc: @teknium1

extent analysis

TL;DR

To fix the issue, add a new config option free_response_channels_create_thread to allow threads in free_response_channels when auto_thread is true.

Guidance

  • Identify configurations where free_response_channels is set with the expectation of creating threads due to the previous bug.
  • Consider adding the proposed free_response_channels_create_thread option to the configuration to enable thread creation in specified channels.
  • Review the auto_thread and free_response_channels settings to ensure they align with the desired behavior, as these settings are now mutually exclusive by design.
  • Test configurations with the new option to verify that thread creation behaves as expected in free_response_channels.

Example

# Example configuration with the new option
discord:
  auto_thread: true
  free_response_channels: "1483189336714510439"
  free_response_channels_create_thread: true

Notes

The introduction of the free_response_channels_create_thread option aims to resolve the configuration confusion caused by the fix. However, careful review and testing of existing configurations are necessary to ensure the desired behavior.

Recommendation

Apply the workaround by adding the free_response_channels_create_thread option to the configuration, as it provides a clear way to distinguish between "reply without thread" and "reply in-thread even in free_response_channels" behaviors.

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