Skip to content

feat(workflow): curated 'Common steps' section in the component picker#2614

Open
simlarsen wants to merge 1 commit into
feat/workflow-data-flow-overlayfrom
feat/workflow-common-components
Open

feat(workflow): curated 'Common steps' section in the component picker#2614
simlarsen wants to merge 1 commit into
feat/workflow-data-flow-overlayfrom
feat/workflow-common-components

Conversation

@simlarsen

Copy link
Copy Markdown
Contributor

Tames the overwhelming component picker — the safe slice of the "catalog collapse". Stacked on #2613.

What

Opening the picker means facing a very long list: the static components plus up to eleven database operations for every model that enables workflows (hundreds of near-identical entries). This surfaces the ~dozen steps most authors actually reach for at the top.

  • Pure getCommonComponents(components, componentType) returns a curated, ordered subset — Slack, Email, API GET/POST, If/Else, JavaScript, Log, Run Workflow, Sleep (components); Schedule, Webhook, Manual (triggers) — skipping any id not present, so it can never surface a broken entry.
  • ComponentsModal renders it as a "Common steps" section at the top, hidden while searching (search stays a flat ranked list).

Why this and not the full block-collapse

It's a pure shortcut — the full catalog still lists everything below, so no component is removed, renamed, or morphed. That means zero fidelity risk, unlike the ~15-block collapse (which would have to reproduce the exact id/args/ports of every model permutation and keep a legacy loader). This delivers most of the "don't drown in hundreds of entries" value safely; the full morph-based collapse remains a larger, app-QA follow-up.

Verification

  • getCommonComponents (4 tests): curated order preserved; trigger vs component filtering; never surfaces a non-curated component; empty when none present.
  • 95 workflow tests pass; tsc ✓, eslint ✓.

🤖 Generated with Claude Code

…s" section

Opening the picker means facing a very long list — the static components plus
up to eleven database operations for every model that enables workflows
(hundreds of near-identical entries). This surfaces the ~dozen steps most
authors actually reach for at the top, so the common case is one glance away.

- Pure getCommonComponents(components, componentType) returns a curated,
  ordered subset (Slack, Email, API GET/POST, If/Else, JavaScript, Log, Run
  Workflow, Sleep for components; Schedule, Webhook, Manual for triggers),
  skipping any id not present so it can never surface a broken entry.
- ComponentsModal renders it as a "Common steps" section at the top of the
  list, hidden while searching (search stays a flat ranked list). It's a pure
  shortcut — the full catalog still lists everything below, so no component is
  removed, renamed, or morphed (zero fidelity risk, unlike a full block
  collapse).

Tests: getCommonComponents (curated order, trigger vs component filtering,
never surfaces non-curated, empty when absent). 95 workflow tests pass; tsc +
eslint clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@simlarsen

Copy link
Copy Markdown
Contributor Author

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

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.

2 participants