The Slack tools reach the channels a person brought the role into
ADR 0014 let a conversation's agent read and post only in the threads its person mentioned the role
in. In use, a mention at the top of a channel comes after the talk it is about, which is not in its
thread, so the agent could not see what it was asked about. We decided that the agent reaches the
whole of every channel in which its person mentioned the role: it reads the channel's history and
any thread in it with read_slack_channel and read_slack_thread, and posts at the top of the
channel or in any thread with send_slack_message. Channels its person never mentioned it in stay
out of reach.
Considered Options
- The messages just before a mention (the last few, or the last day): rejected. It covers the case that showed the gap, but not a question about something said last week, and adds a limit for people to learn.
- Every channel the app is in: rejected, as in ADR 0014: anyone linked could have the agent read a private channel the app was invited to by someone else.
Consequences
- Mentioning the role in a channel once opens all of it to that person's conversation, past and future, for as long as the mention is kept (as long as the conversation). A private channel is opened only by someone in it.
- The agent can post at the top of a channel, not only in a thread, such as news of a task it made for someone there. Everyone in the channel sees it, as before.
- Mentions are still recorded by thread; access is checked by channel.