feat(slack): slack-v2 copilot entitlement and agent_view custom-bot manifests#5876
feat(slack): slack-v2 copilot entitlement and agent_view custom-bot manifests#5876TheodoreSpeaks wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Custom Slack bot manifests move from deprecated The webhook normalizer surfaces Reviewed by Cursor Bugbot for commit b6aab2c. Bugbot is set up for automated code reviews on this repo. Configure here. |
Greptile SummaryThis PR adds Slack v2 entitlement handling and migrates custom Slack apps to the agent messaging experience. The main changes are:
Confidence Score: 5/5This looks safe to merge after a small trigger-output description cleanup.
apps/sim/triggers/slack/shared.ts Important Files Changed
Reviews (1): Last reviewed commit: "feat(slack): slack-v2 copilot entitlemen..." | Re-trigger Greptile |
| context: { | ||
| type: 'json', | ||
| description: | ||
| 'What the user is currently viewing, as an entities array (each entry: type, value, team_id). Present for app_context_changed; null otherwise', | ||
| }, |
There was a problem hiding this comment.
Context Output Shape Is Misstated
The normalizer returns the full context object, shaped like { entities: [...] }, but this description says the output is an entities array. Workflow authors following it may index event.context directly and receive no entity data.
| context: { | |
| type: 'json', | |
| description: | |
| 'What the user is currently viewing, as an entities array (each entry: type, value, team_id). Present for app_context_changed; null otherwise', | |
| }, | |
| context: { | |
| type: 'json', | |
| description: | |
| 'What the user is currently viewing, as an object containing an entities array (each entry: type, value, team_id). Present for app_context_changed; null otherwise', | |
| }, |
There was a problem hiding this comment.
Fixed — description now says it's an object with an entities array and shows the context.entities[0].value access path.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b6aab2c. Configure here.
| features.agent_view = { | ||
| agent_description: ( | ||
| trimmedDescription || `${displayName} — an AI agent powered by Sim.` | ||
| ).slice(0, 300), |
There was a problem hiding this comment.
Profile description exceeds agent cap
Medium Severity
The PR caps the user-supplied description at 300 characters for features.agent_view.agent_description, but the same text is copied verbatim into display_information.description. Long wizard descriptions can exceed Slack’s limit there and fail manifest validation even though the agent field was truncated.
Reviewed by Cursor Bugbot for commit b6aab2c. Configure here.
| // features.agent_view), message.im (incoming messages). The legacy | ||
| // assistant_thread_* events belong to the deprecated assistant_view | ||
| // experience and are not subscribable by new agent_view apps. | ||
| events: ['app_home_opened', 'app_context_changed', 'message.im'], |
There was a problem hiding this comment.
Assistant triggers lack manifest events
Medium Severity
Custom-bot manifests with the AI agent capability now subscribe to app_home_opened, app_context_changed, and message.im instead of assistant_thread_*, but the trigger event picker still offers “Assistant opened” and “Assistant context changed.” Workflows using those events never receive webhooks from newly created agent apps.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit b6aab2c. Configure here.


Summary
slack-v2copilot entitlement: computed from the viewer's block-visibility projection (same predicate that hides theslack_v2schema in the VFS), fail-closed without a userIdfeatures.agent_view(new Slack apps can no longer useassistant_view), agent event set (app_home_opened,app_context_changed,message.im), description capped at Slack's 300-char limitapp_context_changedtrigger event withcontext(entities) passthrough in the webhook normalizerType of Change
Testing
capabilities + slack provider vitest (44 passing, incl. new agent_view/event-set/cap tests), tsc clean, API validation audit passed; entitlement verified live end-to-end against the mothership branch
Checklist