feat(discord): faster reaction status state machine (watchdog + debounce) (#18248)

* fix(discord): avoid unnecessary message fetches in reaction notifications

* style(discord): format reaction listener for CI

* feat(discord): add reaction status machine and fix tool/final wiring

* fix(discord): harden reaction status transitions and cleanup

* revert(discord): restore status-machine flow from 0a5a72204

* fix(auto-reply): restore lifecycle callback forwarding for channels

* chore(ci): add daily upstream sync workflow for custom branch

* fix(discord): non-blocking reactions and robust cleanup

* chore: remove unrelated workflow from Discord-only PR

* Discord: streamline reaction handling

* Docs: add Discord reaction changelog

---------

Co-authored-by: Shadow <hi@shadowing.dev>
This commit is contained in:
victor-wu.eth
2026-02-17 04:38:39 +09:00
committed by GitHub
parent c953cfdee7
commit 7c240a2b58
8 changed files with 790 additions and 135 deletions

View File

@@ -18,7 +18,12 @@ export function resolveDiscordSystemLocation(params: {
export function formatDiscordReactionEmoji(emoji: { id?: string | null; name?: string | null }) {
if (emoji.id && emoji.name) {
return `${emoji.name}:${emoji.id}`;
// Custom guild emoji in Discord-renderable form.
return `<:${emoji.name}:${emoji.id}>`;
}
if (emoji.id) {
// Keep id visible even when name is missing (instead of opaque "emoji").
return `emoji:${emoji.id}`;
}
return emoji.name ?? "emoji";
}