Repository navigation
Releases: seedds/EPUB_Player
Releases · seedds/EPUB_Player
Release list
1.0.129
Changelog
- Bump marketing version to 1.0.39
- Make the TestFlight script safe to retry
Details
- Compare: 1.0.128...1.0.129
- Commit: cf9359f
1.0.128
Changelog
- Highlight the sentence around the spoken word
Details
- Compare: 1.0.127...1.0.128
- Commit: fd12608
1.0.127
Changelog
- Document the 2026-10-02 third-pass review and the decoration workaround
- Stop the read-aloud highlight doubling after a fresh chapter load
- Trim the debug log to half its cap on rotation
- Resolve book paths without recreating the Books directory
- Reset import state when the upload server stops mid-import
Details
- Compare: 1.0.126...1.0.127
- Commit: fef4843
1.0.126
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
- Compare: 1.0.124...1.0.126
- Commit: 80ee480
1.0.125
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
Details
- Compare: 1.0.124...1.0.125
- Commit: d077ecd
1.0.124
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
Details
- Compare: 1.0.123...1.0.124
- Commit: 27e9b70
1.0.123
Changelog
- Implement CODE_REVIEW.md batch 4: remaining MEDIUM bugs
Details
- Compare: 1.0.122...1.0.123
- Commit: 7c5395f
1.0.122
Changelog
- Implement CODE_REVIEW.md batch 3: ablation dedup
- Implement CODE_REVIEW.md batch 2: upload-server hardening
Details
- Compare: 1.0.121...1.0.122
- Commit: 9ba89b7
1.0.121
Changelog
- Implement CODE_REVIEW.md batch 1: correctness MEDIUM fixes
Details
- Compare: 1.0.120...1.0.121
- Commit: a2cf143
1.0.120
Changelog
- Implement CODE_REVIEW.md first pass: HIGH bug fixes + ablation
Details
- Compare: 1.0.119...1.0.120
- Commit: d96b37b