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> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| ADDING_A_PLATFORM.md | ||
| api_server.py | ||
| base.py | ||
| dingtalk.py | ||
| discord.py | ||
| email.py | ||
| feishu.py | ||
| homeassistant.py | ||
| matrix.py | ||
| mattermost.py | ||
| signal.py | ||
| slack.py | ||
| sms.py | ||
| telegram.py | ||
| telegram_network.py | ||
| webhook.py | ||
| wecom.py | ||
| whatsapp.py | ||