Repository navigation
fix: explain Xcode-blocked Git once in the sidebar and rescan on return - #22552
Merged
Merged
Conversation
Contributor
|
This run was cancelled 🛑 The workflow was cancelled before completion. Please check the link below for details. |
This was referenced Sep 23, 2026
Closed
This was referenced Sep 23, 2026
10 of 11 tasks
This was referenced Sep 25, 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.

ELI5
After a macOS update, Git refuses to run until you accept Apple's Xcode license. Orca used to show a small red icon next to every project and hide the explanation in a hover. Now it shows one clear box at the top of the project list that says what to run, and it checks again automatically when you switch back to Orca.
What Changed
Before: every local project got its own red warning icon. The fix command was only visible on hover. The hover text said "Click to retry" without saying what to click: only the icon itself worked, and buttons inside the hover did not. After running the command, nothing told you whether it had worked.
After (macOS, local projects only):
sudo xcodebuild -license accept), a Copy command button, a Retry now button, and how many projects are affected.xcode-select --install).Mechanism:
sidebar/repo-scan-failure.tsnow holds one classifier shared by the per-project icon and the newLocalGitToolchainScanBanner.isLocalToolchainFailuredecides whether a failure belongs to the banner, andfindLocalToolchainBlockgroups the affected repos. The banner listens for windowfocusonly while something is blocked. Its rescan reads the store when it runs and calls the existingfetchWorktrees, which already merges overlapping local scans and returns whether the scan succeeded. That return value drives the confirmation, with no extra state. This is renderer-only; nothing changes in main or on the wire.Why
This failure is machine-wide: one unaccepted license breaks Git for every local repo at once. Showing it once per project made it look like N separate problems, and it put the only instructions behind a hover. People fix this in another app (Terminal), so switching back to Orca is the natural time to check again. That removes the "how do I rescan?" step completely.
The command changed to
sudo xcodebuild -license accept, which accepts in one step instead of opening the license text and asking you to type "agree".Alternatives considered: rewording only the tooltip, which leaves N icons and a hover-only fix; and polling on a timer, which costs a Git spawn per repo on an interval for something that changes only when the user acts.
Linked Issue
Follow-up to #21291 (UX feedback after updating to macOS 27).
Visual Proof
Before: a red ⚠ next to every project. The command and "Click to retry" appeared only on hover.
After:
Testing
Dev Orca on macOS 27 with 3 local repos and a simulated Xcode-license scan failure. One box appears and no per-project icons. Removing the failure and then focusing the window rescans all three, the box disappears, and "Git is working again" shows.
LocalGitToolchainScanBanner.test.tsx: one box and no per-repo marker on macOS; a window focus rescans every blocked repo and confirms recovery; a still-blocked rescan shows no toast; SSH and remote-runtime repos keep the per-repo marker; off macOS there's no box and the per-repo markers stay.Existing
RepoScanUnavailableIndicator.test.tsxstill passes.pnpm tc:webandpnpm run check:code-quality:changedpass.I manually tested these changes locally
Automated tests added/updated, or explained why not below
AI Disclosure
Review
Agent skill upstream boundary
docs/reference/agent-skill-sharing-upstream-boundary.mdand copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.Notes
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)