Sprint 74: May 4 - 15, 2026
Accessibility
- Fixed an iOS v3.0.0 VoiceOver bug where users could not activate book entries or in-list action buttons in search, collections, My Books, and Holds
- Fixed Android FXL page turning when using keyboard controls
- Fixed the Escape key not dismissing the Android reader toolbar on Chromebook
Mobile App Releases (iOS & Android)
- Completed iOS 3.1.0 regression testing
- Completed Android release candidate testing for Firebase build 161769322, passing content, functionality, book details, eBook reader, audiobook player, audiobook playback time tracking, and academic test cases
- Continued the iOS crash-and-stability workstream from Sprint 73: fixed a DownloadWatchdog teardown race crash new in 3.0.0, an AudiobookLoader.finalizeBuild crash on Cantook DRM books, an LCP CRL decoding exception (Botan) that was escaping R2LCPClient, an Adobe RMSDK static-destructor crash when running Palace as an iPad app on Mac, a CarPlay crash on re-tap of an active audiobook, and a
try! abort in AccountDetailsURLTests producing false-positive Crashlytics fatals
- Investigated three Crashlytics / HelpSpot reports: TPPBookCoverRegistry.fetchCoverImage EXC_BREAKPOINT (077218fc), AudiobookLoader.finalizeBuild EXC_BREAKPOINT (7bf923ee), and an "unable to remove library from My account" report (HelpSpot 17777)
- Fixed iOS SAML/OIDC handling so an expired-token return surfaces the re-auth modal instead of an error alert, triggered SAML re-auth on audiobook OPEN failures, and resolved silent push-notification registration failures for SAML-stale patrons
- Made iOS audiobook chunk downloads resilient to transient network blips so playback no longer dies on the first dropped chunk
- Added an in-app "Reset Account" button on iOS for patron-self-service recovery from stuck states
- Excluded iOS caches from iCloud backup to reduce app backup footprint
- Added a download indicator for all audiobooks on iOS
- Updated the iOS book details screen metadata display
- Restored iOS error title and detail display when surfacing errors to the user
- Completed a design review of the prototype audiobook playback speed controls on iOS
- Bundled a registry snapshot into the Android build and added incremental registry refresh via
order=modified with early stop, reducing cold-start time and ongoing registry load
- Audited and inventoried all places in the Android app that still refer to OPDS 1.2 ahead of the OPDS 2 transition