← Back to PRs

#11491: feat(slack): allow agents to resolve channel IDs to names and list workspace channels

by Lukavyi open 2026-02-07 22:02 View on GitHub →
channel: slack app: web-ui agents stale
#### Summary Add `channel-info` and `channel-list` actions to the Slack message tool, bringing it to parity with Discord which already supports these actions. **Use case:** Agents receive channel IDs in Slack events but cannot resolve them to human-readable names, topics, or metadata. These actions enable channel discovery and ID resolution. #### Behavior Changes - New action `channel-info`: Returns channel metadata (id, name, topic, purpose, archive/private status, member count, creation timestamp) for a given channel ID. - New action `channel-list`: Returns a list of non-archived channels (public + private by default) with optional `limit` parameter. - Both actions are gated behind the `channelInfo` action flag. #### Codebase and GitHub Search - Discord already has `channel-info` and `channel-list` in its channel plugin — this brings Slack to parity. - No existing Slack implementation for these actions was found. - Searched GitHub issues: no prior requests found. #### Tests - Typecheck passes (`pnpm check`). - No dedicated test file added — `slack-actions.test.ts` did not have existing patterns for action-level testing. #### Manual Testing (omit if N/A) N/A — requires live Slack workspace. #### Evidence (omit if N/A) N/A #### Files Changed - **`src/slack/actions.ts`** — Added `getSlackChannelInfo()` and `listSlackChannels()` using Slack `conversations.info` and `conversations.list` APIs. - **`src/agents/tools/slack-actions.ts`** — Added `channelInfo` and `channelList` action handlers. - **`src/channels/plugins/slack.actions.ts`** — Registered `channel-info` and `channel-list` in the plugin action list and routing. lobster-biscuit **Sign-Off** - Models used: Claude claude-opus-4-6 (via OpenClaw) - Submitter effort: AI-generated with human review - Agent notes: Straightforward feature addition following existing Discord patterns. <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> This PR adds Slack parity with the Discord channel plugin by introducing two new message tool actions: - `channel-info`: routes through the Slack tool handler to `conversations.info` and returns basic metadata. - `channel-list`: routes through the Slack tool handler to `conversations.list` and returns a list of non-archived channels, with an optional `limit`. The wiring spans the Slack action implementations (`src/slack/actions.ts`), the agent tool dispatcher (`src/agents/tools/slack-actions.ts`), and the Slack channel plugin adapter (`src/channels/plugins/slack.actions.ts`). <h3>Confidence Score: 4/5</h3> - Mostly safe to merge, but channel-list behavior is incomplete for workspaces with many channels. - Core routing/gating looks consistent with existing Slack actions, but `listSlackChannels()` currently ignores Slack pagination and will silently truncate results beyond the first page, which can break agents that rely on complete channel discovery. - src/slack/actions.ts <!-- greptile_other_comments_section --> <!-- /greptile_comment -->

Most Similar PRs