feat: add removeAckAfterReply option for Discord, Slack, and Telegram

Add `messages.removeAckAfterReply` config option to automatically remove
acknowledgment reactions after the bot sends a reply, reducing visual
clutter while still providing immediate feedback.

Platforms: Discord, Slack, Telegram

Implementation:
- Added removeAckAfterReply boolean field to MessagesConfig (default: false)
- Track ack reaction state in all three platform handlers
- Remove ack reaction after successful reply delivery
- Graceful error handling with verbose logging

Platform-specific:
- Discord: uses removeReactionDiscord()
- Slack: uses removeSlackReaction()
- Telegram: uses setMessageReaction() with empty array

Closes #627
This commit is contained in:
Levi Figueira
2026-01-10 00:31:12 +00:00
committed by Peter Steinberger
parent a29f5dda2e
commit b5858c0148
5 changed files with 53 additions and 2 deletions

View File

@@ -999,6 +999,8 @@ export type MessagesConfig = {
ackReaction?: string;
/** When to send ack reactions. Default: "group-mentions". */
ackReactionScope?: "group-mentions" | "group-all" | "direct" | "all";
/** Remove ack reaction after reply is sent (default: false). */
removeAckAfterReply?: boolean;
};
export type CommandsConfig = {

View File

@@ -603,6 +603,7 @@ const MessagesSchema = z
ackReactionScope: z
.enum(["group-mentions", "group-all", "direct", "all"])
.optional(),
removeAckAfterReply: z.boolean().optional(),
})
.optional();