You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now @data in a channel replies at top level, which floods the channel for any back-and-forth conversation. Threads keep the noise contained.
Change
In the direct-mention handler in app.js, pass thread_ts: message.thread_ts || message.ts to say(). If the user @-mentions Data inside an existing thread, the reply stays in that thread; if they @-mention at top level, a new thread starts.
Side effect to consider
The current handler explicitly drops messages with thread_ts set (likely to avoid Data replying to its own thread cascades). With the new behavior, Data should be willing to chat inside threads it started — needs a check like "thread_ts is set, but the root of the thread is a message Data replied to, so keep going."
Probably easiest: track which thread_ts values Data is "in" via Keyv with a short TTL, or just match message.parent_user_id === context.botUserId.
DMs are unaffected — they have no thread concept that matters.
Shipped on main as part of the work merged via PR #30.
Channel @-mentions now reply in-thread: continues the existing thread if the mention was inside one, otherwise starts a new thread rooted at the mention. DMs reply flat as before.
Bail conditions in the direct-mention handler tightened to just { bot_profile, bot_id, edited } — removing the over-broad thread_ts / parent_user_id bails. Bot loops are still prevented by the bot_id/bot_profile guard.
Activity
Merge branch 'feature/tool-calling' — tool calling, vision, thinking,…
Revert tool calling — gemma4 emits tool calls as text, not worth the …
scarolan commentedon Jun 14, 2026
Shipped on main as part of the work merged via PR #30.
Channel @-mentions now reply in-thread: continues the existing thread if the mention was inside one, otherwise starts a new thread rooted at the mention. DMs reply flat as before.
Bail conditions in the direct-mention handler tightened to just
{ bot_profile, bot_id, edited }— removing the over-broadthread_ts/parent_user_idbails. Bot loops are still prevented by the bot_id/bot_profile guard.