Skip to content

fix(app): wire or remove dead menu items and drop the New Session ⇧⌘S - #57919

Merged
kitlangton merged 3 commits into
betafrom
menu-cleanup
Oct 21, 2026
Merged

kitlangton merged 3 commits into
betafrom
menu-cleanup

Conversation

@kitlangton

@kitlangton kitlangton commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Three macOS menu items pointed at command ids that nothing registers, so they did nothing. The New Session item also advertised ⇧⌘S.

Item Before After
File › New Session session.new, ⇧⌘S (only registered inside a session) tab.new, ⌘N (registered globally; session.new already forwards to it)
File › Open Project… project.open, ⌘O (not registered) Removed
View › Toggle Sidebar sidebar.toggle, no shortcut sidebar.toggle, ⇧⌘B
Go › Previous / Next Project project.previous / project.next, ⌘⌥↑/↓ (not registered) Removed
session.new keybind ⇧⌘S None. Settings › Keybinds no longer lists ⇧⌘S
  • Open Project has no app-wide command. project.select ("Search projects", ⇧⌘O) is registered only on the new-session screen and is disabled when there are no projects, so the menu item would still do nothing on most screens.
  • The app has no project ordering or previous/next project command.
  • ⌥↑/↓ and ⇧⌥↑/↓ session switching are unchanged.
  • The unused native strings desktop.menu.openProject, previousProject and nextProject stay for now. Removing them touches desktop-native.ts, and lint:changed would then flag 10 existing parser violations in that file.

Test: each command the menu names is now a static definition ({ id, keybind }) exported by the module that registers it and spread into its command.register (or ctx.add(Command) for the terminal extension). desktop-menu.test.ts asserts every menu command matches one of those definitions, with extension commands formed as ${extension}.${id} from the real extension definition. It does not cover conditional registration (sidebar.toggle only with vertical tabs, logs.export only on desktop) or an owner dropping its register call while keeping the export. Against origin/beta it fails with session.new, project.open, project.previous and project.next.

Verification: bun typecheck (app, desktop), bun test src/shell/commands src/runtime/i18n/desktop-native.test.ts, bun run lint:changed origin/beta.

@kitlangton
kitlangton merged commit 7eb29f8 into beta Oct 21, 2026
11 of 17 checks passed
@kitlangton
kitlangton deleted the menu-cleanup branch October 21, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant