#23192: fix(slack): remove ack reaction on NO_REPLY when removeAckAfterReply is set
channel: slack
size: XS
Cluster:
Telegram Message Handling Fixes
## Summary
- **Problem:** When \`removeAckAfterReply\` is enabled and a message triggers \`NO_REPLY\` (e.g., a message the bot intentionally skips), the ack reaction emoji remains on the message instead of being removed.
- **Why it matters:** Users see a stale reaction emoji on messages the bot chose not to reply to, creating a confusing UX.
- **What changed:** Added reaction removal logic to the \`NO_REPLY\` code path in the Slack message handler, matching the behavior already present in the normal reply path.
- **What did NOT change:** Normal reply flow and error handling paths are unchanged.
## Change Type (select all)
- [x] Bug fix
- [ ] Feature
- [ ] Refactor
- [ ] Docs
- [ ] Security hardening
- [ ] Chore/infra
## Scope (select all touched areas)
- [ ] Gateway / orchestration
- [ ] Skills / tool execution
- [ ] Auth / tokens
- [ ] Memory / storage
- [x] Integrations
- [ ] API / contracts
- [ ] UI / DX
- [ ] CI/CD / infra
## Linked Issue/PR
- Related to Slack ack reaction behavior
## User-visible / Behavior Changes
- Ack reaction is now removed on NO_REPLY when \`removeAckAfterReply\` is enabled
## Security Impact (required)
- New permissions/capabilities? \`No\`
- Secrets/tokens handling changed? \`No\`
- New/changed network calls? \`No\` (same Slack API call, just also triggered on NO_REPLY)
- Command/tool execution surface changed? \`No\`
- Data access scope changed? \`No\`
## Repro + Verification
### Environment
- OS: macOS 15.3 (arm64)
- Runtime: Node v22+
- Integration/channel: Slack
### Steps
1. Enable \`removeAckAfterReply\` in Slack config
2. Send a message the bot intentionally skips (NO_REPLY)
3. Check if ack reaction is removed
### Expected
- Ack reaction is removed after NO_REPLY
### Actual
- Before fix: Ack reaction remains
- After fix: Ack reaction is removed
## Evidence
The reaction removal logic mirrors the existing implementation in the normal reply path.
## Human Verification (required)
- Verified scenarios: Reviewed the NO_REPLY code path and confirmed reaction removal is now called
- Edge cases checked: When \`removeAckAfterReply\` is disabled, no behavior change
- What I did **not** verify: Live Slack interaction
## Compatibility / Migration
- Backward compatible? \`Yes\`
- Config/env changes? \`No\`
- Migration needed? \`No\`
## Failure Recovery (if this breaks)
- How to disable/revert this change quickly: Revert the NO_REPLY handler changes
- Known bad symptoms: None expected
## Risks and Mitigations
None — follows established pattern in the same file.
Most Similar PRs
#17316: fix: ack reaction not removed when block streaming is enabled (Tele...
by czmathew · 2026-02-15
76.2%
#6089: fix(slack): add reactionNotifications config check to reactions han...
by jontsai · 2026-02-01
75.4%
#13590: fix(slack): remove ack reaction after tool-only replies
by alfongj-com · 2026-02-10
73.9%
#23182: fix(discord): pass statusReactions emojis and timing config to cont...
by SidQin-cyber · 2026-02-22
72.8%
#23799: fix(slack): finalize replyToMode off threading behavior
by vincentkoc · 2026-02-22
71.3%
#23513: fix(slack): respect replyToMode=off for inline directive reply tags
by dorukardahan · 2026-02-22
70.9%
#9520: fix: ignore slack already_reacted
by bolismauro · 2026-02-05
70.8%
#19435: fix(slack): properly handle group DM (MPIM) events
by Utkarshbhimte · 2026-02-17
70.7%
#20406: fix(slack): respect replyToMode when computing statusThreadTs in DMs
by QuinnYates · 2026-02-18
70.7%
#22440: fix(slack): prevent duplicate final replies from draft previews
by Solvely-Colin · 2026-02-21
70.4%