Repository navigation
Fix iOS screenshots job: make the cmux-ios test targets compile - #12867
austinywang wants to merge 3 commits into
Conversation
…ueTests GhosttySurfaceWorkQueueTests.swift is the only file in CmuxMobileTerminalTests that never imports CmuxMobileTerminal, so the internal GhosttySurfaceWorkQueue class is out of scope and the cmux-ios scheme's test build fails with "cannot find 'GhosttySurfaceWorkQueue' in scope". That build failure is what has made the release workflow's iOS App Store screenshots job fail since the file was added in 90bdd12. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Capture-only verification run on this branch ( |
|
All contributors have signed the CLA ✍️ ✅ |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe tests update work queue synchronization and make intermediate test values explicit in pairing QR and WhatsNew replay tests. Assertions and expected behavior remain unchanged. ChangesTest maintenance
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~3 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The changes only update test synchronization and setup evaluation without affecting product behavior. 🚥 Pre-merge checks | ✅ 24 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (24 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 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 |
With the module imported the file reaches Swift 6 checking, which rejects mutating the captured `var order` inside the @sendable closures handed to GhosttySurfaceWorkQueue ("mutation of captured var 'order' in concurrently-executing code"), NSLock or not. Hold the recorded order in an OSAllocatedUnfairLock<[String]>, the primitive this package already uses for shared state, so the closures capture a Sendable `let`. Assertions unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Second capture-only verification run, at |
Swift rejects a macro expanded inside its own arguments: "recursive expansion of macro 'require(_:_:sourceLocation:)'". MobileWhatsNewReplayTests (from #12316) is the next failure in the cmux-ios scheme test build once GhosttySurfaceWorkQueueTests compiles. A tokenizer-based scan of all 881 iOS and shared test files found one more site of the same shape in CmxPairingQRBitmapTests. Bind each inner #require to a local first. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Third capture-only verification run, at |
|
Verification run 3 is green at |
|
Fleet instruction update for head |
|
Automatic catch-up: I tried to catch this branch up with
Nothing was pushed. Merge Automatic catch-up will not try this head again; a new push or |
The release workflow's "Generate iOS App Store screenshots" job has failed on v0.64.24 (https://github.com/manaflow-ai/cmux/actions/runs/35016899628) and v0.64.25 (https://github.com/manaflow-ai/cmux/actions/runs/35225939389), which marks the whole release run red even though the macOS release publishes. fastlane builds the
cmux-iosscheme's tests before capturing, and that build has been broken. xcodebuild stops at the first failing batch, so each fix exposed the next error:GhosttySurfaceWorkQueueTests.swift(added in 90bdd12) never imported its module:cannot find 'GhosttySurfaceWorkQueue' in scope. Added the@testable import CmuxMobileTerminalits neighbors use.mutation of captured var 'order' in concurrently-executing codeat eight sites (run https://github.com/manaflow-ai/cmux/actions/runs/35231375264). The recorded order now lives in anOSAllocatedUnfairLock<[String]>, the primitive this package already uses, captured as alet. Assertions unchanged.MobileWhatsNewReplayTests.swift(from Require explicit opt-in for iOS pairing #12316):recursive expansion of macro 'require', a#requirenested in a#require(run https://github.com/manaflow-ai/cmux/actions/runs/35232344070). Hoisted the inner calls into locals. A tokenizer-based scan of all 881 iOS and shared test files for same-macro nesting found one more site,CmxPairingQRBitmapTests.swift, fixed the same way. The same scan confirmedGhosttySurfaceWorkQueueTests.swiftwas the only test file importing no module under test.Root cause of the pile-up: nothing compiles the
cmux-iosscheme's test targets at PR time.test-ios.ymlisworkflow_dispatchonly and runsswift teston the host, which cannot build the UIKit-dependent targets, so the release-time screenshots job is the only compiler and its failure has been ignored. A PR-timebuild-for-testingof that scheme onPackages/iOS/**,Packages/Shared/**, andios/**changes would close it; not included here.Verification is a capture-only dispatch of
ios-screenshots.ymlon this branch (upload=false,en-USonly); run links are in the comments. Test-only, no UI change, so no HIG page applies.🤖 Generated with Claude Code
Summary by CodeRabbit