cmux-next palette: daily first, related commands folded, niche commands lower (palette audit)

Merged
TE
16d ago
+5559-5

Summary

An audit of the cmux NEXT command palette (Cmd-Shift-P), applied as ordering, not removal. Leo: keep the useful stuff, push the rest down, consolidate; nothing disappears from search.

  • Tiers. Every palette action is daily, standard or niche (ActionDescriptor+PaletteRank.swift, one table). Daily rows lead their section on the empty query and get +120 inside a match class while typing; niche rows close their section and get −120. A bias never crosses a match class, so a better match of a niche row still wins, and usage still lifts it.
  • Families. Related rows fold into one row on the empty query: Workspace: Move… opens a page of the ten moves, Tab: Move… the fourteen, and so on (29 new rows). Where an action already opens the choices, it stands for them: Set Space Color… for the nine colors, Toggle Developer Tools for the 41 Developer Tools commands. Members stay search results, and the family row matches the members' titles.
  • Duplicates. Six pairs fold into the row people know, which matches the other title.
  • Focus. A row the focused pane cannot run stays listed, last in its section, dimmed with the reason as its subtitle. Typing ranks it after every runnable row.
  • Aliases. Built-in aliases font, theme, background and machine act like a cmux.json alias: the whole word puts the command first. The user's own aliases for the same action come first. There is no steer command to alias yet: steering is the composer's Return key, and the composer-polish and steer-default lanes own its setting.
  • Recent and frequent rows already lead the palette (frecency, Recent, learned picks). This PR leaves that alone; tiers only order rows that tie on usage.

Before: 1,082 rows on the empty query, Window first, in catalog order. After: about 750 rows (families folded), daily first and unrunnable rows last in each section.

Classification

Full per-action table (1,082 rows, with default keys): plans/cmux-next/palette-audit.md. Rules: palette-ranking.md 5.4.

ClassRowsEmpty queryTyping
a. daily43first in its section+120 within a match tier
b. standard604its section, catalog orderunchanged
c. niche70last in its section−120 within a match tier
c. family member359folded into its family rowmatches, −120
c. duplicate6folded into the row people knowmatches, −120
total1082

Daily: Change Background…, Check for Updates…, Close Pane, Close Tab, Close Workspace, Connect to Machine…, Customize Appearance…, Decrease Font Size, Equalize Splits, Find in Directory…, Find…, Go to Workspace…, Increase Font Size, Jump to Latest Unread, New Agent Chat, New Browser Tab, New Cloud Workspace, New Tab, New Window, New Workspace, New Workspace on Machine…, Open Diff Viewer, Open File…, Open Folder…, Open Keyboard Shortcuts, Recently Closed…, Reload Configuration, Rename Tab…, Rename Workspace…, Reopen Closed Workspace, Reopen Last Closed Tab, Search All Windows…, Search Chats & Agents…, Search Tabs…, Set Terminal Theme…, Settings…, Split Down, Split Right, Start Agent…, Toggle Left Sidebar, Toggle Pane Zoom, Toggle Right Sidebar, Toggle Setting…

Family rowOpensMembers
Workspace: Move…its own page10: Move Workspace Up, Move Workspace Down, Move Workspace to Top, Move Workspace to Bottom…
Workspace: New or Duplicate…its own page9: New Workspace Above, New Workspace Below, New Workspace at Top, New Workspace at Bottom…
Workspace: Close Several…its own page6: Close Other Workspaces, Close Workspaces Above, Close Workspaces Below, Close All Workspaces…
Workspace: Sort…its own page3: Sort Workspaces by Directory, Sort Workspaces by Last Used, Sort Workspaces by Name
Workspace Group: Move…its own page7: Move Workspace Group Up, Move Workspace Group Down, Move Workspace Group to Top, Move Workspace Group to Bottom…
Workspace Group: Sort…its own page3: Sort Group by Directory, Sort Group by Last Used, Sort Group by Name
Tab: Move…its own page14: Move Tab Left, Move Tab Right, Move Tab to Next Pane, Move Tab to Previous Pane…
Tab: New in Position…its own page6: New Tab After Current Tab, New Tab at End, New Tab at Start, New Tab to the Right…
Tab: Close Several…its own page3: Close Other Tabs, Close Tabs to the Left, Close Tabs to the Right
Tab Group: Move…its own page7: Move Tab Group Left, Move Tab Group Right, Move Tab Group to New Column, Move Tab Group to New Split…
Screen: Move…its own page5: Move Screen Left, Move Screen Right, Move Screen to New Window, Move Screen to New Workspace…
Screen: Close Several…its own page3: Close Other Screens, Close Screens to the Left, Close Screens to the Right
Screen Group: Move…its own page5: Move Screen Group Left, Move Screen Group Right, Move Screen Group to New Window, Move Screen Group to New Workspace…
Pane: Swap…its own page5: Swap Pane Left, Swap Pane Right, Swap Pane Up, Swap Pane Down…
Pane: Resize…its own page4: Resize Pane Left, Resize Pane Right, Resize Pane Up, Resize Pane Down
Column: Width…its own page6: Column Width: One Third, Column Width: Half, Column Width: Two Thirds, Column Width: Full…
Column: Dock or Float…its own page7: Dock Column, Dock Column Left, Dock Column Right, Dock Column Top…
Canvas: Align and Distribute…its own page8: Align Panes Left, Align Panes Right, Align Panes Top, Align Panes Bottom…
Phone: All Commands…its own page21: Boot Phone, Shut Down Phone, List Phones, Take Phone Screenshot…
Cloud Machine: Files and Network…its own page13: List Cloud Files…, Read Cloud File…, Write Cloud File…, Cloud File Details……
Bookmarks: All Commands…its own page15: Add Bookmark…, Bookmark All Tabs…, New Bookmark Folder…, Open Bookmark in New Tab…
Browser Profile: All Commands…its own page19: New Browser Profile…, Rename Browser Profile…, Delete Browser Profile and Its Data…, Set Browser Profile Color……
Animations…its own page18: Toggle All Animations, Turn Off Animations, Use Normal Animations, Use Fast Animations…
Window Style…its own page9: Window Style: Default, Window Style: Bare, Window Style: Card, Window Style: Card with Outlines…
Pane Borders and Focus Ring…its own page9: Toggle Pane Borders, Toggle Thick Pane Borders, Use Theme Color for Pane Borders, Toggle Rounded Pane Corners…
Tab Hibernation…its own page7: Turn Off Tab Hibernation, Hibernate Hidden Tabs After 1 Hour, Hibernate Hidden Tabs After 10 Minutes, Don't Keep Neighbor Tabs Awake…
Notifications: When to Clear…its own page6: Clear Notifications on Click, Clear Notifications Only When Opened, Clear Notifications on Focus, Clear Notifications When Typing…
Fork Conversation…its own page6: Fork Conversation to the Right, Fork Conversation to the Left, Fork Conversation Above, Fork Conversation Below…
Sidebar Section: Layout…its own page14: Show as List, Show as Grid, Show on One Line, Set Section Alignment……
Set Space Color…existing action9: Space Color: Grey, Space Color: Red, Space Color: Orange, Space Color: Yellow…
Set Workspace Group Color…existing action9: Workspace Group Color: Grey, Workspace Group Color: Red, Workspace Group Color: Orange, Workspace Group Color: Yellow…
Set Screen Color…existing action9: Screen Color: Grey, Screen Color: Red, Screen Color: Orange, Screen Color: Yellow…
Set Screen Group Color…existing action9: Screen Group Color: Grey, Screen Group Color: Red, Screen Group Color: Orange, Screen Group Color: Yellow…
Set Tab Group Color…existing action9: Tab Group Color: Grey, Tab Group Color: Red, Tab Group Color: Orange, Tab Group Color: Yellow…
Set Density…existing action5: Density: Ultra-compact, Density: Compact, Density: Cozy, Density: Comfortable…
Toggle Developer Toolsexisting action41: Developer Tools: Open Docked, Developer Tools: Dock to Right, Developer Tools: Open in Separate Window, Developer Tools: Close…
Extensions…existing action10: Run Extension Shortcut, Disable Extension, Enable Extension, Move Pinned Extension…
View Site Informationexisting action10: About This Page, Show Certificate, Show Connection Details, Show Cookies and Site Data…
DuplicateFolded into
Show Feed (switchRightSidebarToFeed)Show Feed (feed.show)
New Workspace on Machine (remote.newWorkspace)New Workspace on Machine… (workspace.newOnMachine)
Copy SSH Error (remote.copyError)Copy SSH Error (copyWorkspaceSSHError)
Increase Interface Size (appearance.interfaceSize.increase)Increase Interface Scale (appearance.uiScale.increase)
Decrease Interface Size (appearance.interfaceSize.decrease)Decrease Interface Scale (appearance.uiScale.decrease)
Reset Interface Size (appearance.interfaceSize.reset)Reset Interface Scale (appearance.uiScale.reset)

Niche: Allow Site Request, Always Center Focused Column, Attempt Update, Base Keymap…, Block Site Request, Center Focused Column on Overflow, Copy Agent Identifier, Copy Identifiers, Copy Machine ID, Copy Pane ID, Copy Tab ID, Copy Workspace Group ID, Copy Workspace ID, Copy Workspace ID and Ref, Decrease Workspace Font Size, Disable cmux Browser, Enable cmux Browser, Feature Flags, Go Back from Certificate Warning, Grant Accessibility Access, Grant Screen Recording Access, Hide Announcements, Hide Media Card Until Relaunch, Hide Profile Button, Import Workspaces from Classic cmux, Increase Workspace Font Size, Install cmux CLI in PATH, Kill Process…, Links: Open in Default Browser, Links: Open in cmux Browser, List Cloud Domains, List Cloud Networks, List Cloud Publications, Make This Mac a Server, Make cmux the Default Browser, Make cmux the Default Terminal, Never Show Media Card, Open Debug Settings, Open Site Settings of Blocked Download, Prepare Cloud File Transfer…, Proceed Past Certificate Warning (Unsafe), Promote Machine to Template, Quit and End Everything, Quit and End Sessions, Keep Layout, Quit and Keep Sessions, Reset Workspace Font Size, Restart CLI Listener, Restart VS Code Inline Server, Restart cmux-tui…, Roll Back to Previous Version…, Save Last 10 Seconds, Scroll Columns Minimally, Send Ctrl-F to Terminal, Show Announcements, Show Crash Logs, Show Ghostty Config Diagnostics, Show Media Card, Show Profile Button, Stop Serving, Stop VS Code Inline Server, Switch Update Channel…, Tabs: Use Scrolling Tabs, Tabs: Use Shrinking Tabs, Toggle Column Scroll Bar, Toggle React Grab, Uninstall cmux CLI from PATH, Use Chromium for New Browser Tabs, Use Minimal Titlebar, Use Standard Titlebar, Use WebKit for New Browser Tabs

Testing

  • PaletteRankCatalogTests (CmuxNextActionsTests): every listed id is a palette action, families don't overlap, members are niche.
  • PaletteFamilyRowsTests (CmuxNextPaletteTests): no action row is dropped; Workspace: Move… opens its members; parents match member titles; tier order; the font alias puts Customize Appearance… first; a folded member still matches its title.

Observed / Not run

Ran: python3 scripts/cmux-next/prepush-gate.py (no new violations); scripts/localization_catalog.py check (no errors for the new keys; the base has 41,091 existing parity errors elsewhere); every listed action id checked against action-surfaces.json (all exist and are palette-offered).

Not run locally: Swift build and tests (no compiles on this Mac). They run in this PR's CI. Not done: a before/after capture. The palette is native AppKit, so the Linux webview gallery doesn't render it; a debug.palette.capture from a tagged build would.

Changelog

Changed: The command palette lists daily commands first, folds related commands (moves, colors, Developer Tools) into one row each, and moves rarely used ones down; every command still shows up when you search.

Localization

29 new family titles in ActionCatalog.xcstrings, translated for all 21 locales the catalog carries. scripts/localization_catalog.py check reports no errors for the new keys (the base's existing needs_review entries elsewhere are unchanged).

Risk: normal (palette ordering and presentation; no action, CLI verb or MCP tool changes).

Agent session: cosmic-gray

🤖 Generated with Claude Code