feat(mac): evaluate installation state on startup 🍎 - #16268
Merged
Conversation
provides a simple way for UI to determine what to present to the user also generates events, but these could be generated before the UI has a chance to listen for them
User Test ResultsTest specification and instructions User tests are not required Test Artifacts |
for new installations, check if the input method is enabled and whether it has Accessibility permission before adding those items to the task list as they may be in place from a previous installation
creates custom list of installation state in case some of the installation was done previously checks whether repairs are needed for completed installations fixes bug to kill keyman for CheckAccess call
also fixed bug where InstallState not initialzied when installation evaluation is not happening
this is checked on init to complete an installation also added flag for tracking whether the complete message has been displayed to the user
this ensures that the changes to this published property will result in a SwiftUI notification also made a couple changes in response to devin.ai code review
InstallationState is now only stored in InstallationCheck -- InstallationContainer must access it from there
add setting to allow testing with version mismatch
Base automatically changed from
feat/mac/notify-input-method
to
feat/mac/expand-package
July 31, 2026 01:06
…p/keyman into feat/mac/install-notifications
sgschantz
marked this pull request as ready for review
August 5, 2026 13:41
jahorton
approved these changes
Aug 7, 2026
jahorton
left a comment
Contributor
There was a problem hiding this comment.
I might have skimmed over a fair bit of InstallationCheck.swift, but I think stuff overall LGTM. Aside from the UI stuff of course, but that's noted to be out-of-scope for this PR.
mcdurdin
approved these changes
Aug 10, 2026
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.
Expose a new property
installationPhaseso that the Installation view in the Config app knows what to display (or whether to display anything) on startup.Do an evaluation of the install state for new installations, to make sure that we take the minimal action necessary to complete the install. (If this is an update of a previous successful install, then we can usually skip some steps.) Once this evaluation is complete, update the installationPhase from 'evaluatingInstallation' to 'newInstallation'.
Fire notifications when the installation needs repair and when the accessCheck return granted or not granted (for Accessibility permissions).
Also added new tasks for confirming that access was granted and that the machine was restarted.
Note that all the UI implementation in this PR is for testing purposes only and will be replaced. The UI is being developed separately in #16304, #16252 and #16299.
Build-bot: release:mac
Test-bot: skip