fix(slack): enable the app's Messages tab so DM'd questions/approvals can be answered (v0.294.1) - #540
Merged
Merged
Conversation
… can be answered (v0.294.1) Slack ships an app with App Home → Messages Tab OFF, which replaces the DM composer with "Sending messages to this app has been turned off." Every inbound DM path the OS has arrives as a `message.im` — answering a blocking `ask_human`, deciding an approval inline, chatting 1:1 with an agent — so a human was pinged and could not reply. Scopes and event subscriptions were already right; the tab was the missing half. The bundled manifest now enables it, and the setup guide calls out the toggle for already-installed apps (a manifest edit doesn't reach those). Also: `notify` advertised itself for "questions" to another teammate, but it is strictly one-way (Inbox `update` card + DM, no reply affordance on either), so an agent that asked for a decision through it and held its work waited forever. It now states the one-way contract and points at `ask_human` with `to`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Reported from the field: an agent DM'd a design question on Slack and the recipient had no way to respond — the DM showed "Sending messages to this app has been turned off."
Two independent causes, both fixed here.
1. The Slack app manifest never enabled the Messages tab
Slack ships an app with App Home → Show Tabs → Messages Tab OFF, which renders the DM composer as a dead banner. Every inbound DM path the OS has arrives as a
message.im:ask_human(answerQuestionFromChat)decideApprovalFromChat)/agentrouter)The scopes (
im:write,im:history) and events (message.im) were already in the manifest — necessary but not sufficient.features.app_home.messages_tab_enabled: true(+messages_tab_read_only_enabled: false) is the other half.A manifest change only reaches newly created apps, so the Settings → Integrations setup guide now carries a callout telling an existing workspace to flip the toggle by hand (immediate, no reinstall).
2.
notifyinvited agents to ask questions it can't carryIts description offered itself for "progress/updates/questions" to another teammate. But
notifyis strictly one-way — an Inboxupdatecard plus a DM, neither of which has a reply affordance — so an agent that asked for a design decision through it and then held its PR waited forever. It now states the one-way contract and points atask_humanwithto, which blocks and is answerable from the Inbox or the DM.Schema change → a live session picks it up after a relaunch.
Verified
npm run typecheck,npm run build,cd web && npm run build,npm run test:governance(all green).Still open (not in this PR)
A reply to a one-way notice (
notify, session finished/crashed, task events) still has nowhere to go — with the Messages tab on it falls through to the intent router and spawns a fresh session rather than reaching the run that pinged you. Binding those DMs back to their session, the waybindQuestionDm/bindApprovalDmalready do, is the follow-up.🤖 Generated with Claude Code