Skip to content

fix(slack extension): preserve thread IDs for read + outbound delivery#23836

Merged
vincentkoc merged 3 commits intomainfrom
vincentkoc-code/slack-thread-read-delivery-ready
Feb 22, 2026
Merged

fix(slack extension): preserve thread IDs for read + outbound delivery#23836
vincentkoc merged 3 commits intomainfrom
vincentkoc-code/slack-thread-read-delivery-ready

Conversation

@vincentkoc
Copy link
Member

@vincentkoc vincentkoc commented Feb 22, 2026

Summary

Why

Slack extension behavior diverged from built-in Slack behavior in two places:

  1. thread reads silently dropped threadId
  2. outbound sends ignored delivery-context threadId and only used replyToId

This caused thread reads to return channel-level results and thread-bound follow-ups to leak to DM/channel root.

Validation

  • pnpm test -- extensions/slack/src/channel.test.ts
  • pnpm exec oxfmt --check extensions/slack/src/channel.ts extensions/slack/src/channel.test.ts CHANGELOG.md

Fixes: #22219
Fixes: #22483
Supersedes: #22216, #22485

Greptile Summary

Aligns Slack extension threading behavior with built-in Slack channel by forwarding threadId in message reads and using it as a fallback for thread_ts in outbound sends.

  • Added includeReadThreadId: true flag in handleSlackMessageAction call so thread reads forward threadId to readMessages action
  • Updated sendText and sendMedia to use threadId as fallback for threadTs when replyToId is not present, matching built-in Slack implementation pattern in src/channels/plugins/outbound/slack.ts:62-63
  • Added test coverage for read thread forwarding and outbound thread fallback in both sendText and sendMedia

Confidence Score: 5/5

  • Safe to merge with no issues found
  • The changes are minimal, well-tested, and align with the existing built-in Slack implementation pattern. The fix addresses a clear behavioral gap where the extension diverged from core Slack behavior for thread handling.
  • No files require special attention

Last reviewed commit: 991da8e

Copy link

@lan17 lan17 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@vincentkoc vincentkoc force-pushed the vincentkoc-code/slack-thread-read-delivery-ready branch from 71a637f to 991da8e Compare February 22, 2026 19:29
@vincentkoc vincentkoc marked this pull request as ready for review February 22, 2026 19:29
@vincentkoc vincentkoc merged commit 9f7c168 into main Feb 22, 2026
10 checks passed
@vincentkoc vincentkoc deleted the vincentkoc-code/slack-thread-read-delivery-ready branch February 22, 2026 19:34
MisterGuy420 pushed a commit to MisterGuy420/openclaw-dev that referenced this pull request Feb 22, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
dgarson pushed a commit to dgarson/clawdbot that referenced this pull request Feb 23, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
carlosrivera pushed a commit to myascendai/meshiclaw that referenced this pull request Feb 23, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
gabrielkoo pushed a commit to gabrielkoo/openclaw that referenced this pull request Feb 23, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
mreedr pushed a commit to mreedr/openclaw-custom that referenced this pull request Feb 24, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
brianleach pushed a commit to brianleach/openclaw that referenced this pull request Feb 26, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
mylukin pushed a commit to mylukin/openclaw that referenced this pull request Feb 26, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
hughdidit pushed a commit to hughdidit/DAISy-Agency that referenced this pull request Mar 1, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md

(cherry picked from commit 9f7c168)

# Conflicts:
#	CHANGELOG.md
#	extensions/slack/src/channel.ts
hughdidit pushed a commit to hughdidit/DAISy-Agency that referenced this pull request Mar 3, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md

(cherry picked from commit 9f7c168)

# Conflicts:
#	CHANGELOG.md
#	extensions/slack/src/channel.ts
zooqueen pushed a commit to hanzoai/bot that referenced this pull request Mar 6, 2026
openclaw#23836)

* Slack Extension: preserve thread IDs in reads and outbound sends

* Slack extension: fix threadTs typing and action test context

* Update CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: slack Channel integration: slack maintainer Maintainer-authored PR size: S

Projects

None yet

2 participants