Skip to content

feat(ui): Add slack manifest generator #4237

Merged
TheodoreSpeaks merged 10 commits intostagingfrom
feat/slack-manifest
Apr 20, 2026
Merged

feat(ui): Add slack manifest generator #4237
TheodoreSpeaks merged 10 commits intostagingfrom
feat/slack-manifest

Conversation

@TheodoreSpeaks
Copy link
Copy Markdown
Collaborator

@TheodoreSpeaks TheodoreSpeaks commented Apr 20, 2026

Summary

Previous slack instructions had the user directly editing scopes. Slack's ui can be confusing, we should auto-generate a manifest that they can use.

Created a slack setup wizard to do this. Allows user to specify the scope and gives direct step by step instructions that auto paste into correct subblocks.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Other: ___________

Testing

  • Validated locally manifest is correct and fills out subblocks.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

Screenshots/Videos

image image image image image image

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Apr 20, 2026 8:37pm

Request Review

@TheodoreSpeaks
Copy link
Copy Markdown
Collaborator Author

@BugBot review

@cursor
Copy link
Copy Markdown

cursor Bot commented Apr 20, 2026

PR Summary

Medium Risk
Adds a new modal sub-block type and a Slack setup wizard that writes secrets/tokens into workflow state, so regressions could affect trigger configuration and credential handling in the editor UI.

Overview
Adds a new Slack app setup wizard UI that generates a Slack app manifest from selectable capabilities, provides step-by-step setup guidance, and writes botDisplayName, signingSecret, and botToken into the existing sub-block store for the Slack webhook trigger.

Introduces a new SubBlockConfig type modal resolved via a client-side MODAL_REGISTRY, updates the Slack webhook trigger to use this modal instead of the previous long HTML instruction text, and enhances checkbox-list options with defaultChecked + description (tooltip + default fallback behavior).

Also adds new emcn primitives Wizard and SecretInput (mask-on-blur), updates sub-block type validation to include modal, and includes a small UI class order tweak in the CSV import dialog plus a generated tool schema key formatting change.

Reviewed by Cursor Bugbot for commit 5a15504. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread apps/sim/triggers/slack/capabilities.ts
Comment thread apps/sim/triggers/slack/capabilities.ts Outdated
@TheodoreSpeaks TheodoreSpeaks marked this pull request as ready for review April 20, 2026 19:46
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 20, 2026

Greptile Summary

This PR introduces a multi-step Slack App Setup Wizard that auto-generates a Slack manifest from user-selected capabilities, guiding users through app creation and credential entry. It adds a reusable Wizard EMCN component, a modal sub-block type dispatched via a new client-side MODAL_REGISTRY, and a buildSlackManifest utility in the trigger layer.

  • navigator.clipboard.writeText in StepCreate.handleCopy is not awaited — any clipboard rejection silently fires the "Copied!" success state, misleading the user.
  • SecretInput.onChange passes e.target.value unconditionally; when isFocused is false, displayValue is bullet characters, so a programmatic change event would overwrite the stored secret with •••....

Confidence Score: 4/5

Safe to merge after fixing the clipboard async/error handling and the SecretInput onChange guard.

Two P1 issues exist in the wizard UI: unhandled clipboard Promise gives false success feedback, and SecretInput onChange can write bullet characters to the store. Both are confined to the wizard and don't affect data in normal usage, but should be fixed before merge.

apps/sim/app/.../slack-setup-wizard/slack-setup-wizard.tsx — clipboard and SecretInput onChange

Important Files Changed

Filename Overview
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/slack-setup-wizard/slack-setup-wizard.tsx Main wizard UI component — two P1 issues: clipboard write not awaited (false success feedback) and onChange called with bullet chars when blurred.
apps/sim/triggers/slack/capabilities.ts Defines SLACK_CAPABILITIES and buildSlackManifest; well-structured with correct deduplication, placeholder when webhook URL is absent, and no event_subscriptions block when empty.
apps/sim/components/emcn/components/wizard/wizard.tsx New reusable Wizard EMCN component — clean design, but progress bar uses step title as React key which could break for duplicate-titled steps.
apps/sim/triggers/slack/webhook.ts Adds the modal-type setupWizard sub-block to the Slack webhook trigger config, wiring it to the new registry entry.
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/modal-registry.ts New client-side modal registry pattern; clean and extensible, correctly keeps config decoupled from component imports.
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/sub-block.tsx Adds modal case to the sub-block renderer switch; lookup falls through the registry cleanly with a graceful error state for unknown IDs.
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/checkbox-list/checkbox-list.tsx Adds tooltip support for checkbox options; minimal change, correctly follows existing patterns.

Reviews (1): Last reviewed commit: "Fix test" | Re-trigger Greptile

Comment thread apps/sim/components/emcn/components/wizard/wizard.tsx Outdated
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ae72147. Configure here.

@TheodoreSpeaks TheodoreSpeaks merged commit 2ae1ad2 into staging Apr 20, 2026
14 checks passed
@TheodoreSpeaks TheodoreSpeaks deleted the feat/slack-manifest branch April 20, 2026 20:50
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