Problem
The Control-Option-Command-C shortcut for Correct Last Dictation is intermittently ignored. When the shortcut fails, choosing Correct Last Dictation… from the status-item menu still opens the editor with the last dictation available.
That comparison isolates the observed failure to global shortcut recognition or dispatch rather than correction-session availability or editor presentation. The ordinary dictation shortcut continues to work, so the event-monitoring path is not universally unavailable.
A previous change removed dependence on receiving a matching C key-up event, but the failure remains reproducible. Further changes should be driven by evidence from the complete shortcut path rather than another timing adjustment.
Investigation contract
Add transcript-free diagnostics that distinguish:
- the global event source observing the intended modifier and key event;
- the shortcut matcher accepting or rejecting that event;
- dispatch reaching the main application queue;
- the correction callback being invoked;
- correction presentation accepting or rejecting the request.
Diagnostics must not record typed content, surrounding text, clipboard data, or transcripts.
Explicitly determine whether the shortcut is defined by physical key position or by the semantic C character across keyboard layouts. The menu label and implementation must agree.
Required behavior
- One intentional shortcut press opens one correction editor when a correctable last dictation exists.
- Recognition does not depend on a key-up event that macOS may route elsewhere.
- Key repeat does not open duplicate editors.
- Extra unrelated modifier state is handled according to an explicit, tested policy.
- Opening and dismissing menus, switching applications, changing focus, and completing dictations do not leave the shortcut latched or disabled.
- The shortcut does not interfere with the standard dictation shortcut or consume unrelated events.
- When no correctable dictation exists, the command follows the same availability behavior as the menu item.
Reproduction matrix
Exercise at least:
- immediately after launch;
- after a successful press-and-hold dictation;
- after a hands-free dictation;
- after opening and closing the status-item menu;
- after opening, cancelling, and applying the correction editor;
- after modifier keys are pressed and released in unusual orders;
- after switching applications and Spaces;
- with key repeat;
- with representative keyboard input sources.
For every failure, compare the global shortcut with the menu command before changing correction-controller code.
Acceptance criteria
- Repeated manual trials across the reproduction matrix produce no ignored or duplicate invocation.
- Automated tests cover non-repeat key-down recognition, missing key-up, repeat suppression, modifier ordering, application transitions, and re-entry after dismissal.
- The chosen physical-versus-semantic key policy is documented and tested.
- Transcript-free runtime diagnostics can localize any future failure to observation, matching, dispatch, callback, or presentation.
- Correct Last Dictation remains available from the menu as an independent fallback.
- No timing delay is used as the primary correctness mechanism.
Problem
The Control-Option-Command-C shortcut for Correct Last Dictation is intermittently ignored. When the shortcut fails, choosing Correct Last Dictation… from the status-item menu still opens the editor with the last dictation available.
That comparison isolates the observed failure to global shortcut recognition or dispatch rather than correction-session availability or editor presentation. The ordinary dictation shortcut continues to work, so the event-monitoring path is not universally unavailable.
A previous change removed dependence on receiving a matching C key-up event, but the failure remains reproducible. Further changes should be driven by evidence from the complete shortcut path rather than another timing adjustment.
Investigation contract
Add transcript-free diagnostics that distinguish:
Diagnostics must not record typed content, surrounding text, clipboard data, or transcripts.
Explicitly determine whether the shortcut is defined by physical key position or by the semantic C character across keyboard layouts. The menu label and implementation must agree.
Required behavior
Reproduction matrix
Exercise at least:
For every failure, compare the global shortcut with the menu command before changing correction-controller code.
Acceptance criteria