Task for the gardener. Signal has _reconcile_groups — when an approved admin adds the bot to a group, it auto-approves it. Slack has no equivalent (gateway/platforms/slack.py has no reconcile/discover); channels must be listed in SLACK_ALLOWED_CHANNELS manually.
A Slack workspace is admin-managed, so being added to a channel is already an admin-gated action. Add a Slack channel discover/auto-approve on connect, mirroring the Signal reconcile:
- On Socket-Mode connect, list the channels the bot is a member of (
users.conversations) and auto-approve them into the runtime allowlist, respecting a * allow-all and/or an admin gate.
- Persist like the Signal approved-groups file so it survives restarts.
- Removes the manual
SLACK_ALLOWED_CHANNELS step and gives Slack the "discover" parity the user expects.
- Fork stays minimally divergent from upstream (NousResearch); additive + self-contained. RGTDD + independent audit.
Context: raised 2026-07-02 — admin added the bot to a channel and expected Signal-style auto-approve.
Task for the gardener. Signal has
_reconcile_groups— when an approved admin adds the bot to a group, it auto-approves it. Slack has no equivalent (gateway/platforms/slack.pyhas no reconcile/discover); channels must be listed inSLACK_ALLOWED_CHANNELSmanually.A Slack workspace is admin-managed, so being added to a channel is already an admin-gated action. Add a Slack channel discover/auto-approve on connect, mirroring the Signal reconcile:
users.conversations) and auto-approve them into the runtime allowlist, respecting a*allow-all and/or an admin gate.SLACK_ALLOWED_CHANNELSstep and gives Slack the "discover" parity the user expects.Context: raised 2026-07-02 — admin added the bot to a channel and expected Signal-style auto-approve.