close
Skip to content

improvement(menus): band by what the action acts on, not by verb - #6994

Merged
waleedlatif1 merged 1 commit into
stagingfrom
menu-scope-bands
Aug 22, 2026
Merged

improvement(menus): band by what the action acts on, not by verb#6994
waleedlatif1 merged 1 commit into
stagingfrom
menu-scope-bands

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Follow-up to #6974. That PR standardised on "at most one separator"; this replaces that with the test that actually earns a rule.

Summary

The test: a DropdownMenuSeparator earns its place when the next group stops acting on the thing the user clicked. One question, asked identically in every menu.

The group Rule before it
Acts on the clicked item (open, rename, duplicate, export, copy, edit, pin, run) no — this is the body of the menu
Acts on something else — the page's filters, or a new sibling yes
Destroys or detaches it yes

Count now follows content instead of a fixed number:

  • Logs rowRetry, Cancel Run │ Copy Run ID, Copy Link, Open Workflow, Open Snapshot │ Filter by Workflow, Clear Filters. The last two act on the page, not the log.
  • Table row and column options — a rule where the menu stops acting on the clicked cell/column and starts creating siblings (Insert row above, Insert column left).
  • Every other row menu keeps its single rule; under this test they genuinely only have the destructive transition.

Bug fixed: the workflow panel menu had six items across four scopes and no separator at all, so Delete workflow sat flush against Duplicate workflow. It now carries the destructive rule every other menu has.

Guards: the table-row rule is guarded on all seven of its predecessors' exact render conditions, since every item above it is conditional. The logs rule is guarded on the exact disjunction of its two filter items. The column rule needs none — Edit column above it is unconditional.

Two label fixes: the logs menu wrote 'Retrying...' with ASCII dots two lines above 'Stopping…' with the character; and Import CSV… was the only ellipsis anywhere in the workspace menu surface, on an action that reads Import CSV in the list menu.

Type of Change

  • Improvement
  • Bug fix

Testing

  • bun run check:audits — 32/32 pass
  • bun run lint — 26/26 pass
  • bun run type-check — clean
  • Tests: 1328 pass across the touched areas

Note: an unrelated randomized property test (markdown-parse.test.ts, in code this PR does not touch) failed once during a broad run and then passed on four subsequent runs including the identical command. Flagging it as a latent flake rather than something this PR introduced.

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)

Replaces "at most one separator" with the test that actually earns a
rule: does the next group stop acting on the thing the user clicked.

Most row menus have only the destructive transition and keep their one
rule. Three menus have a second, and now show it — the logs row menu
between this log and the page's filters, and the table row and column
menus where they stop acting on the clicked cell or column and start
creating siblings. Count follows content rather than a fixed number.

The workflow panel menu had six items across four scopes and no
separator at all, so "Delete workflow" sat flush against "Duplicate
workflow"; it now carries the destructive rule every other menu has.

Two label fixes: the logs menu wrote 'Retrying...' with ASCII dots two
lines above 'Stopping…' with the character, and "Import CSV…" was the
only ellipsis anywhere in the workspace menu surface while the same
action reads "Import CSV" in the list menu.
@vercel

vercel Bot commented Aug 22, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
Image docs Ready Ready Preview Aug 22, 2026 10:31pm

Request Review

@cursor

cursor Bot commented Aug 22, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
UI-only menu separators and label tweaks; no auth, data, or behavior changes beyond visual grouping.

Overview
Replaces the “at most one DropdownMenuSeparator” rule with a single test: a rule belongs where the next group stops acting on the thing the user clicked (page filters / new siblings, or destroy/detach). Verb-based bands stay forbidden.

Logs row now has a second, guarded rule before Filter / Clear Filters. Table row and column menus get a rule before insert-sibling actions (row menu guard is the exact union of every item above it). Workflow panel finally separates Delete from Duplicate.

Also normalizes two labels: logs Retrying… (unicode ellipsis) and table Import CSV (no stray ellipsis). Docs in sim-list-ordering.md and CLAUDE.md match the new test.

Reviewed by Cursor Bugbot for commit bb6389c. Configure here.

@greptile-apps

greptile-apps Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR revises menu-grouping guidance so separators mark changes in what actions target, then applies that rule across logs, tables, columns, and the workflow panel.

  • Adds correctly guarded separators before page-filter and sibling-creation actions.
  • Separates workflow deletion from non-destructive workflow actions.
  • Standardizes the “Retrying…” and “Import CSV” labels.
  • Updates the repository’s menu-ordering documentation to describe the new grouping rule.

Confidence Score: 5/5

The PR appears safe to merge, with separator guards and adjacent menu items preserving valid non-empty groups across the changed states.

The changes are presentational and documentation-focused; the conditional separators exactly track their rendered action groups, while unconditional separators remain bounded by always-rendered items.

Important Files Changed

Filename Overview
.claude/rules/sim-list-ordering.md Replaces the one-separator convention with target-based grouping and retains the exact-condition requirement for separator guards.
CLAUDE.md Updates the condensed menu-grouping guidance consistently with the detailed rule.
apps/sim/app/workspace/[workspaceId]/logs/components/log-row-context-menu/log-row-context-menu.tsx Adds a filter-scope separator whose guard exactly matches the following conditional filter actions and standardizes the pending retry ellipsis.
apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/context-menu/context-menu.tsx Adds a separator before row-creation actions using a guard that exactly mirrors every preceding conditional action.
apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/headers/workflow-group-meta-cell.tsx Adds a separator between column-targeted actions and unconditional sibling-column insertion actions.
apps/sim/app/workspace/[workspaceId]/tables/components/table-context-menu/table-context-menu.tsx Standardizes the Import CSV label without changing action behavior.
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/panel.tsx Adds an inert separator between always-rendered duplicate and delete workflow actions.

Reviews (1): Last reviewed commit: "improvement(menus): band by what the act..." | Re-trigger Greptile

@waleedlatif1
waleedlatif1 merged commit b1759f3 into staging Aug 22, 2026
30 checks passed
@waleedlatif1
waleedlatif1 deleted the menu-scope-bands branch August 22, 2026 22: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