fix(slack): enforce replyToMode for auto-thread_ts and inline reply tags#23839
Merged
vincentkoc merged 3 commits intomainfrom Feb 22, 2026
Merged
fix(slack): enforce replyToMode for auto-thread_ts and inline reply tags#23839vincentkoc merged 3 commits intomainfrom
vincentkoc merged 3 commits intomainfrom
Conversation
35 tasks
This was referenced Feb 22, 2026
6a1f973 to
33ab9e1
Compare
33ab9e1 to
6f6aab4
Compare
This was referenced Feb 22, 2026
Closed
MisterGuy420
pushed a commit
to MisterGuy420/openclaw-dev
that referenced
this pull request
Feb 22, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
Contributor
18 tasks
carlosrivera
pushed a commit
to myascendai/meshiclaw
that referenced
this pull request
Feb 23, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
gabrielkoo
pushed a commit
to gabrielkoo/openclaw
that referenced
this pull request
Feb 23, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
mreedr
pushed a commit
to mreedr/openclaw-custom
that referenced
this pull request
Feb 24, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
brianleach
pushed a commit
to brianleach/openclaw
that referenced
this pull request
Feb 26, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
mylukin
pushed a commit
to mylukin/openclaw
that referenced
this pull request
Feb 26, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
zooqueen
pushed a commit
to hanzoai/bot
that referenced
this pull request
Mar 6, 2026
…ags (openclaw#23839) * Slack: respect replyToMode for auto-thread_ts and inline reply tags * Update CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consolidates and hardens the threading fixes from #23320 and #23513:
replyToModewhen Slack auto-populates top-levelthread_tsisThreadReply=true)replyToIddirective tags whenreplyToModeisoffreplyToIdbehavior whenreplyToModeisall/firstWhy
Two separate leaks existed:
thread_tscould makereplyToMode=offbehave likeallreplyToMode=offBoth violate user threading preference and produce inconsistent Slack behavior.
Validation
pnpm test -- src/slack/threading.test.ts src/slack/monitor.tool-result.test.tspnpm exec oxfmt --check src/slack/monitor/replies.ts src/slack/monitor/message-handler/dispatch.ts src/slack/threading.ts src/slack/threading.test.ts src/slack/monitor.tool-result.test.ts CHANGELOG.mdpnpm exec oxlint src/slack/monitor/replies.ts src/slack/monitor/message-handler/dispatch.ts src/slack/threading.ts src/slack/threading.test.ts src/slack/monitor.tool-result.test.tsFixes: #5470
Fixes: #16080
Supersedes: #23320, #23513
Greptile Summary
Hardens Slack threading logic to respect the configured
replyToModesetting by fixing two distinct leaks where threading was forced against user preference.Key changes:
src/slack/threading.ts:51-55: ChangedreplyThreadTsresolution to only useincomingThreadTswhenisThreadReply=true, preventing auto-created top-levelthread_tsfrom forcing threading whenreplyToMode=offsrc/slack/monitor/replies.ts:22-24: AddedreplyToModeguard to ignore inlinereplyToIddirective tags when mode isoffsrc/slack/monitor/replies.ts:97-99: Simplified effective mode logic by removingchatTypedistinction and only forcingallmode for genuine thread replies (isThreadReply=true)src/slack/monitor/message-handler/dispatch.ts:189: PropagatedreplyToModetodeliverRepliesto enable the inline directive filteringThe changes preserve correct threading for genuine user thread replies (detected via
parent_user_idor mismatchedthread_ts !== ts) while preventing Slack's auto-populatedthread_tson top-level messages from overriding user configuration.Confidence Score: 5/5
chatTypeparameter) while preserving correctness for all edge cases. Tests explicitly cover both the regression scenarios and expected behavior foroff,first, andallmodes.Last reviewed commit: 6f6aab4