Skip to content

[KS][KEY] shortcut-map-rebind: ⌘⇧N fires nothing under the driver #450

Closed

Description

@sethwebster

Part of #15 · Found in #446

Problem

e2e/flows/keyboard/shortcut-map-rebind.yaml fails under --backend driver on origin/seth/kitchen-sink-gate (bc15fee, run 2026-10-13): after rebinding New note to ⌘⇧N, pressing ⌘⇧N fires nothing (keyboard-shortcut-map-fired stays "Press a binding to fire its command."). It fails the same way with and without the #446 change.

Likely cause, not confirmed in the app: on macOS 27, -[NSMenu performKeyEquivalent:] matches a ⌘⇧N key-down against an item whose key equivalent is plain ⌘N. A standalone AppKit probe (File ▸ New n+⌘ with newDocument:, then a Spark-style item n+⇧⌘, synthetic ⇧⌘ event with characters N/n and charactersIgnoringModifiers n) runs File ▸ New and returns YES. The Kitchen Sink template has File ▸ New ⌘N, so the main menu consumes ⌘⇧N before the shortcut map's menu item or router sees it.

Scope

  • Confirm what consumes ⌘⇧N in the driven app (menu item, router, or the driver's synthesized event)
  • Fix it, or make the flow use a binding that does not depend on it, and report the cause

Activity

  1. added
    bugSomething isn't working
    sparkLegend Spark desktop framework
    kitchen-sinkKitchen Sink verification app
    release-gateBlocks releases until verified
    type:taskAgent-sized unit of work
    kind:apiMissing or incomplete Spark API
    area:inputKeyboard, pointer, text input
    on Oct 13, 2026
  2. sethwebster commented on Oct 13, 2026

    @sethwebster
    CollaboratorAuthor

    Fixed by #455: root cause was AppKit matching synthesized key events (driver/automation) by characters and ignoring Shift; Shift+letter shortcuts are now published as AppKit's uppercase key equivalent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:inputKeyboard, pointer, text inputbugSomething isn't workingkind:apiMissing or incomplete Spark APIkitchen-sinkKitchen Sink verification appplatform:macosmacOS-specificpriority:p2Laterrelease-gateBlocks releases until verifiedsparkLegend Spark desktop frameworktype:taskAgent-sized unit of work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions