SIGN IN SIGN UP

projects: refresh the Slack directory on demand when a channel link misses (#487)

Linking a just-created Slack channel to a project failed with 'channel not found among the channels you can see' because the check runs against the synced directory copy, which only refreshes on timers and a few membership events — a brand-new channel isn't there yet. On a channel-link miss, core now parks a syncDirectory surface-context request; the Slack surface fulfils it with a forced directory sync and the lookup retries once before failing. The Slack surface also refreshes proactively on channel_created, channel_rename, and channel_unarchive events, which are added to the app manifest.

**Deployment notes**

Release-note: re-apply the Slack app manifest to enable proactive channel-lifecycle refresh
Slack app manifest gains channel_created / channel_rename / channel_unarchive bot events —
the proactive directory refresh only works after an org re-applies its Slack app manifest; the on-
demand syncDirectory retry path works without it, so nothing regresses if they don't
New surface-context request type syncDirectory: in the blue-green window a new core parking
the request against an old Slack surface just goes unfulfilled and the lookup fails exactly as it did
pre-change (no worse)
No DB or config changes

<!-- codesmith:footer -->
---
<a href="https://app.blacksmith.sh/yc-software/codesmith/qm/pr/487"><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=1789249502&installation_model_id=19911&pr_number=487&repository=yc-software%2Fqm&return_to=https%3A%2F%2Fgithub.com%2Fyc-software%2Fqm%2Fpull%2F487&signature=a5a577ad3cc045f4681fd7e77faf004c2afe0f596f5bcec38e1bdcb67928f629"><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
f32ec42ae883acb835b76b14262c645604e59d85
Parent: c58bbae
Committed by GitHub <noreply@github.com> on 8/13/2026, 10:26:55 PM