#9520: fix: ignore slack already_reacted
agents
stale
Cluster:
Slack Integration Enhancements
## Summary
- Treat Slack `already_reacted` errors as no-ops in reaction tool flow.
- Add test coverage for `already_reacted` handling.
## Testing
- `pnpm build`
- `pnpm check` (failed: `src/discord/monitor/allow-list.ts` type errors unrelated to this PR)
- `pnpm test` (not run; blocked by `pnpm check`)
## AI Assistance
- AI-assisted: yes.
- Prompts + session log: https://gist.github.com/bolismauro/a49bdf102a8abc6a1bb4192f287d49a4
- I understand the code changes and verified local tests as noted above.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR makes Slack reaction adds idempotent by treating Slack `already_reacted` failures as a no-op in the `react` tool flow (`handleSlackAction`), and adds a unit test covering the `already_reacted` behavior.
The change is localized to the Slack agent tool wrapper (`src/agents/tools/slack-actions.ts`) which chooses tokens/options and dispatches to the underlying Slack action helpers in `src/slack/actions.js`.
<h3>Confidence Score: 3/5</h3>
- This PR is close to mergeable but has a concrete read-auth bug in existing code paths touched by review.
- The `already_reacted` handling itself looks correct and is covered by a test, but `listPins`/`memberInfo` currently gate passing read options on `writeOpts`, which will break token/account propagation for reads in some configurations; that should be fixed before merge to avoid regressions in Slack read operations.
- src/agents/tools/slack-actions.ts
<!-- greptile_other_comments_section -->
<sub>(4/5) You can add custom instructions or style guidelines for the agent [here](https://app.greptile.com/review/github)!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#19816: feat(slack): add typingReaction config for DM typing indicator fall...
by dalefrieswthat · 2026-02-18
80.7%
#15626: Slack: add channel create for message tool
by imWildCat · 2026-02-13
79.9%
#11491: feat(slack): allow agents to resolve channel IDs to names and list ...
by Lukavyi · 2026-02-07
79.5%
#13590: fix(slack): remove ack reaction after tool-only replies
by alfongj-com · 2026-02-10
78.8%
#2917: Slack: fix thread context + prevent reply spillover
by SocialNerd42069 · 2026-01-27
78.6%
#6089: fix(slack): add reactionNotifications config check to reactions han...
by jontsai · 2026-02-01
78.5%
#7719: fix(slack): thread replies with @mentions dropped in requireMention...
by SocialNerd42069 · 2026-02-03
77.9%
#23320: fix(slack): respect replyToMode when incomingThreadTs is auto-created
by dorukardahan · 2026-02-22
77.5%
#15863: fix: route agent-to-agent Slack messages to bound sessions
by MisterGuy420 · 2026-02-14
77.3%
#13489: fix: preserve Slack channel/user ID case in target normalization
by sandieman2 · 2026-02-10
77.3%