Repository navigation
ios: fix broken Release archive blocking all TestFlight builds - #6488
Conversation
…wView referenced unconditionally) rootContent referenced WorkspaceListLayoutPreviewView() directly, but that view is '#if canImport(UIKit) && DEBUG'-only (a simulator screenshot fixture). PR CI builds Debug (where it exists) so this passed review, but the TestFlight Release ARCHIVE fails with 'cannot find WorkspaceListLayoutPreviewView in scope' — which has been silently blocking EVERY TestFlight build since it landed (last successful upload 2026-06-18; the 6/19 nightly and a 6/20 dispatch both failed here). shouldShowWorkspaceListLayoutPreview is already false in Release, so the branch is dead there; gate the reference through a workspaceListLayoutPreview @ViewBuilder var that compiles to EmptyView in Release, mirroring the existing terminalLayoutPreview. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughIn ChangesConditional Preview Gating in CMUXMobileRootView
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 23✅ Passed checks (23 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The bug
CMUXMobileRootView.rootContentreferencesWorkspaceListLayoutPreviewView()directly, but that view is#if canImport(UIKit) && DEBUG-only (a simulator screenshot fixture). PR CI builds Debug (where the symbol exists), so this passed review — but the TestFlight Release archive fails:This has silently blocked every TestFlight build since it landed: last successful upload was 2026-06-18, and both the 2026-06-19 nightly and a 2026-06-20 dispatch failed here. (It's why the merged backspace fix and everything since hasn't reached beta.)
The fix
shouldShowWorkspaceListLayoutPreviewis alreadyfalsein Release, so the branch is dead code there. Route the reference through aworkspaceListLayoutPreview@ViewBuilderthat compiles toEmptyViewin Release — exactly mirroring the existingterminalLayoutPreview. One-file, no behavior change in Debug.Note
PR CI (Debug) can't catch this class of bug. A companion PR adds an on-iOS-change TestFlight (Release archive) lane so a broken Release archive surfaces immediately instead of silently stranding beta.
🤖 Generated with Claude Code
Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.Note
Low Risk
Compile-time gating only; Release behavior was already dead code via
shouldShowWorkspaceListLayoutPreview, with no production UI or auth changes.Overview
Fixes TestFlight Release archive failures caused by
rootContentreferencingWorkspaceListLayoutPreviewView()directly while that type exists only under#if DEBUG.Adds a
workspaceListLayoutPreview@ViewBuilder(same pattern asterminalLayoutPreview) so Release builds compile the branch toEmptyView, androotContentnow uses that helper instead of the raw type. Debug simulator screenshot fixtures are unchanged when the preview flags are on.Also updates
.github/swift-file-length-budget.tsvfor small line-count shifts inCMUXMobileRootView.swiftandBrowserAutomation.swift.Reviewed by Cursor Bugbot for commit 9695921. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by cubic
Fix iOS Release archive by gating the DEBUG-only
WorkspaceListLayoutPreviewViewbehind a@ViewBuilderthat compiles toEmptyViewin Release. This unblocks TestFlight uploads with no Debug behavior change.WorkspaceListLayoutPreviewViewthroughworkspaceListLayoutPreviewwith#if os(iOS) && DEBUG, mirroringterminalLayoutPreview.rootContentto use the gated view so Release no longer fails with “cannot find ... in scope”..github/swift-file-length-budget.tsvforCMUXMobileRootView.swiftto keep CI passing after adding the gate helper.Written for commit 9695921. Summary will update on new commits.
Summary by CodeRabbit