Slack channels: opt-in pinned header message instead of setting the description - #508
Merged
Conversation
…escription Setting the channel description when the bot joins claimed a field members reasonably think of as theirs. The bot now posts a small header message on join (current model plus a settings link) and pins it, instead of calling conversations.setPurpose. On a model change it finds its own pinned header (matched by bot authorship and header shape) and edits it in place rather than posting again. The behavior is opt-in per channel from the web UI's channel settings, and the Slack app manifests gain pins:read/pins:write scopes.
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.
Setting the channel description when the bot joins claimed a field members reasonably think of as theirs. The bot now posts a small header message on join (current model plus a settings link) and pins it, instead of calling conversations.setPurpose. On a model change it finds its own pinned header (matched by bot authorship and header shape) and edits it in place rather than posting again. The behavior is opt-in per channel from the web UI's channel settings, and the Slack app manifests gain pins:read/pins:write scopes.
Deployment notes
Release-note the Slack app scope update (pins:read/pins:write) + reinstall requirement
Slack app manifest and canonical scope baseline gain pins:read/pins:write — existing
deployments' installed Slack apps lack these scopes until the operator updates the manifest and
reinstalls; the pinned-header feature (opt-in, default off) fails against un-reinstalled apps, so
release notes must say 'update scopes + reinstall before enabling'
Behavior flip even with the toggle off: the bot stops writing the channel description on join, and
the agent display name is dropped from DM topics — visible change for upstream orgs that relied
on the old description behavior
New GET/PUT /v1/channel-header-pin endpoint and a per-channel-scope config flag with change
/ / / p p p p g g g
events — additive config-store key, blue-green safe (old instance ignores the flag)
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.