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.
Heya,
In Xcode26 there were ~150 warnings about Swift 6, Sendables, etc. The quick fix appeared to be tagging imports with @preconcurrency, but since I have access to this LLM, I had it resolve the warnings without resorting to deferral tactics.
Hopefully this saves a bunch of manual effort! I tested basic functionality after these changes and all seems well. Below is what Claude reckons. Claude can lie/be lazy tho, so don't trust everything it says...
Swift 6 Strict Concurrency Compliance
This PR updates the Awful.app codebase to fully comply with Swift 6's strict concurrency checking,
eliminating all concurrency-related warnings without using @preconcurrency workarounds.
Overview
Swift 6 introduces stricter concurrency checking to ensure thread safety and prevent data races. This PR
addresses all concurrency warnings by properly handling data that crosses concurrency boundaries,
particularly focusing on Core Data objects and non-Sendable types from the AwfulScraping module.
Key Changes
Sendable Conformance
concurrency boundaries
Core Data Object Handling
AwfulScraping Module Integration
non-Sendable types
ForumsClient Refactoring
Approach
The solution follows these principles:
Testing
All changes have been validated to:
This PR ensures the codebase is ready for Swift 6 while maintaining thread safety and preventing potential
data races.