Repository navigation
fix(shortcuts): preserve explicitly chosen primary during upgrade - #2253
Merged
Merged
Conversation
Load the real 1.1.69 UserDefaults for default keys, reset-to-defaults, and Fn plus a custom Hands-Free key. After migrate, both keys must still be in the event-tap snapshot. Co-authored-by: Justin Betker <tz427gsydr@privaterelay.appleid.com>
1.1.70's one-key migrate dropped Fn for default-key users, dropped Hands-Free for reset-to-defaults users, and dropped a custom toggle when Fn was stored. Persist both 1.1.69 keys, register a distinct stored Hands-Free binding, and tag dictation events with categorical hold/toggle ids plus the existing local-build channel. Co-authored-by: Justin Betker <tz427gsydr@privaterelay.appleid.com>
The 1.1.69 two-key preserve skipped Carbon-era installs that had disabled Right Option. Missing shortcut mode reads as Hands-Free, so the lazy path returned today's Right Option default and Option+Space stopped firing. Persist that Carbon chord as the one dictation key, like 1.1.70 did. Co-authored-by: Justin Betker <tz427gsydr@privaterelay.appleid.com>
The 1.1.70 one-key default stays. Unstored defaults and reset-to-defaults (stored Fn) become Right Option. A custom Hands-Free key becomes the one dictation key. Dual Fn + Right Option is not restored. Upgraders from before 1.1.70 get a one-time Settings note, dismissed with OK. Fresh installs and anyone already on 1.1.70+ never see it. Carbon Option+Space still persists when Right Option was off. Co-authored-by: Justin Betker <tz427gsydr@privaterelay.appleid.com>
Smokes use a throwaway HOME and must not persist migrate or moved-key notice flags. Settings notice automation ids live next to the copy so tests can pin them. Co-authored-by: Justin Betker <tz427gsydr@privaterelay.appleid.com>
Owner
Author
|
Final review: the complete repair diff was independently approved, its original defect reproduced, and its regression tests passed. Exact repair-head CI is green. Combined candidate 75488fb passed mapped checks, fresh full deterministic QA/build and safe synthetic paste verification; see #2255 for evidence and the explicit native, thin-packaging and release limitations. Ready for the owner-authorized ancestry-preserving integration; no release or live hardware clearance is implied. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix
Fixes #2251. Builds on #2216 and preserves an explicitly selected non-Fn primary dictation shortcut and its behavior before considering a legacy Hands-Free shortcut. Retires the unused secondary binding without silently replacing the primary. Intended legacy Fn/default/custom Hands-Free and Carbon-era migration paths remain intact.
Evidence
No test baseline or gate was weakened.