v0.5.3 is here and packed full of a collection of random features I wanted to build out for Kavita. I usually plan out the next few releases and stick to that schedule, adding in features that I want or users suggest randomly, but this time I wanted to sit down and take a release for myself to work on whatever I felt like, rather than what I had planned and it turned out to be really fun and some great additions came from it.
Let's start with what the discord community is abuzz about and that's the fated book reader refresh. Started last release but pushed due to complexity was a big refresh to the UX around the book reader and bringing one of our most up-voted feature request, calibre-like reading. Not only did we bring this reading mode to Kavita's reader, we also brought along new color themes for the reader for our OLED users, a font for Dyslexic users, and immersive mode, which hides the menuing system and lets you focus just on your book (goes great with column layout). It's been great iterating on the book reader since it was first built. I can't wait to see how it evolves and is polished further in later releases.
Next is my personal favorite and another coming from feature request, Series relations. Isn't it really annoying reading a series and not knowing what the next series is or what spin-offs exist? Well, now you can configure this into Kavita. From any series you can configure relationship links to other series, like sequels, prequels, spin off, side story, alternative version, etc. There are many links to choose from. You can see a little teaser of it below. Jump on our wiki to learn more about the feature.
Another killer addition is a big update to our search. You spoke and I heard you, you can now search for individual titles (book or manga/comics) and for individual files in addition to series, genres, people, tags, reading lists, libraries, collections, etc. This was tricky to implement and still retain the non-functional requirement of everything responding under 300ms. There should be no issues with you finding things in your server.
Wrapping it up is a few small but powerful ones. Likely you've seen it a few times in your logs, but the old constraint issue. I finally was able to track it down and squash it for good. It ended up being an index in the database that wasn't actually being used. Another one is the extra white space on the right side of the card grid system. Robbie was able to drive a beautiful solution and it works just as I envisioned. Lastly, On Deck was tweaked yet again to try to achieve a good balance of how I want it vs how I can actually code it and we have found a good compromise that works.
As usual, the release is packed with many things, so read through the changelog. To close off, I want to say thank you for all the support and suggestions to help shape Kavita. I have a lot of ideas that I want to see realized and really appreciate the inputs that have helped us build out Kavita.
Note: Kavita releases will slow down for a while as I have taken a new job. I am still committed to bringing my vision of Kavita to life, so don't worry about this project dying. I use Kavita daily.
Added
- Added: Users can now start reading from any chapter within a Reading List
- Added: Reading lists now have Cover images like Collection tags (https://feats.kavitareader.com/posts/89/adding-cover-images-to-reading-lists)
- Added: Added ability to filter series on a collection page
- Added: Library detail, all series, and collection page filtering will now persist in the url. This allows you to make a filter, click a series and hit back in browser to load the screen as it was, on the same page with the same filter as previously.
- Added: Card's progress bars will now automatically reflect a users' reading status in real time as a user is reading in real time without refreshing
- Added: Added a new Sort by field on filtering, Last Chapter Added, to help users sort in a way that mimics On Deck
- Added: Edit Series modal information tab will now show Last Chapter Added and Last Read Progress
- Added: Added a link to the wiki for stat collection to help users understand exactly what we collect on the setting field
- Added: GIF image types are now supported
- Added: Bookmarks are now moved out of user settings and are their own page on side nav.
- Added: Bookmarks can now be read by clicking on the series they are from, which will open the manga reader for that set of bookmarks.
- Added: Users can now link series together via Edit Series modal. Linked series will show on Series detail page under the Related tab.
- Added: Kavita will now read and group based on the LocalizedSeries tag within ComicInfo. This is not an official tag, but an issue is raised on Anansi Project. This tag maps to Series LocalizedName field.
- Added: Library Detail now has 2 tabs: Library and Recommendation. Library is your library and recommendation is detailed below.
- Added: Library Detail Recommendation tab now has actual recommendations. A first pass, we now show (for the current library only): On Deck, Quick Reads (series that are not read, not ongoing, and are under 4k pages), Highly Rated (series rated by any user on the server with more than 4 stars, sorted by average star count), Rediscover (series that you're already read), and lastly More In (more in a given genre).
- Added: Users can now search directly for files within Kavita. Clicking on the file will open the respective series.
- Added: Users can now search against Chapters with TitleName set. TitleName is extracted from the Title field in ComicInfo or the book name from Epubs (i.e. if you search 'Stone' and have a series of Harry Potter, 'Harry Potter and the Sorcerer's Stone' will show up as it's the 2nd book in the series)
- Added: Added total pages to series info modal
- Added: When a file doesn't exist on disk but still in Kavita and the user tries to read it, throw an error and show it on the UI rather than just spin forever.
- Added: New book reader drawer design. Drawer has been redesigned to break up settings and table of content to reduce the amount of scrolling and to provide a cleaner UX.
- Added: Column layout (1 or 2 column) is now available in the book reader. This is a no-scroll solution which works best on e-ink readers.
- Added: New coloring themes for the book reader. Users can now choose between Dark (existing), Light (existing), or Black (new, all black)
- Added: Blacklist .qpkg folders and don't scan Recently-Snapshot or recycle folders.
- Added: New OpenDyslexic font for the book reader
- Added: You can now hide the action bar (top/bottom bar) in the book reader by using Interactive Mode. Interactive mode will automatically turn on tap to paginate and gives you a distraction free way to read. In order to show the drawer and top bar, you can tap in the document on a non-interactive element.
- Added: Added --bulk-selection-highlight-text-color and --bulk-selection-text-color for bulk selection bar.
- Added: Added --search-result-text-lite-color for search results accent (where library is shown)
Changed
- Changed: Aligned the edit collection tag modal to align with new tab design
- Changed: Small change in webtoon reader to try to avoid using max width on PC's
- Changed: (Performance) Removed some nested loops and avoided some list generation in scan loop
- Changed: When opening a pre-filtered page, the filter section won't automatically open. Instead, the filter icon will be green showing that a filter is in effect.
- Changed: Made some style changes in the manga reader to better center images in the reader on different reading modes
- Changed: When a special has a Title set in the metadata, on series detail page show that on the card rather than filename
- Changed: Increased Recently Updated to give back 30 series worth of additions while still hitting our Non-Functional performance requirements
- Changed: From dashboard, clicking any activity stream (carousel)'s title, will go to all series page with a custom filter to emulate the underlying stream.
- Changed: Tweaked the styles on image cover chooser
- Changed: Typeahead filters are now disabled when they can't be changed. For example, library page, you can't remove the library from the typeahead.
- Changed: Event widget can now scroll vertically if there are messages that go past the viewport height.
- Changed: When opening the side nav on mobile with metadata filter already open, collapse the filter.
- Changed: When on mobile viewports, when clicking an item from side nav, collapse it afterwards
- Changed: Updated vers-one/EpubReader library which will now allow for reading epubs with bad table of contents (missing items), something that a lot of users complained about.
- Changed: When an epub doesn't have a dc:date set with publication event type, default to the dc:date tag for publication date.
- Changed: Updated ComicInfo MA15+ to MA 15+ per Anansi Project (wrong info was documented originally)
- Changed: Enhanced cover image selection such that back_cover and back-cover will no longer be selected
- Changed: Large Scale modularization to cleanup our lazy loaded modules and implement prefetching lazy loaded modules. The app should load even faster now.
- Changed: Home page (dashboard) is now called libraries/ instead of library/
- Changed: Removed cleaning some edition tags from Series name, like Full Color Edition or Full Contact Edition.
- Changed: Adjusted some styling in the search results screen
- Changed: Search results are now limited to 15 in each category that is searched against.
- Changed: Wrote some extra messaging in the invite user flow to help users understand they can use fake emails or use the link generated after to setup an account for the user
- Changed: Updated the wording for 'Read in Incognito' as in was redundant
- Changed: Misc UX polishing throughout the app
- Changed: Moved tags to be closer to genre rather than between different people roles on series detail
- Changed: Optimized the query for On Deck to significantly reduce memory and time
- Changed: Adjusted the mime type for downloads to use application/x-cbz, etc for cbX type of files, rather than the archive mime type. This should help some OPDS readers, like Marvin3, handle downloads more correctly
- Changed: Added wiki documentation into invite user flow and register admin user to help users understand email isn't required and they can host their own service.
- Changed: Removed a - 1 hack in progress bars on cards as there used to be an off by one progress bug in Kavita many versions back.
- Changed: On deck now functions differently. The sorting will be based on reading progress then by last chapter added. Only series with reading progress in the past month are considered or series with some reading progress and last chapter added within the last week.
- Changed: All drawers have swapped out with a new design and functionality, including ability to click outside the drawer to collapse it.
- Changed: User preferences now uses normal range sliders instead of custom sliders
- Changed: Updated to .NET 6.0.4
- Changed: Book reader action bar (top/bottom bar) is now fixed height. The title will overflow and can be hovered or pressed on mobile to view the full title of the book you're reading
- Changed: Icon button names (settings, close, next/previous) are now removed in the book reader
- Changed: Continuous reading buttons (next/prev chapter) will now disable preemptively if there is no next or prev chapter in book reader
- Changed: The next page button will now show as the primary color to indicate to the user what the next forward page is in book reader
- Changed: Swapped out our grid implementation to allow us to have less whitespace on the right side of the page when laying out cards (Thanks @therobbiedavis for driving this)
- Changed: Docker health scan interval has been dropped from 300s to 30s.
Removed
- Removed: Removed Light and E-ink themes form Kavita. Less than 1% of users were using light or e-ink themes and the maintenance was high. These themes are offered on our wiki to be used as a custom theme.
Fixed
- Fixed: Finally fixed On Deck so that chapters show correctly when they are added on series that are fully read. This required a migration so it will only work on new series going forward.
- Fixed: Fixed a bug where sometimes series level metadata would pull from the wrong chapter when the first chapter starts with a float.
- Fixed: Fixed a bug where locked people fields on a series would be reset during a scan
- Fixed: Fixed a type on sending when collection tag cover images are updated, thus user's not seeing updates without refreshing
- Fixed: Fixed a bug where custom series, collection tag, and reading list covers weren't being removed on cleanup
- Fixed: Fixed a bug where when paging in manga reader, the scroll to top wasn't working due to changing where scrolling is done
- Fixed: Fixed a bug where clearing a typeahead externally wouldn't clear the x button
- Fixed: Fixed a bug in typeahead when a partial filter is in place then using keyboard to select options, the wrong option would be picked.
- Fixed: Fixed a bug in a re-usable pagination component which could trigger multiple page loads due to how pagination model updates occurred
- Fixed: Fixed a rare bug where an image could be cut off in some scaling modes in the manga reader.
- Fixed: Fixed a bug on getting publication status within a certain library which would fail due to how the query was written.
- Fixed: Fixed an issue where series with similar names would sometimes throw a constraint issue due to a custom DB index.
- Fixed: Fixed a bad parsing case for Series Name - Ch. 23.5 - Volume Extras
- Fixed: Fixed a bug stemming from the old db where duplicate issues could be added.
- Fixed: Fixed scroll to top not rendering or working due to the moving of scroll to body instead of window.
- Fixed: Fixed an issue in updating tags that could lead to a unique constraint
- Fixed: Fixed an issue with webtoon reader on initial load being completely black and broken
- Fixed: Fixed a bug where search bar when focused would expand just a bit too much
- Fixed: Fixed typing lag when interacting with a typeahead
- Fixed: Fixed some orientation and resize event handlers that weren't firing
- Fixed: Fixed a bug where filter drawer apply button was sometimes not reachable
- Fixed: Fixed a bad looking close button on the book reader
- Fixed: Fixed a bug where volumes that were a range would fail to generate series detail api response.
- Fixed: Fixed a bug where bulk selection in storyline tab wouldn't properly run the action on the correct chapters (if selecting from volume -> chapter).
- Fixed: Ensure the bottom action bar is at the bottom of the viewport on small pages that don't take up full height
- Fixed: Fixed a bug where pagination wasn't mutating url state
- Fixed: Fixed the invite user modal not continuing when email had a trailing space
- Fixed: Fixed some bugs around fields not being locked correctly from frontend
- Fixed: Removed the actions in the header on some pages where there were no actions to make at a page level, like collections
- Fixed: Fixed library detail page not having header actions hooked up
- Fixed: Split page was not centering the canvas in manga reader
Known Issues
- Firefox 100 has an issue with redirecting to the correct route when a user tries to load yoursite.com/ and will freeze up. This is a browser bug, you can use yoursite.com/login instead to avoid or use a different browser.
- Apple M1 chips are not supported for reading PDFs (if you host your server on a mac). The team is investigating a solution.