Skip to content

feat(slack): durable-host acknowledgement reaction on SlackHost - #27

Merged
ishaan-berri merged 1 commit into
mainfrom
devin/1792280849-slack-host-ack
Oct 17, 2026
Merged

ishaan-berri merged 1 commit into
mainfrom
devin/1792280849-slack-host-ack

Conversation

@ishaan-berri

Copy link
Copy Markdown
Contributor

Summary

The Slack socket transport adds 👀 (ack_emoji="eyes") before it dispatches a message. Durable hosts that only use SlackHost (e.g. Moyai's signed HTTP inbox) never got that, so each host had to hand-roll reactions.add. This PR moves the ack into SlackHost, using the same request(api_method, payload) callback convention as upload_slack_files:

host = SlackHost(bot_user_id=..., workspace_id=..., ack_emoji="eyes")  # default "eyes"; None disables
event = host.normalize_event(payload)
# after the host decides to handle it, before slow work:
ok: bool = await host.acknowledge(event, request, timeout=3.0)
# -> request("reactions.add", {"channel": channel_id, "name": "eyes", "timestamp": message_ts})

Semantics:

  • Best effort, like the transport's _ack. It returns True on ok or on already_reacted (replays).
  • It returns False when disabled, on a Slack error, on timeout, or when the callback raises any Exception.
  • CancelledError propagates.
  • An invalid origin or timeout raises ValueError before the callback runs.

Core: host::ack_request, host::ack_accepted and SlackHost::acknowledgement are now the single payload source. socket.rs and the Python transport _ack both use them, with no behavior change.

Consumer: BerriAI/moyai#547

Link to Devin session: https://app.devin.ai/sessions/3d913080cfd147d1a3a4fd6db2988d5b
Open in Devin Desktop: https://app.devin.ai/desktop/session/3d913080cfd147d1a3a4fd6db2988d5b?variant=devin
Requested by: @ishaan-berri

Co-Authored-By: Ishaan Jaffer <155045088+ishaan-berri@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@ishaan-berri
ishaan-berri merged commit b51fa04 into main Oct 17, 2026
12 checks passed
@ishaan-berri
ishaan-berri deleted the devin/1792280849-slack-host-ack branch October 17, 2026 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant