fix: relaunch.sh — prefer ~/.dotnet SDK and skip Xcode version check#324
fix: relaunch.sh — prefer ~/.dotnet SDK and skip Xcode version check#324PureWeen merged 2 commits intoPureWeen:mainfrom
Conversation
The script failed on machines where: - .NET 10 SDK is installed via dotnet-install.sh (~/.dotnet) but the system dotnet (/usr/local/share/dotnet) is an older version - Xcode is a minor version ahead of what the .NET MacCatalyst SDK expects Both fixes are conditional/harmless on machines that don't need them. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
btessiau
left a comment
There was a problem hiding this comment.
PR #324 Review -- Multi-Model Consensus Report
CI Status:
Models used: claude-opus-4.6 ×2, claude-sonnet-4.6, gemini-3-pro-preview, gpt-5.3-codex
✅ PATH prepend is correct
The [ -x "$HOME/.dotnet/dotnet" ] guard, timing (before first dotnet invocation), and process-local export are all sound. No issues found.
🟡 MODERATE -- ValidateXcodeVersion=false is unconditional (3/5 models flagged)
PolyPilot/relaunch.sh:33 -- The flag correctly silences minor Xcode version skew (the stated intent), but also silences major version incompatibilities. Since relaunch.sh kills the old app before launching the new build, a silently broken binary is more disruptive here than a clear build error.
Mitigating factor: Actual clang/linker failures will still surface -- the risk is narrow (codegen succeeds but runtime differs).
Suggested fix: Add a comment documenting the tradeoff:
# -p:ValidateXcodeVersion=false bypasses the .NET SDK's Xcode version-string gate.
# Safe for minor version skew (Apple ships Xcode faster than .NET certifies it).
# A major Xcode incompatibility will still surface as a compile/link error.Recommendation: ⚠️ Request changes (minor)
Add the explanatory comment above, then this is ready to merge. The code changes themselves are correct and well-scoped.
btessiau
left a comment
There was a problem hiding this comment.
PR #324 Review -- Multi-Model Consensus Report
CI Status:
Models used: claude-opus-4.6 ×2, claude-sonnet-4.6, gemini-3-pro-preview, gpt-5.3-codex
✅ PATH prepend is correct
The [ -x "$HOME/.dotnet/dotnet" ] guard, timing (before first dotnet invocation), and process-local export are all sound. No issues found.
🟡 MODERATE -- ValidateXcodeVersion=false was unconditional with no comment (3/5 models flagged)
PolyPilot/relaunch.sh:33 -- The flag correctly silences minor Xcode version skew (the stated intent), but also silences major version incompatibilities. Since relaunch.sh kills the old app before launching the new build, a silently broken binary is more disruptive here than a clear build error.
Status: ✅ FIXED -- A 3-line comment block has been added documenting the tradeoff. All 5 models confirmed the fix in re-review.
Recommendation: ✅ Approve
All previous findings have been addressed. The code changes are correct and well-scoped.
Problem
relaunch.shfails on machines where:.NET 10 SDK is installed via
dotnet-install.sh— installs to~/.dotnet/, but the systemdotnetat/usr/local/share/dotnet/is an older version (e.g. 7.0). The script's baredotnet buildpicks the wrong one.Xcode is a minor version ahead of what the .NET MacCatalyst SDK expects (e.g. Xcode 26.3 vs expected 26.2), causing the build to fail with a version mismatch error.
Fix
~/.dotnetto PATH if~/.dotnet/dotnetexists. Conditional — no-op on machines with a single system-wide install.-p:ValidateXcodeVersion=falsetodotnet build. Apple ships Xcode updates faster than .NET SDK updates, so this mismatch is common.