Skip to content

fix(slack): avoid per-channel metadata lookups - #1348

Draft
akshaan wants to merge 1 commit into
mainfrom
codex/fix-slack-channel-list-timeout
Draft

fix(slack): avoid per-channel metadata lookups#1348
akshaan wants to merge 1 commit into
mainfrom
codex/fix-slack-channel-list-timeout

Conversation

@akshaan

@akshaan akshaan commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • replace sequential conversations.info calls with a cached, paginated conversations.list catalog for public-channel metadata
  • intersect the catalog with the exact channel IDs authorized by the caller JWT
  • preserve the existing per-channel lookup for private, DM, or otherwise missing channels
  • add focused pagination and authorization regression tests

Root cause

The Slack channels endpoint fetched metadata sequentially for every permitted channel. A User MCP role with 909 public channels could not finish within the Slack client timeout, so fallback search timed out before it could scan channel history.

Permission behavior

This does not broaden channel access. The endpoint still returns only channel IDs present in the caller JWT claims; the workspace-wide public catalog is used only to enrich those already-authorized IDs with metadata. Missing IDs retain the existing conversations.info path.

Validation

  • cargo fmt --all --check
  • cargo clippy -p centaur-api-server --all-targets -- -D warnings
  • cargo test -p centaur-api-server slack_proxy::tests
  • cargo test -p centaur-api-server

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant