Fix TestFlight DemoApp upload#70
Conversation
Declare iPad multitasking orientations in the demo app plist and unblock the Swift 6 demo build used to verify the processed bundle.
|
Warning Review limit reached
More reviews will be available in 51 minutes and 59 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughPublic types in the mentions module are updated to conform to ChangesSwift Concurrency and Platform Support
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
|
|
||
| /// Model for the composer's commands. | ||
| public struct ComposerCommand { | ||
| public struct ComposerCommand: Sendable { |
There was a problem hiding this comment.
Latest Xcode changes I forgot to fix in the demo app
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
DemoApp/Info.plist (1)
42-48:⚠️ Potential issue | 🟠 MajorAvoid blanket ATS bypass (
NSAllowsArbitraryLoads=true) in DemoApp/Info.plist
NSAllowsArbitraryLoads=truedisables App Transport Security for all domains; there are no hardcodedhttp://URLs inDemoApp/source/config (only the plist DTD doctype references).- If HTTP is only needed for local development, set
NSAllowsArbitraryLoadstofalseand keepNSAllowsLocalNetworking=true, or scope exceptions viaNSExceptionDomainsfor specific hosts.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@DemoApp/Info.plist` around lines 42 - 48, The Info.plist currently enables a blanket ATS bypass via the NSAppTransportSecurity > NSAllowsArbitraryLoads key; change NSAllowsArbitraryLoads to false (or remove it) and retain NSAllowsLocalNetworking as true for local dev, or instead add a scoped NSExceptionDomains dictionary with per-host exceptions for any specific HTTP hosts you need; update the NSAppTransportSecurity section to reflect NSAllowsArbitraryLoads=false and/or add NSExceptionDomains entries rather than leaving NSAllowsArbitraryLoads=true.Source: Coding guidelines
🧹 Nitpick comments (1)
DemoApp/FeedsView/Mentions/CommandsHandler.swift (1)
127-143: 💤 Low value
@unchecked Sendablewith UIImage is acceptable here but carries concurrency risk.
CommandDisplayInfouses@unchecked SendablebecauseUIImagedoes not conform toSendable. While UIImage is generally safe for read-only access across threads (all properties arelet), it's not fully thread-safe for all operations.This is acceptable for a demo app with likely static icon assets, but be aware that if UIImage instances are accessed concurrently for certain operations, undefined behavior could occur.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@DemoApp/FeedsView/Mentions/CommandsHandler.swift` around lines 127 - 143, CommandDisplayInfo currently marks the struct as `@unchecked` Sendable while storing a UIImage (icon), which is not Sendable; change the API to use a thread-safe representation instead of UIImage (e.g., store an asset identifier String like iconName or raw image Data/CGImage that is Sendable) and remove `@unchecked` Sendable; update the stored property (icon -> iconName or iconData), the initializer signature in CommandDisplayInfo, and any call sites that construct CommandDisplayInfo to pass the new thread-safe representation and resolve UIImage usage at the UI boundary only.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@DemoApp/Info.plist`:
- Around line 42-48: The Info.plist currently enables a blanket ATS bypass via
the NSAppTransportSecurity > NSAllowsArbitraryLoads key; change
NSAllowsArbitraryLoads to false (or remove it) and retain
NSAllowsLocalNetworking as true for local dev, or instead add a scoped
NSExceptionDomains dictionary with per-host exceptions for any specific HTTP
hosts you need; update the NSAppTransportSecurity section to reflect
NSAllowsArbitraryLoads=false and/or add NSExceptionDomains entries rather than
leaving NSAllowsArbitraryLoads=true.
---
Nitpick comments:
In `@DemoApp/FeedsView/Mentions/CommandsHandler.swift`:
- Around line 127-143: CommandDisplayInfo currently marks the struct as
`@unchecked` Sendable while storing a UIImage (icon), which is not Sendable;
change the API to use a thread-safe representation instead of UIImage (e.g.,
store an asset identifier String like iconName or raw image Data/CGImage that is
Sendable) and remove `@unchecked` Sendable; update the stored property (icon ->
iconName or iconData), the initializer signature in CommandDisplayInfo, and any
call sites that construct CommandDisplayInfo to pass the new thread-safe
representation and resolve UIImage usage at the UI boundary only.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 8f39ba5f-b33d-411f-a4bd-033e15481709
📒 Files selected for processing (3)
DemoApp/FeedsView/Mentions/CommandsHandler.swiftDemoApp/FeedsView/Mentions/TypingSuggester.swiftDemoApp/Info.plist
Summary
Linear: https://linear.app/stream/issue/IOS-1752
Summary by CodeRabbit