feat(slack): ack incoming messages with 👀 reaction#4
Merged
ibuildthings-instrumentl merged 1 commit intodevfrom Apr 17, 2026
Merged
feat(slack): ack incoming messages with 👀 reaction#4ibuildthings-instrumentl merged 1 commit intodevfrom
ibuildthings-instrumentl merged 1 commit intodevfrom
Conversation
When a user @mentions or DMs Archon, the bot now posts an 👀 reaction on the incoming message the moment it's received -- before thread-history fetch, lock acquisition, planner warm-up, or first LLM token. This eliminates the awkward silent gap between "user hit send" and "bot responds" for long-running workflows. - SlackAdapter.acknowledgeReceipt(event) calls reactions.add; swallows errors so a missing reactions:write scope just skips the reaction instead of blocking the conversation. - Server onMessage handler fires the ack right after auth/stripBotMention with void (fire-and-forget) so the reaction round-trip never delays orchestration. - reactions:write added to the Starlight docs, skill guide, and CLI setup prompt as an optional scope. - Three adapter tests cover the happy path, missing-scope failure, and already_reacted replay case. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Long-running Archon workflows currently have an awkward silent gap between "user hits send" and "bot finally posts its first status message" -- thread-history fetch, lock acquisition, planner warm-up, and first LLM token can easily add up to several seconds. During that time the user has no idea if the bot saw their message.
What
When Slack delivers an incoming message that passes auth and has content, Archon now immediately posts an 👀 reaction on that message -- before any orchestration work begins.
Tests
Three new unit tests in `packages/adapters/src/chat/slack/adapter.test.ts`:
All 33 Slack adapter tests pass. Full workspace `type-check` is clean across all 10 packages. Lint-staged + prettier ran on commit.
Manual verification
After merge, restart `bun run dev`, grant the bot `reactions:write` in Slack, and @-mention it. You should see an 👀 appear on your message within ~100ms, well before the first status message posts.
Made with Cursor