SIGN IN SIGN UP

Slack channels: opt-in pinned header message instead of setting the description (#508)

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)

<!-- codesmith:footer -->
---
<a href="https://app.blacksmith.sh/yc-software/codesmith/qm/pr/483"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v2.svg"><img alt="View with [code]smith" src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"></picture></a> <a href="https://backend.blacksmith.sh/track/enable-autofix?expires=1789249276&installation_model_id=19911&pr_number=483&repository=yc-software%2Fqm&return_to=https%3A%2F%2Fgithub.com%2Fyc-software%2Fqm%2Fpull%2F483&signature=36a14135bfb630b42a39eb325bda46b7a6f00b2d069c40af77ceafba54382288"><picture><source media="(prefers-color-scheme: dark)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img alt="Autofix with [code]smith" src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>@codesmith-bot</code> with what you need. Autofix is disabled.</sup>

<!-- codesmith:autofix:disabled -->
<!-- /codesmith:footer -->
R
Regan Bell committed
0dbc4d8ac9dd6d392e2df84ccbd3fb7500e70200
Parent: c639253
Committed by GitHub <noreply@github.com> on 8/13/2026, 10:51:23 PM