mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-28 01:21:43 +00:00
ORIGINAL INCIDENT: Discord forum descriptions (the topic field on ForumChannel) were invisible to the agent. When a user set project instructions in a forum's description (e.g. tool-evaluations), threads created in that forum had no Channel Topic in their session context. Discovered while evaluating per-forum auto-context injection for web-tap-terminal development threads. ISSUE IN THE CODE: In gateway/platforms/discord.py, all three session entry points (_handle_message, _build_slash_event, _dispatch_thread_session) read chat_topic via getattr(channel, 'topic', None). Discord Thread objects don't carry a topic — only the parent ForumChannel does. So chat_topic was always None for forum threads, and the Channel Topic line was never injected into build_session_context_prompt output. The infrastructure to handle this was already in place — _is_forum_parent() detects forum channels, _format_thread_chat_name() traverses to the parent, and build_session_context_prompt() renders Channel Topic when present. The forum parent was being identified; its topic just wasn't being read. HOW THIS COMMIT FIXES IT: Adds _get_effective_topic(channel, is_thread) helper that reads channel.topic first, then falls back to the parent forum's topic when the channel is a thread inside a forum. All three session entry points now call this helper instead of inlining getattr(channel, 'topic', None). Existing tests pass unchanged. Co-authored-by: dhabibi <9087935+dhabibi@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| builtin_hooks | ||
| platforms | ||
| __init__.py | ||
| channel_directory.py | ||
| config.py | ||
| delivery.py | ||
| hooks.py | ||
| mirror.py | ||
| pairing.py | ||
| run.py | ||
| session.py | ||
| status.py | ||
| sticker_cache.py | ||
| stream_consumer.py | ||