Skip to content

fix(shortcuts): preserve explicitly chosen primary during upgrade - #2253

Merged
r3dbars merged 6 commits into
mainfrom
fix/oct17-shortcut-preservation
Oct 18, 2026
Merged

r3dbars merged 6 commits into
mainfrom
fix/oct17-shortcut-preservation

Conversation

@r3dbars

@r3dbars r3dbars commented Oct 17, 2026

Copy link
Copy Markdown
Owner

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

  • Independent full repair review against original Move 1.1.69 dictation upgraders to one Right Option key #2216 head: no blocking finding.
  • Production preference probe with injected, UUID-named test suites: original 0/6 PASS; repaired 6/6 PASS, independently rerun. No real user preferences accessed by the probe.
  • Permanent regressions exercise three custom primaries across two prior versions and restore the chosen-primary-wins promise.
  • Test-shape, changed source-pin and diff checks PASS.
  • Final combined app/package validation and applicable exact-head CI are pending. Draft until complete; native hotkey/upgrade UX remains separate from synthetic preference proof.

No test baseline or gate was weakened.

r3dbars and others added 6 commits October 17, 2026 13:40
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>
@r3dbars r3dbars added bug Something isn't working needs owner review Owner must review before merge labels Oct 17, 2026
@r3dbars

r3dbars commented Oct 18, 2026

Copy link
Copy Markdown
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.

@r3dbars
r3dbars marked this pull request as ready for review October 18, 2026 00:24
@r3dbars
r3dbars merged commit 394805f into main Oct 18, 2026
12 checks passed
@r3dbars
r3dbars deleted the fix/oct17-shortcut-preservation branch October 18, 2026 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working needs owner review Owner must review before merge risk:high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Preserve a chosen primary dictation shortcut during legacy upgrade

1 participant