#13486: fix: allow Slack HTTP mode without app token
channel: slack
stale
size: XS
Cluster:
Slack Media Handling Fixes
## Why\nSlack HTTP mode (Events API) does not require an app token, but the Slack channel plugin treated accounts as unconfigured unless both botToken + appToken were present. This prevents the provider from starting in HTTP mode, so the webhook handler is never registered and POST /slack/events falls through to the Control UI (405).\n\n## What changed\n- Treat Slack accounts as configured when:\n - mode="http": botToken + signingSecret\n - mode="socket" (default): botToken + appToken\n- Keep configured reporting consistent across status snapshots.\n\n## Result\nHTTP mode now starts and registers the webhook handler at channels.slack.webhookPath (default /slack/events) without requiring an app token.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR updates Slack channel configuration detection to support HTTP (Events API) mode without requiring an app-level token. It adds a shared `isSlackAccountConfigured()` helper and uses it consistently in `config.isConfigured`, `describeAccount`, and status snapshot building so configured/running reporting stays aligned.
Main issue to address before merging: the interactive/CLI setup path still rejects configurations without `appToken` (`setup.validateInput`), so users can’t actually configure HTTP mode accounts even though they’re now treated as configured at runtime.
<h3>Confidence Score: 4/5</h3>
- Mostly safe to merge once the Slack HTTP-mode setup validation is aligned with the new configured logic.
- The change is small and localized, and the new helper reduces inconsistency across configured/status reporting. The remaining blocker is a definite behavior mismatch: `setup.validateInput` still requires `appToken` even in HTTP mode, preventing users from configuring the newly-supported mode via the intended setup flow.
- extensions/slack/src/channel.ts
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#9166: Fix: Use userToken for Slack file downloads
by vishaltandale00 · 2026-02-04
78.8%
#7404: feat(slack): add Socket Mode bot + auto-join + bridge scaffolding; ad…
by zprager · 2026-02-02
78.6%
#8024: fix(slack): resolve channel names via directory for cross-account m...
by emma-digital-assistant · 2026-02-03
78.0%
#8684: fix(slack): add title param and channel resolution for file upload
by shuans · 2026-02-04
77.8%
#5036: docs: improve Slack setup and troubleshooting guide
by DanBatten · 2026-01-31
77.7%
#19567: Fix: tighten Slack multi-account event filtering via api_app_id
by TARS-Nolan · 2026-02-17
77.4%
#14847: fix(slack): preserve auth across Slack-hosted file redirects
by natashache · 2026-02-12
77.1%
#2917: Slack: fix thread context + prevent reply spillover
by SocialNerd42069 · 2026-01-27
77.1%
#7719: fix(slack): thread replies with @mentions dropped in requireMention...
by SocialNerd42069 · 2026-02-03
76.6%
#20479: fix(slack): keep replies flowing for oversized file uploads
by olyashok · 2026-02-19
76.5%