Download

App commands now live in one table in apps/native/src/workspace/commands.rs. The palette, the menu bar and extensions all read from it, and each shortcut label is read from the key bindings, so a label cannot drift from the binding that runs. Menus and palette look the same as before.

Extension authors get Commands.run(command) for commands that only move around the app or open a view, such as showing a panel, toggling the sidebar, switching project, or opening settings or the palette. Commands that change or send something, like archive, send or quit, cannot be run by an extension. Any other name is refused with the list of allowed names, and runs are limited to once per 500 ms while the extension is on screen.

In the app

The command palette looks the same, with shortcut labels now read from the key bindings.
The command palette looks the same, with shortcut labels now read from the key bindings.