Summary
App-level Command-Z shortcuts and custom Edit menu commands can currently consume Undo while a text editor owns focus. Route standard Undo/Redo bindings through the focused canvas editor, editable native text control, or WebKit responder subtree before dispatching project history. Empty history and active composition stay within the editing context; project Undo/Redo resumes outside editing.
The shared route handles keyboard shortcuts and custom menu activation without matching localized labels or application command IDs. Tests configure custom menus, exercise an actual NSTextView edit/Undo/Redo sequence, and cover canvas history, composition, Web responder dispatch and project fallback.
Validation
- macOS syntax check of production host and test translation units: passed, with 20 host warnings and no errors.
- The isolated AppKit test executable compiled and linked successfully against macOS frameworks. It has not been executed.
- Whitespace checks passed.
- Full Zig tests remain incomplete. An earlier run of the same patch on the pinned consumer base stopped at the validation host's free-disk floor (exit 143), with no final summary; shard diagnostics remain unclassified.
scripts/gate.sh fasthas not run because of that disk limit.- Executed AppKit tests and real canvas/native/WebView editing remain pending. The Web subtree probe does not establish editable DOM or IME behavior.
Draft pending the remaining behavioral and framework checks. This branch is based on upstream main ff108d0a86468deafbf93f4184355984f8e088c0 and changes only the host and its AppKit test. No downstream SDK adoption is included.
External CI state
At head a4d21b8, GitHub CI run 40147402122 is action_required; no workflow test pass is established. Both Vercel preview statuses report authorization required to deploy. Socket checks and Vercel Internal Security Review passed. These external authorization states are separate from the local compilation evidence above.
Activity
2This pull request is a draft
Merging is unavailable until it is marked ready for review.
@gavinvolpe is attempting to deploy a commit to the Vercel Labs Team on Vercel.
A member of the Team first needs to authorize it.