improvement(menus): band by what the action acts on, not by verb - #6994
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview 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 Reviewed by Cursor Bugbot for commit bb6389c. Configure here. |
Greptile SummaryThe 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.
Confidence Score: 5/5The 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.
|
| 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
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
DropdownMenuSeparatorearns its place when the next group stops acting on the thing the user clicked. One question, asked identically in every menu.Count now follows content instead of a fixed number:
Retry, 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.Insert row above,Insert column left).Bug fixed: the workflow panel menu had six items across four scopes and no separator at all, so
Delete workflowsat flush againstDuplicate 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 columnabove it is unconditional.Two label fixes: the logs menu wrote
'Retrying...'with ASCII dots two lines above'Stopping…'with the character; andImport CSV…was the only ellipsis anywhere in the workspace menu surface, on an action that readsImport CSVin the list menu.Type of Change
Testing
bun run check:audits— 32/32 passbun run lint— 26/26 passbun run type-check— cleanNote: 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