chore(toolkit): bump for lock-screen artwork off-main crash fix (e672637) [gated on toolkit #198]#1304
Merged
Merged
Conversation
🧪 Unit Test Results📊 View Full Interactive Report ❌ 1 TEST FAILED7874 tests | 7739 passed | 1 failed | 132 skipped | ⏱️ 12m 46s | 📊 98.3% | 📈 45.3% coverage Tests by Class — 902 classes, 1 with failures
Failed Tests (click to expand)📊 Testing Coverage BreakdownUnit Test Line Coverage (testable surfaces): 45.3% Total coverage incl. UI/lifecycle: 44.4% (17 files excluded from testable denominator — see
🔗 Interactive HTML Report | CI Run Details 📦 Downloadable Artifacts
|
…637) SURGICAL bump — develop's current toolkit pointer (358f8d3) + ONLY the 14-line artwork fix (no other toolkit-main delta), so this changes nothing but the crash fix. Fixes the toolkit half of the two 3.2.0 audiobook now-playing crashes: the toolkit's updateLockScreenCoverArtwork built a non-@sendable MPMediaItemArtwork request handler capturing the UIImage, which MediaPlayer destroys on its own background queue → block_destroy_helper EXC_BREAKPOINT (Crashlytics e672637). Mirrors the app-side NowPlayingCoordinator fix (#1218). Companion crash 4a92d371 (app-side updateNowPlayingInfo) is ALREADY fixed on develop by #1218 — this closes the remaining toolkit half. Toolkit fix: ThePalaceProject/ios-audiobooktoolkit surgical branch (cherry-picked onto develop's pointer). Toolkit main gets the same fix via #198. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mauricecarrier7
force-pushed
the
fix/audiobook-nowplaying-offmain
branch
from
July 20, 2026 13:54
2b4fa02 to
3700926
Compare
…70459) Toolkit PR #198 (lock-screen artwork off-main block-destroy crash fix, e672637) merged to ios-audiobooktoolkit main as 08f70459. Re-point the submodule from the pre-merge branch commit to the merged main SHA so the pin is reachable from toolkit main (reproducible), completing the gate this PR was blocked on. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mauricecarrier7
marked this pull request as ready for review
July 21, 2026 14:17
added 2 commits
July 21, 2026 10:45
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Draft — build-verification for the toolkit now-playing artwork crash fix
Closes the toolkit half of the two 3.2.0 audiobook now-playing crashes.
The two crashes, split
4a92d371updateNowPlayingInfoNowPlayingCoordinator)e672637block_destroy_helper.46AudiobookPlaybackModel)The toolkit's
updateLockScreenCoverArtworkhad the same un-hardenedMPMediaItemArtwork(boundsSize:) { _ in image }pattern the app fixed in #1218, but it was never applied toolkit-side. MediaPlayer builds/destroys that request handler off-main →block_destroy_helperEXC_BREAKPOINT. The toolkit fix marks the handler@Sendable+ captures an immutable local.Why this PR is a draft
mainSHA and mark ready.Verification
e672637on builds carrying the fix (the trap can't be reproduced on demand).🤖 Generated with Claude Code