← Back to PRs

#23799: fix(slack): finalize replyToMode off threading behavior

by vincentkoc open 2026-02-22 18:07 View on GitHub →
docs channel: slack maintainer size: S dedupe:parent
## Summary - rebases canonical Slack threading fix work on latest `main` - folds in DM-specific `incomingThreadTs` handling from #18036 so `replyToMode: "off"` is respected even when typing indicators create thread context - keeps status-thread fallback removal, explicit tag behavior, and default alignment from #22944 - adds Unreleased changelog entry under `### Fixes` ## Linked Issue/PR - Related #16868 - Related #10837 - Supersedes #22944 - Supersedes #18036 ## Repro + Verification - `pnpm test src/slack/threading.test.ts src/slack/monitor.tool-result.test.ts src/auto-reply/reply/reply-plumbing.test.ts` - all listed tests pass locally ## Scope boundary - does not include queue drain / deliveryContext thread propagation work from #11934 (`#10837` track) <!-- greptile_comment --> <h3>Greptile Summary</h3> This PR finalizes the Slack `replyToMode: "off"` threading behavior, ensuring it consistently prevents unwanted thread replies. The changes address multiple edge cases where `off` mode wasn't being respected, particularly in DMs with typing indicators and with explicit reply tags. Key changes: - Changed default `replyToMode` from `"all"` to `"off"` in `src/slack/monitor/provider.ts:124` to align runtime behavior with documentation - Removed fallback thread creation for status indicators when `replyToMode` is `"off"` in `src/slack/threading.ts:52` - Added DM-specific logic to respect `replyToMode: "off"` even when typing indicators create thread context in `src/slack/monitor/replies.ts:98-103` - Changed `allowExplicitReplyTagsWhenOff` from `true` to `false` in both core and extension Slack channels to strip explicit `[[reply_to_*]]` tags in `off` mode - Updated documentation to clarify that Slack `off` mode disables all threading including explicit tags, unlike Telegram - Updated tests to reflect the new behavior <h3>Confidence Score: 5/5</h3> - This PR is safe to merge with minimal risk - The implementation is well-structured with comprehensive test coverage. All tests pass according to the PR description. The changes are focused and address specific edge cases in threading behavior. The code follows established patterns in the codebase, includes helpful JSDoc comments, and the documentation accurately reflects the new behavior. The default change from `"all"` to `"off"` aligns with documented behavior and user expectations. - No files require special attention <sub>Last reviewed commit: f752b5d</sub> <!-- greptile_other_comments_section --> <!-- /greptile_comment -->

Most Similar PRs