Releases
1.0.126
Compare
Sorry, something went wrong.
No results found
Changelog
Document the 2026-09-10 second-pass review and the new file layout
Split BookImportService and ReaderView into focused files
Drop the redundant importedAt ordering of books; collapse the sort ladder
Remove write-only parsing output and redundant init boilerplate
Merge the create/no-create AppStorage directory pairs into a create: flag
Drop the unreachable LocalUploadServerError.invalidPort
Collapse duplicate Locator builders and remote-command target fields
Stop leaking staged covers on refresh; gate on manifest presence, not a decode
Back up state.json once when undecodable records are dropped on load
Let cancellation pass through EPUBArchive.data(for:)
Keep user-chosen reading backgrounds on foreground; controller owns auto-lock
Reject an upload filename that sanitises to nothing
Release the upload import task on stop() and identity-guard its cleanup
Invalidate the sort cache only when a book's sort fields change
Implement CODE_REVIEW.md batch 4: remaining MEDIUM bugs
Implement CODE_REVIEW.md batch 3: ablation dedup
Implement CODE_REVIEW.md batch 2: upload-server hardening
Implement CODE_REVIEW.md batch 1: correctness MEDIUM fixes
Implement CODE_REVIEW.md first pass: HIGH bug fixes + ablation
Harden stored paths and overlay generation
Bump marketing version to 1.0.31
Correct the docs where they no longer match the code
Collapse repeated clip, position, and cover-cleanup shapes
Give bookmarks and history one shared saved-position shape
Decode audio-session notifications before the main-actor hop
Add Settings row to email a suggestion to the author
Stop recomputing bookmark/history sorts and active-chapter lookup in body
Stop Settings observing DebugLog continuously
Age-gate the partial-import sweep so it cannot delete a live import
Silence audio when a playback transition fails
Base resume-point clearing on observable state, not reload timing
Stop refresh wiping the library when the books directory vanishes
Cap decompressed EPUB size and bound upload resource use
Pin XML entity-resolution policy for untrusted EPUB documents
Bound the debug log file so it cannot fill the device
Add in-app debug log with copy-to-clipboard for highlight diagnostics
Ignore off-target taps instead of jumping to chapter start
Record 'jumped from' breadcrumb and fix history clip mismatch
Fix retain-cycle leak, path traversal, and lifecycle/playback bugs
Scroll rewound highlight into view after background auto-rewind
Scroll chapters list to the current clip's chapter
Sync playback state on audio-session interruption
Remove temporary CI Address Sanitizer flag
Opt model types out of default main actor isolation
Run CI tests with Address Sanitizer
Run Book model tests on the main actor
Drain media-overlay preparation tasks in import tests
Tear down media-overlay playback synchronously in tests
Fix AVPlayer observer double-free crash in media-overlay tests
Deepen modules: Book behavior, playback policy, clip matcher, upload parsing
Fix auto-scroll skipping same-line next sentences
Defer pause work and add idle audio session deactivation
Harden auth comparison and improve error visibility
Improve playback concurrency safety and cancellation
Harden upload limits and async task cancellation
Preserve valid reading positions on reimport
Fix reader background turning black on app switch
Set segmented control tab font to 16pt
Remove unused SearchScreen.swift and stray 1.png
Use fixed small font for segmented control tabs
Fix auto-advance stuck at chapter boundaries
Keep audio playing when opening chapters/bookmarks screen
Add auto-recorded History tab to reader contents
Add chapter/bookmark tabs with clip-based bookmarks
Validate media-overlay cache to surface corrupt manifests as failed
Fix refresh leaving stale book records when all EPUB files are gone
Fix stale media-overlay start race and add upload password protection
Reorganize project into feature folders; replace chapter drawer with navigation list
Add reading background selection and in-reader typography dividers
Default upload server port to 8080 and bump version to 1.0.8
Make playing-clip highlight background-only to fix uneven underline
Document next-text-part descendant-skipping fix
Fix media-overlay auto-scroll on last clips of a page
Accept marketing version as positional arg in publish script
Fix tap-to-play resolving clip natively from tap point
Replace hand-rolled ZIP parser with ReadiumZIPFoundation; accessibility fixes
Performance, correctness and reliability improvements
Harden state persistence and book refresh against corrupt data
Declare exempt encryption usage
Add background playback lock screen controls
Fix restored media overlay highlighting
Remove alpha channels from screenshots
Fix upload replacement and state persistence
update screenshots
Restrict app target to iPhone
Add GitHub Pages privacy policy
Update Xcode project build settings
Simplify books view and app state persistence
Simplify import updates and isolate test storage
Add sorting options to the Books tab
Update project context repository URL
Fix TestFlight export rsync path
Default new installs to Literata font
Fix unsigned IPA release asset path
Update release scripts for EPUB Player distribution
Update skip interval setting to match list-based reader options
Complete EPUBPlayer rename and restore tests
Rename app to EPUB Player and streamline reader settings
Prepare Xcode project for the seedds app identity
Fix cross-chapter read-aloud highlight timing
Add read-aloud highlight diagnostics
Fix initial read-aloud highlight lag
Implement code review recommendations
Details
You can’t perform that action at this time.