Skip to content

Usability improvements: refresh, sign-in and helper recovery - #874

Open
anciltech wants to merge 1 commit into
XcodesOrg:mainfrom
anciltech:feature/usability-improvements
Open

anciltech wants to merge 1 commit into
XcodesOrg:mainfrom
anciltech:feature/usability-improvements

Conversation

@anciltech

@anciltech anciltech commented Oct 2, 2026 •

Copy link
Copy Markdown

After changing the data source, signing in, or selecting an Xcode in Terminal, Xcodes can show stale state. Helper failures also leave users without a clear next action. This change refreshes the relevant state and provides recovery choices at the point of failure.

Changes

  • Refresh available releases once per launch and after sign-in/data-source changes. Preserve a running full refresh when the app becomes active; prevent cancelled requests from fetching or publishing replacement data.
  • Recheck the selected developer directory when the app becomes active, independently of catalog refresh, so a Terminal xcode-select change updates the active indicator.
  • Explain why the Apple data source requires sign-in and offer Login instead of a raw 401 error. Avoid new-release notifications caused only by switching data sources.
  • Retry the version check while a newly installed helper starts, and explain authorization/signature/connection failures.
  • For failed helper actions, offer Advanced Settings or a safely quoted command to copy into Terminal. When Xcode is installed but post-install steps fail, offer Open Xcode to finish setup on first launch.
  • Label notifications generated by unit tests; include helper/notification warning fixes alongside the affected code. Preserve the upstream signing configuration.

Validation

  • Full macOS unit suite: 62 tests passed with Xcode 27.1 beta, Test configuration, arm64 destination, signing disabled.
  • Tests cover active-selection refresh during catalog refresh, helper retry/failure, post-install recovery, and shell quoting.
  • Fixed the cancellation race in refresh-test cleanup; the complete suite passes without excluding the previously stalled test.
  • Combined with the other two topics: all 75 tests passed.

Reviewer checks

  1. Switch data sources and sign in with the Apple source; check refreshed releases and the sign-in guidance.
  2. Run xcode-select in Terminal, then return to Xcodes; check the active selection updates.
  3. Fail a helper-backed selection and check Settings/Copy Command recovery. Fail post-install setup and check Open Xcode recovery.

Consolidates #863, #864, #866, #867 and the related maintenance from #869. Related independent topics: UI update and Platform management. The combined preview branch contains the complete app and tested resolutions for the shared code.

Related review topics: #873, #875.

Related issues

This branch has not been deployed

No deployments
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