Skip to content

Feat: per-window layout memory & Accessibility startup gate - #128

Open
dranik-by wants to merge 4 commits into
runjuu:mainfrom
dranik-by:feat/persist-app-keyboard-memory
Open

Feat: per-window layout memory & Accessibility startup gate#128
dranik-by wants to merge 4 commits into
runjuu:mainfrom
dranik-by:feat/persist-app-keyboard-memory

Conversation

@dranik-by

Copy link
Copy Markdown

No description provided.

@dranik-by dranik-by changed the title Feat: persist app keyboard memory Feat: persist app keyboard memory & per-window layout memory & Accessibility startup gate Aug 27, 2026
@dranik-by dranik-by changed the title Feat: persist app keyboard memory & per-window layout memory & Accessibility startup gate Feat: per-window layout memory & Accessibility startup gate Aug 27, 2026

@runjuu runjuu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found several blocking regressions that should be addressed before merging:

  1. [P1] Restore the indicator controller and event subscription. AppDelegate no longer creates IndicatorWindowController, and the controller no longer subscribes to activateEventPublisher. As a result, the on-screen indicator, including always-on, auto-show, shortcut, and function-key indicators, can never appear.

  2. [P1] Use a stable persisted key for normal-app memory. Normal-app cache keys are written as bundle#pid#window, but process IDs and CG window numbers change when the target application restarts. retrieve supports a bundle fallback, yet save never writes that fallback. Layout memory therefore cannot survive a target-app or Mac restart, and unreachable entries accumulate over time.

  3. [P1] Do not silently enable restore-previously-used during migration. Every profile without ISPEnableRestorePreviouslyUsed.v1, including existing users who intentionally disabled the feature, is changed from false to true. This unexpectedly changes input-source switching behavior.

  4. [P2] Remove com.apple.security.cs.disable-library-validation unless it is demonstrably required. The entitlement weakens the hardened runtime, while this PR does not add an unsigned-library or plugin-loading requirement.

  5. [P2] Keep the shared scheme Run action on Debug. Changing LaunchAction to Release makes normal Cmd+R launches optimized and excludes DEBUG behavior, which impairs development and debugging.

Verification: xcodebuild -scheme "Input Source Pro" -configuration Debug -destination "platform=macOS" CODE_SIGNING_ALLOWED=NO test succeeded with all 66 tests passing. The current tests do not cover indicator construction or persistence across a target-app relaunch.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants