Skip to content

feat(mac): evaluate installation state on startup 🍎 - #16268

Merged
sgschantz merged 19 commits into
epic/mac-configfrom
feat/mac/install-notifications
Aug 10, 2026
Merged

feat(mac): evaluate installation state on startup 🍎#16268
sgschantz merged 19 commits into
epic/mac-configfrom
feat/mac/install-notifications

Conversation

@sgschantz

@sgschantz sgschantz commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Expose a new property installationPhase so 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

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
@sgschantz sgschantz added this to the A19S34 milestone Jul 20, 2026
@sgschantz sgschantz self-assigned this Jul 20, 2026
@sgschantz sgschantz added this to Keyman Jul 20, 2026
@github-project-automation github-project-automation Bot moved this to Todo in Keyman Jul 20, 2026
@github-actions github-actions Bot added the feat label Jul 20, 2026
@keymanapp-test-bot

keymanapp-test-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown

User Test Results

Test 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
@sgschantz sgschantz changed the title feat(mac): define InstallationPhase enum for UI 🍎 feat(mac): evaluate installation state on startup 🍎 Jul 27, 2026
Base automatically changed from feat/mac/notify-input-method to feat/mac/expand-package July 31, 2026 01:06
@keyman-server keyman-server modified the milestones: A19S34, A19S35 Aug 3, 2026
@sgschantz
sgschantz marked this pull request as ready for review August 5, 2026 13:41
Base automatically changed from feat/mac/expand-package to epic/mac-config August 6, 2026 12:56

@jahorton jahorton left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread mac/Config/Installation/InstallationState.swift

@mcdurdin mcdurdin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Comment thread mac/Config/Installation/InstallationState.swift
Comment thread mac/KeymanSettings/Sources/KeymanSettings/ConfigAppUtil.swift Outdated
Comment thread mac/Config/Installation/InstallationCheck.swift
Comment thread mac/Config/Installation/InstallationCheck.swift Outdated
Comment thread mac/Config/Installation/InstallationContainer.swift
Comment thread mac/Config/Installation/InstallationContainer.swift Outdated
Comment thread mac/Config/Installation/InstallationContainer.swift Outdated
Comment thread mac/Config/Installation/InstallationContainer.swift Outdated
Comment thread mac/Config/Installation/InstallationContainer.swift Outdated
@sgschantz
sgschantz merged commit 6a69097 into epic/mac-config Aug 10, 2026
7 checks passed
@sgschantz
sgschantz deleted the feat/mac/install-notifications branch August 10, 2026 15:26
@github-project-automation github-project-automation Bot moved this from Todo to Done in Keyman Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants