Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Kareadita/Kavita

v0.8.8.3 - OIDC and OPDS Hotfix

23 Oct 12:31

Choose a tag to compare

Looks like there were a few issues with OIDC and a bug in OPDS Pagination that didn't surface during testing. If you want to help us avoid hotfixes, join our nightly program and expand our testing capability. See you in v0.8.9.

Changed

  • Changed: Kavita will now filter out unsupported scopes before requesting them from your OIDC provider
  • Changed: OIDC providers are now required to use tls (https)

Fixed

  • Fixed: Fixed a bug where announcements with images would scale weird
  • Fixed: Fixed some OPDS feeds not including next markers (pagination) for certain total sizes.
  • Fixed: Fixed OIDC not working when a custom base URL is set
  • Fixed: Fixed admin users having age restrictions applied when created with default permissions via OIDC
  • Fixed: Fixed not being able to set default age restriction to Not Applicable once changed
  • Fixed: Fixed a race condition when changing both metadata and cover image of an entity, where one of the changes could be lost
  • Fixed: Fixed OPDS not working correctly when a base URL is set

v0.8.8 - Epub Reader Overhaul, an Annotation System and OIDC!

20 Oct 11:26

Choose a tag to compare

This is a massive release that Amelia and I have been working on for the past 3 months non-stop. If you recall from the last release notes, I said I wanted to focus on Feature Requests and so we picked up a few of the most popular requests: OIDC (170+ upvotes), Custom fonts for Epub reader (25+ upvotes), and Highlight/Annotation system (40+ upvotes). This is a feature packed release, so buckle up.

Epub Reader Refresh

First off, let's start with the new Epub reader. When tackling Annotations, we took the opportunity to refresh the UX and the underlying codebase, since it has been 5 years from when I originally wrote it. While tackling a new UI, I thought to also tackle some long standing, hard to reproduce issues, like text bleeding. Text bleeding ended up eating 3 weeks of pure madness as Amelia and I tried to fix (or just reproduce reliably), until we opened a bug bounty and @privatestefans fixed it. Even with all the pain, we brought some requested features around bookmarking images in the reader as well.

Epub Fonts

image

This has been a constant ask from many users and we finally got it out. From the font management screen, any user can download fonts to use within their books. Either upload a font file or better, copy/paste a Google Fonts url. Fonts can then be assigned to books via reading profiles.

OIDC

login screen with OIDC enable

some of the OIDC configuration options

This release introduces one of our most requested features to date: OpenID Connect (OIDC/SSO) integration. Server admins can now configure OIDC to work alongside or fully replace Kavita’s native authentication system. The setup is designed to be straightforward to get it up and running quickly, while still offering advanced configuration options for those who need more control.

Admins can choose to enable automatic account creation, allowing users to join the server without manual intervention. When active, newly created accounts inherit the configured default roles and age restrictions. For more fine-grained control, role syncing can be enabledβ€”bypassing defaults in favor of permissions defined by the identity provider, so you can manage all user access centrally.

Read all about it on the wiki.

The Annotation System

edit-annotation-drawer annotation-drawer

Users have been asking for the ability to highlight text and add notes when they read and have expressed a strong need for a software in the self-hosting community to tackle this need. Since the start of the epub reader 5 years ago, I wanted this system (and even solved the implementation), but never had time to tackle it.

The annotation system is currently implemented for the epub reader and it will be for the foreseeable future. It offers a way to highlight any passage of text and to write a comment about that with rich text (bold, underline, lists, images, etc). You can see any annotation within the reader to jump around, you can view from the series page or the new All Annotations view (accessible from the user menu in the top right).

Annotations have an owner, a marker if there are spoilers in the comment, and a highlight slot. There are a fixed 5 highlight slots with predefined colors, but you can change them at any time. Since annotations are bound to the slot number, you can change the color system and all annotations will get that update.

Kavita also added some social aspects that are opt-in. You can opt-in to share your reviews with users on the server (with some extra restrictions on libraries and age ratings) and also opt-in to seeing other users' annotations. If you do opt-in to viewing, you can also upvote ones you agree with. Filtering and Sorting against these fields are planned for v0.8.8, due to a dependency on a feature in .NET 10.

Lastly, Annotations can be exported (either everything or a filtered set of Annotations) in JSON format. I took inspiration from other Obsidian plugins. While I am not going to write an Obsidian importer myself, if someone does, I'm open to working with you to get the best experience.

OPDS Love

OPDS has gotten a lot of polish and love from me this release. I had originally dived in to finally polish the Koreader sync experience, but caught swept up in polishing the experience, along with a few FRs from users that I think has brought a lot of UX to Kavita's implementation. First, pagination across the board. Not all apps support this unfortunately, which is where our next item shines: Continue From. This new item will be first and foremost if you have any reading progress in the feed. It is a shortcut to avoiding having to scroll hundreds of items. Kavita now also encoded progress icons into the titles to make it easier (since clients are also very loose with supporting metadata).

What's Next

This release was quite challenging with the epub reader overhaul, but extremely satisfying polish and fix many outstanding issues. I can't wait to hear the feedback on the new annotation system. I want to extend a huge thanks again to our nightly testers and those that provided feedback for the annotation system (and OIDC support).

Next release I want to continue with my original plan of tackling more of Kavita+ and it's integration in Kavita, along with the backend switching to MangaBaka, focusing on a new Progress system to allow for richer stats, and a few more Feature Requests that didn't make it this release.

Added

  • Added: Added OIDC Authentication support. Users can now log in with OIDC providers (Auth0, Keycloak, etc). Admins can set up default user profiles for OIDC-based accounts. (Thanks @Fesaa for tackling this)
  • Added: Added automatic account creation when logging in via OIDC.
  • Added: Allow admins to delegate user management to OIDC (Sync libraries, age restrictions, etc with OIDC roles)
  • Added support for requesting custom scopes from your OIDC provider
  • Added: Added the recent 'Enable Metadata' Library setting to KavitaStats reporting.
  • Added: Ability to export and import Metadata Settings
  • Added: Brought the manage metadata settings from Kavita+ exclusively to all of Kavita and thus the ability to have it work against file/api-based metadata. This allows for custom rules on how metadata is processed from file-based metadata (FR #3862, 1 upvote)
  • Added: Manga library type now supports Tome keywords for filename parsing
  • Added: Added a new library setting to remove common sort prefixes (The, A, An) from Sort titles. Disabled by default (FR #3037, 25 upvotes)
  • Added: Added the ability to upload your own fonts to Kavita and have any user use them in epub books. Admins can force delete. Read only users cannot add or remove. Google font urls and woff2/woff/tff/otf files are supported. (Closes FR #2550, ~40 upvotes)
  • Added: New user preference to enable/disable colorscapes. Will override theme settings when disabled.
  • Added: (OPDS) All feeds from OPDS now support pagination
  • Added: Added support for pagination in the Recently updated endpoint (OPDS and normal)
  • Added: (Epub Reader) Kavita's menu will now show progress and estimated time left to complete the book
  • Added: (Epub Reader) Added the ability to highlight text and add an annotation with rich text support.
  • Added: (Epub Reader) Added the ability to bookmark images. You can view and jump between bookmarked images within the reader or view them in the bookmark reader.
  • Added: Added the ability to create annotations around book text with rich text support.
  • Added: Added a basic search for annotation hook.
  • Added: Added the ability to export annotations into json format.
  • Added: Added a browse annotation page (from user menu) with filtering and sorting. Can export a filtered view or all annotations. Can also bulk delete.
  • Added: Added a file size filtering option for Series
  • Added: (Kavita+) Added the ability to resend the license/welcome email to your email from Kavita.
  • Added: Added social preferences to allow users to decide what, where, and when to share and view annotations and reviews
  • Added: Added the ability for users to like other users annotations (assuming appropriate opt-in settings)
  • Added: Total file size below series/volume/chapter title on the detail pages
  • Added: Added Folder path in the series details tab if you're an admin
  • Added: New user preference called Data Saver. Currently only disables prefetching on the PDF reader.

Changed

  • Changed: Cache Kavita locale as to not require the expensive operation
  • Changed: Auto disable double page mode on small screens in the epub reader
  • Changed: Blacklist and whitelist, age rating, and field mappings are now available without Kavita+
  • Changed: Blacklist and whitelist, age rating, and field mappings will now act on metadata data in your ComicInfo (Will require a scan) and via the API
  • Changed: Show a validation error in the UI for Edit Person - ASIN field, as it wasn't clear that a valid ISBN 10/13 code must be used
  • Changed: Don't allow users to save edit library modal without having at least one file type selected.
  • Changed: Optimized and cleaned up the PDF Met...
Read more

v0.8.7 - Comic Metadata Downloading, Reading Profiles, Browse by Genre and More

05 Jul 20:08

Choose a tag to compare

This was supposed to be Scanner Improvements, but due to my 2 week holiday in the middle, then getting massively distracted when I got back, we ended up with some nice features instead. This release is feature packed with a ton of Feature Requests: Comic Metadata for Kavita+, Reading Profiles, Expanded Browse by support, Koreader Sync Support, Ability to disable metadata parsing (for those that want the old pdf parser), a revamped Mihon extension, and much more!

Before we get started, I first want to announce that @Fesaa has officially joined the Kavita team. She has been a strong and continuous contributor for the last few months, she's also is behind one of the most requested FRs (Reading Profiles). Really excited to continue our work together to make Kavita the best software out there.

Comic Metadata (Kavita+)

438843284-0fac5031-db71-48c6-9bde-0eaae1a2fb1c
Can you believe everything you see is issue metadata from Kavita+? In this release, I have expanded the metadata downloading functionality to Comics. You get Publisher, Imprint, People roles, Issue-level Reviews (Critic and User), Release Date, Cover Image, Issue Title, Average Rating, and summary. This metadata applies at the series and issue level. Data comes from Comic Book Roundup.

Kavtia+ Comic data also has weekly release data, which is a nice added bonus. I am currently exploring if metadata around TPBs is useful. If you think it is, please create/upvote a FR and provide discussion to validate the work. I look forward to hearing if the Comic metadata is bringing value to you.

Browse (and filter) People/Genre/Tags

455074614-d22a39a1-f92e-443b-aa58-27968d8ccf7a

455074644-6c1d2cfa-d92c-40aa-b77b-36a442b3457b

In this release, I've also expanded the metadata system to People and provided what I thought was valuable items. Surprisingly, this took me about 40 hours to do, but now, the metadata system can work on any entity, so my plans for an issue/chapter page seem more feasible. In addition to this, you can now browse by Genre/Tags. Do note, anything with 0 series will not be further filterable by as there is no issue listing page yet. (You can reach the browse genre/tag screens from your user menu in top right of screen)

Reading Profiles

452782185-0fe8ac41-ecd5-42ef-aabf-2b5b49c09ab2

This is a massive feature delivering on a highly request Feature Request (100 upvotes). I want to thank Amelia for implementing it while I was on my holiday.

Reading Profiles capture your reader settings (image, pdf, epub) into an entity that can be found to a set of Libraries and Series. With the new system, you can bind a reading profile to a library (say double page to your comic library). Now, whenever you read in that library, the double page reader will be applied. Likewise, you can bind a Reading Profile to a Series as well.

In addition, there are Implicit profiles. These aren't visual in the UI, but instead capture any changes that are made mid-reading session. Going forward, any changes made during reading will persist between reading sessions for that series itself. From the readers, you can 'promote' the implicit profile into a manageable (shows in the manage screen). You can also optionally skip the implicit and save to the parent profile (aka the series/library bound profile).

The wiki has a great overview on how the new system works. See here.

An Updated Mihon Extension

Our Mihon extension has been updated. The original plugin was written by @ThePromidius, but hasn't been active for some time. @dear-clouds took it upon themselves to update the extension and bring some much needed polish. Here is a bit of a sneak peak to the changes, this is not an extensive list of changes. There is more to come, drop by the discord to share feedback.

Mihon compatible

  • Introduced a new filter: Special Lists β€” view your Want to Read or Reading lists.
  • Custom Detail Page for Reading Lists
  • Option to automatically update the cover to match the latest volume.

Fork Only

  • [Komikku] Suggestions display all related titles first.
  • [Komikku] Reading List suggestions now show all the list's items first.
  • Options to use GroupTags with multiple categories when available: Type (Library name) ; Demographic ; Genres ; Tags (works only on Forks that support this)

image

Koreader Sync Support

We finally were able to get the Koreader Sync Support PR merged. A huge shoutout to the developers and testers that helped get this ready for Stable. This is enabled by default and currently works on epubs (if you need archives, raise a FR). You can read up about this feature on the wiki.

The Misc Stuff

There were a ton of smaller changes that I wanted to make sure I call out.

  1. Actionables across the app are now smarter. Instead of showing add and remove from collection, it will check the status and only present options that are applicable.
  2. Libraries by default will not import collections/reading lists from ComicInfo (Manage Collections/Reading Lists). Many support issues arose and since most of the community recommends using the CBL project, it makes sense to make this opt-in.
  3. There was a lot of bugfixing and polish around Kavita+ this release. Hopefully most issues plaguing users are solved.
  4. Again, if you want to get to the browse genre/tag screens, you can get to it here:

image

With all that said, next release we are not working on the Scanner improvements. Instead, we have decided to take inspiration from this release and focus primarily on Feature Requests and take another look at how Kavita+ integrates into Kavita along with switching to MangaBaka as a data source for metadata.

Added

  • Added: Users can now use the shortcut Ctrl+K to open the search window
  • Added: Users can now add ratings and reviews at a per-issue/chapter level. For Volumes that are 1 file (books), any rating/review will transfer to the underlying chapter and be seemless). Book and Comic users are the primary audience.
  • Added: Kavita+ can now download ratings and reviews for individual comic issues (CBR). Ratings and Reviews for Comics come in Critic and User reviews and will show appropriately in the UI.
  • Added: (Kavita+) Kavita can now download series and issue metadata from ComicBookRoundup. New settings for each Chapter-level item.
  • Added: (Kavita+) New ratings from ComicBookRoundup on Series Detail page
  • Added: Added the ability to browse all Genres and Tags in the Server (FR #3173, 5 votes)
  • Added: Updated Matched Metadata to have a library type filter, given that a user might want to do just Comics or Manga at a time.
  • Added: Added a page to browse all Genres/Tags. Currently accessible from user menu until I find a good linking location.
  • Added: Added the ability to perform metadata filtering on Browse People (prev Browse Authors) page. Can filter by Role, Name, Series Count, and Chapter Count. Can Sort on Role, Name, Series Count, and Chapter Count.
  • Added: Added the ability to have custom Reading Profiles and bind them per Library or Series. (FR #2537, 102 votes) (Thanks @Fesaa for delivering this beast)
  • Added: Added an implicit Reading Profile system so changes made during a reading session will persist reloads but not affect the bound Reading Profile.
  • Added: Added a setting to disable the width override when reaching specific breakpoints (uses the new theme variables)
  • Added: (Kavita+) Scrobbling items can now be deleted in case you accidentally created one
  • Added: Added a new library setting to disable metadata parsing. This setting, when off, will ensure Kavita only uses filename parsing. (FR #3695, 4 votes)
  • Added: Added the ability for Kavita and Koreader to sync progress (Thanks @tgkenney for driving it home and @MFDeAngelo for doing 80% of the feature).

Changed

  • Changed: Reading lists will now only show one of promote & unpromote
  • Changed: Removed the opacity from tooltips
  • Changed: Go to Page prompts on book/manga reader now use a custom styled window
  • Changed: The ToC in the EPUB reader will now mark a chapter as current until the next chapter is reached
  • Changed: The reset password form will now be disabled if you do not have permissions to change your password
  • Changed: Collections will now only show one of promote & unpromote
  • Changed: Reading lists will now only show one of promote & unpromote
  • Changed: Actionables are more context aware. For example, a fully read Series wont show Mark as Read in the actionable. Does not yet apply to Add To submenu.
  • Changed: Slight changes to the UX around promoted Reading lists and Collections on the detail pages
  • Changed: (Security) Ensure the remote IP address is correct when behind a Reverse Proxy for Security log
  • Changed: Updated dependencies
  • Changed: On first startup (non-docker), rename appsettings-init -> appsettings to avoid users overwriting their appsettings.json (FR #3678, 2 votes)
  • Changed: (Kavita+) Ensure all people metadata from Kavita+ are trimmed of spaces
  • Changed: (Kavita+) Switched to a more optimized and better mechanism to choose a 'better' image to avoid switching to a lower res image from Kavita+
  • Changed: Optim...
Read more

v0.8.6.2 - General Settings Hotfix

20 Apr 16:55

Choose a tag to compare

One more super small hotfix for an issue where some users were unable to update General Settings due to IP Address not being correctly set on Startup. Thanks to those on the Github Issue that joined discord. It was not easy to reproduce.

This will be the last hotfix.

Fixed

  • Fixed: Finally fixed a bug where when IP Address was empty (default), the General settings changes would not save
  • Fixed: IP Address will now show the default value when empty.

v0.8.6.1 - A few small issues Hotfix

18 Apr 12:30

Choose a tag to compare

A few bugs slipped through, major thanks to Amelia for driving them home.

Fixed

  • Fixed: Fixed a bug where Docker users could see the download button on change log component.
  • Fixed: Fixed settings not saving when using a docker install
  • Fixed: Fixed not being able to delete volumes from the series detail view in bulk
  • Fixed: Fixed UI visually not removing volumes in series detail view when they're deleted
  • Fixed: Fixed some volumes having empty title hovers
  • Fixed: Fixed Reading List with some medium sized lists getting stuck in the infinite scroller

v0.8.6 - Spring Cleaning

14 Apr 22:09
45122f7

Choose a tag to compare

v0.8.6 is here and it's only fair to call this the Spring-Cleaning release as over the past 3 weeks, Amelia (@Fesaa) and I have closed out 65 issues from Github and polished a ton of the app. This release is packed with a lot of OLD issues finally being tackled and a few of them are quite annoying, so let's get started with the breakdown.

First, let's talk about the few enhancements that made it into the release. One of these enhancements was around Smart Filters and removing them from your customize list or renaming them. Both are features that weren't thought about in the initial implementation and just kept slipping through the cracks. Amelia took it upon herself to not only implement but also add some drag and drop reordering on the side nav for those that don't want to go into customize screen.

Another nice enhancement is around Media Errors. I implemented Media Errors after being inspired by Komga feature, but never gave it much more thought after that. You know what's annoying? Having 300 media errors that aren't actually reflective of the state of your media. The original thought was manually clearing the alerts, but why can't Kavita just do most of those checks for you? So that's what this feature brings. Kavita will check if files were successfully imported with at least 1 page or 1 word and clear out the issue for you.

The last big enhancement is around Reading Lists. I'm not a huge reading list user, but the folks over in CBL project have been discussing some polish that is needed and raised a great Feature Request. Some of these were no-brainers, so I took a few days and implemented some much-needed polish and exposed more metadata around the reading list. My favorite is not being in edit mode by default. If you have ideas on how to make the Reading List experience better, please add your ideas to the Feature Request. I have already confirmed I will be doing a big overhaul once I have a good picture of the features user's want and need.

With the enhancements out of the way, let's focus on the meat of this release, the bugfixes and polish. I'll open with one I know many readers are going to enjoy--the webtoon reader finally tracks the last page read when using the continuous reader 100% of the time. The nightly users and I tested this by reading a combined 700 chapters (500 of those were just @duplaja, go figures). Shoutout to @reinar for providing some code that helped me get the needed fix.

Another major fix, with the help yet again of Amelia, is the localization fix. Non-English locales have been having issues with Kavita for the last few releases and due to me not being able to reproduce the issues, I used a shotgun approach to fixing the issue. Luckily Amelia has such a setup and was able to fix it. Docker users can now remove the DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true from their compose file and Kavita should work across the board.

Docker users

Remove DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true from your compose files. It is no longer needed.

Lastly, Amelia polished a lot of the UI for the epub reader, closing out some annoying issues around scrolling, especially on iOS (which I cannot test against) and I focused on the backend, allowing for loosened parsing requirements, but still reporting the issue to Media Errors (Thanks to @vers-one for enhancing their library).

This overall feels like a great release with a lot of polish and stability. Many other issues were fixed, and I feel very confident in this release. The next release is planned to focus on the Scanner and see if some more instability can be ironed out and apply some more performance improvements. Amelia and I have been brainstorming and doing some research to see what overhauls we can make.

Lastly I want to end with an update that my time is still extremely constrained and will likely be this way going forward, so expect longer windows between releases.

Added

  • Added: Ability to delete Smart filter steams from Customize Side Nav and Dashboard
  • Added: Ability to rename Smart Filters in Customize settings
  • Added: Added the ability to reorder the side nav without using customize screen by clicking the actionable on Home -> Reorder (Thanks @Fesaa)
  • Added: Added a new cleanup task that scans media errors and clears them out if they are ingested fine into Kavita
  • Added: Added a new preference option for allowing Kavita to automatically switch into webtoon reader mode based on image resolution. Defaults to on.
  • Added: Added the ability to see all people across a reading list, the time it would take to read, and age rating.
  • Added: Updated many areas of Kavita to bring even better localization support. Everything in the UI should be fully localized now
  • Added: Added support for partial (0.5) volumes for Korean filename parsing

Changed

  • Changed: Allow volume title card overlay for more than just book libraries
  • Changed: Updated hostname tooltip text to be more clear
  • Changed: Added a toast message for backfilling events on scrobble page.
  • Changed: (Kavita+) Changed button on Scrobbling Errors to a match button which can directly fix the issue, rather than the old edit and add weblink.
  • Changed: Improved the tooltip for the scrobbling button to be clearer if it is on/off.
  • Changed: Overhauled the reading list detail page to be more aligned with series detail page
  • Changed: Reading lists will be in non-edit mode by default. A new edit button can toggle edit mode and bring drag handles and other controls.
  • Changed: Added a warning when in edit mode about when drag handles are suppressed
  • Changed: PDFs will now fall back to the Title in metadata for series
  • Changed: Updated Angular to 19
  • Changed: (Kavita+) Don't create scrobble events for specials as they will never match on AniList
  • Changed: Updated wording and some styling to make the first impression better
  • Changed: Changed how series downloads work to include the individual archives instead of unpacking them first (for non-image based series)
  • Changed: Reworked the version update logic so that we don't pop the new version update so often. It will now pop once and if no action is taken, it will wait a week to pop again. The same logic applies to the you are X releases behind, etc (but longer windows).
  • Changed: Updated dependencies and Security issues from downstream libraries
  • Changed: Enhanced parsing code for (back cover) falsely being recognized as a cover image.
  • Changed: Cleaned up how specials are parsed to allow supporting periods in the Title name
  • Changed: (Epub Reader) When reading in Double Column mode, Kavita will now prevent seeing the same text twice by added an empty page when needed
  • Changed: Allow users to type both localized name and series name to find a match on Related Series
  • Changed: Made Library type and Sort options dropdowns alphabetical (localized)
  • Changed: Removed the analyze task as it shouldn't be needed anymore
  • Changed: Renamed Comic -> Comic (Legacy) and Comic (Comic Vine) -> Comic. The new comic library should be the primary.
  • Changed: Moved the reset button for API Key to the right side, which renders much nicer.
  • Changed: Aligned and corrected some styling for the Edit/Close button on setting items to be consistent
  • Changed: Setting items that are not editable won't show the pointer cursor
  • Changed: Setting switch items have the label appropriately wired and thus when you click the label, the switch will update.
  • Changed: Details tab will show genre/tags expanded by default
  • Changed: (Kavita+) Updated how JWT looks at expiration time for AniList Token.
  • Changed: Moved Skipped scheduling ScanFolder log message to Trace as it's noisy
  • Changed: Tweaked how localization cache busting is handled to try and get Transloco to respect cache busting
  • Changed: For Admins (or users with access to all libraries), under Manage Users, sharing now shows 'All Libraries'
  • Changed: Changed how epubs are parsed. Now, Kavita will try to open it expecting a valid epub structure (which isn't common without user intervention) then allow falling back to a non-correct epub (with degraded experience within Kavita). Kavita will record issue in the Media Issues tab.
  • Changed: Ensure all switch elements link up with a label element for accessibility.
  • Changed: (Kavita+) Switched Last modified to Created for when the scrobble reading event took place.
  • Changed: Reading lists' age rating will now update when a series age rating is updated via the UI
  • Changed: Moved Gmail/Outlook auto fill buttons from Host Name to Host setting
  • Changed: Setting items will auto focus when switching into edit mode

Fixed

  • Fixed: Fixed an issue with non-American date and number parsing
  • Fixed: Fixed an initial blank page on settings due to a slow locale cache load
  • Fixed: Fixes the environment variable for invariant globalization still being set in the Dockerfile
  • Fixed: Fixed a bug where cbl import wouldn't allow importing due to the name clashing with another user, when it should have only checked your account
  • Fixed: Fixed a lot of styling across the app and overall polish
  • Fixed: Fixed a bug when updating email settings, it can error out after 2 changes
  • Fixed: Fixed an issue where chapter ranges (1-3) could get an incorrect sort order
  • Fixed: Fixed an issue with Mihon over-extracting image files (Thanks @arition)
  • Fixed: Fixed a missing action handler for delete chapter from series detail page.
  • Fixed: Fixed issues with selection on mobile devices in the epub reader causing pages to skip
  • Fixed: Fixed TitleSort being used instead of SeriesSort for Series Sort field (Thanks @joshuaavalon for the help)
  • Fixed: Moved loading icon up so it's visible even when having a lot of cards on library detail page
  • Fixed: Improved the webtoon reader's abil...
Read more

v0.8.5.11 - Hotfix 2

17 Mar 19:25
ba17bf4

Choose a tag to compare

I decided to do one more hotfix as there was an annoying bug for multi-root libraries that causes flip-flopping (the same issue as covers disappearing). This also contains some fixes around scrobbling and misc other bugs reported that are a good fit.

v0.8.6 is still planned to focus on the Scanner and finishing off the Kavita+ Polish.

Changed

  • Changed: Locale selection now shows the total percentage of completion of the locale.
  • Changed: Cleaned up some code around localization as a way to hopefully fight the keys showing in the UI on new versions.
  • Changed: (Kavita+) When a user removes the Kavita+ license from their instance, stop doing all K+ Background tasks instead of waiting for the next restart.
  • Changed: (Kavita+) Kavita will now clean up old scrobble events for users that don't have an anilist token on their account, so that events that will never get processed get cleaned up.
  • Changed: (Kavita+) When sourcing descriptions from Kavita+, remove the (Source: X).

Fixed

  • Fixed: Fixed a bug where a signature on an API was wrong
  • Fixed: (Kavita+) Fixed a length issue for reviews from Kavita+ that could break metadata matching
  • Fixed: (Kavita+) Fixed some edge case handling of want to read scrobbling and potentially some issues around events that never get processed.
  • Fixed: Fixed unable to start Kavita for the first time on DD/MM/YYYY locales (Thanks @Fesaa )
  • Fixed: Fixed a bug where multi-root libraries would delete and recreate series in one of non-first folders
  • Fixed: Fixed reading list not respecting age restrictions (Thanks @Fesaa )

API

  • Updated the ReadHistoryEvent to expose ReadDateUtc instead of just the server timezone date. (Thanks @0xGingi)

Known Issues

  • Docker images aren't showing Locale names correctly (this will be fixed v0.8.6)

v0.8.5.3 - Hotfix

09 Mar 17:13
5aa9699

Choose a tag to compare

A small hotfix is needed due to the Don't fall behind modal showing incorrectly.

The known issue of covers disappearing seems to be related to multi-root libraries and thus is likely to require a full release cycle to tackle.

Fixed

  • Fixed: Fixed a bug where the Don't fall behind modal was opening constantly
  • Fixed: Fixed a wiki link being wrong

v0.8.5 - Metadata Downloading & PDF Metadata!

07 Mar 19:36
292dc55

Choose a tag to compare

It's been some time since the last release and this one is hefty! The goal of this release is to overhaul Kavita+ experience within Kavita, but I sneaked in metadata downloading, something I originally envisioned for Kavita, as well. This release is packed with a lot of goodies, from the ability to download metadata, greatly improving the PDF experience, to decreasing the scrobble window from 4 hours to 1 hour, and much more.

Metadata Downloading (Kavita+)

When I first started Kavita, I talked about wanting to build a plugin system to support metadata downloading, so I could have a true Plex experience. As the application and user base grew, the Plugin system was too much scope for me to handle and I said goodbye to the idea. Luckily, Kavita+ is here to provide that opportunity to build it out and all of last year, I have been slowly laying the foundation to make it a reality.

Kavita can now automatically download metadata and apply it to your Series. It currently supports 12 different fields, including Cover Image, People, Genres, Tags, Age Ratings, and Relationships to name a few. I wanted to build a system that was functional but simple. Kavita offers a few controls that should allow enough flexibility to work for most users. I want to also thank the community for the overwhelming testing and feedback. The nightly testers and community really brought a lot of great ideas to polish this feature off.

With that said, I want to set expectations. I'm not looking to build a komf replacement. This will currently just use metadata from AniList/MAL and Hardcover once I get around to it.

So how does it work?

PDF Metadata

The pains of PDF may finally be over! Kavita now can read PDF metadata when tagged with Calibre (there is no real metadata format). Thanks to @microtherion writing a custom PDF parser, Kavita can now extract Series, title, volume, genres, etc from your files and bring a good experience for people forced to use PDFs.

New Stats API

This release also sees the release of an overhauled stat system. The Stats API is mainly for understanding how many servers are running Kavita, but there is also a lot of benefit in collecting anonymous data about the users of Kavita. On multiple occasions, I base decisions for features or bugs based on that data. However, the original stats API was quite out of date with what was important, so I overhauled it drastically. Like always, the code is Open source and nothing is logged that can identify you. You can take a look at the stat record here. Thank you to all that continue to report statistics.

Misc

I wanted to shout out a few extra features that are included in this release. First off, Automatic Webtoon mode switching. This is a very common issue for users that read by comics and webtoons and also a discovery issue for new users. While I had architected out a grand solution for this, due to time constraints it never came. This is a good hold over until that time comes. When Kavita opens a comic that is likely a webtoon, it will switch into the mode for you automatically. It's not 100%, but a best guess.

Another new feature is bringing Bionic Reading mode to Kavita's epub reader via a new font. A few users asked for this and thankfully a font made it possible.

Docker Fix

In the last release, docker users reported the scanner breaking. You can fix this with the following. The wiki reflects this as well.

Add DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true to your docker compose

This Year

With that said, let's talk about what I want to deliver this year. I have to preface this by saying that this year my time is extremely constrained. But as always, I have lots of ideas that I want to try and accomplish. Since my time is limited, I've scaled down my goals to 2 main features:

  1. Journal-style Progress will allow for a much richer stats experience and allow for some new functionalities in reading history. I've already validated this architecture in another project so it shouldn't be too complex porting back to Kavita.

  2. Kobo Sync was on my list last year but due to the new scanner, got pushed away. With the news of Kindle, it seems like a great time to prioritize it to the front of the list.

These two features are a blend of user wants and my own wants to enable much richer statistics in the application. I'm sure I'll get side tracked along the way and deliver something cool. As always, a big thank you to our users and community. Kavita would not be where it is without your comments, feedback, and ideas. I'm really grateful that I have a great community, looking forward to working with you this year.

Note: AniList API is currently degraded and stuck at 30 requests / min. I've tried to build out the cache to avoid having to hit them for the release. Please be patient, I will be continuing my work on Kavita+ to work around these API limits.

With metadata being available for PDF, you may loose progress. When v0.8.5 starts, it will export all progress to config/progress_export-v0.8.5.csv

image

image

image

image

Added

  • Added: Added Fast Font to Book Reader. Fast Font is an open source Bionic Font alternative (FR #1268)
  • Added: Added the ability to read embedded metadata from PDFs that conform to Calibre's embedding. (FR #3103)
  • Added: Added a new stat for if the server uses metadata matching
  • Added: (Manga Reader) When most of the file dimensions look like webtoon images, switch into the Webtoon reader on behalf of the user.
  • Added: Series related tab will now show if there are bookmarks
  • Added: Added the ability to see release notes of nightly releases in the changelog/announcements screens.
  • Added: The UI will now check for new versions of Kavita (server-level) and prompt the user with the changelog and force them to refresh to get the latest UI code. This also takes care of any transloco hacks to clear the cache. This should help on update day for non-admin users to get the latest UI code files.
  • Added: Added a new long term cache directory (cache-long). Currently storing Github release history information.
  • Added: (Kavita+) Complete overhaul to the Kavita+ license page. Not only will you have the main license flow, but Kavita will pull down information about your subscription, including the registered email, total sub length, when the expiration will be, and if you're on a valid Kavita install version. Surfaced some of the actionable buttons with descriptions to hopefully help drive more management through the software instead of emailing me.
  • Added: Added long term caching for Publisher/Favicon fallback so CoversDb doesn't have to service more requests than needed.
  • Added: (Kavita+) There is now a manual match flow in Kavita to match a series (or fix a match) to AniList (currently the only upstream provider till Hardcover). Kavita still tries to match automatically, but via this new action from Series detail page, you can either provide another search name or Anilist/Mal urls directly to direct match. Likewise, you can select 'Do Not Match' which will delete any previously matched data, drop all scrobble events, and prevent matching/scrobbling in the future.
  • Added: (Kavita+) Removed the previous error/matched bar from license screen and broke into it's own page called Matched Metadata. You can now filter by matched state (either not yet matched, needs manual match, don't match) and perform said flows from this screen. This should result in a much easier time navigating your metadata.
  • Added: (Kavita+) New screen to see your users and if their AniList tokens are set or expired.
  • Added: (Kavita+) Kavita will now email you (assuming email is setup and using a real email) whenever your scrobble tokens are about to expire (5 days out) and the day of, urging you to renew them to avoid scrobbling issues.
  • Added: Kavita now has an email history table for admins to see which emails were sent out
  • Added: (Kavita+) Kavita now implements the feature request to sync your 'planned' read lists from AniList/MAL into Kavita's Want to Read (FR #3153)
  • Added: New button to download a person's image from CoverDB. I am still working out how to approach an automated solution. CoverDB is open for new entries.
  • Added: (Kavita+) Added the ability for individual users to turn on/off scrobbling to anilist and the want to read sync.
  • Added: (Kavita+) Kavita can now download metadata upon add and via the Match action. Metadata includes series cover image, summary, age rating, publication status, relationships (assuming already owned), release year, people (writer, artist, character) - including cover images, genres, and tags. Provides a flexible system to customize to your needs or disable altogether.
  • Added: (Kavita+) New Library setting to opt a whole library out of being matched.
  • Added: (Kavita+) Ability to override locked fields when performing a match to update metadata
  • Added: Users can now press enter to close (and save) the setting items that are text inputs

Changed

  • Changed: Changed the maximum line length of text inside of expandable blocks of text to a readable value (Thanks @heyhippari)
  • Changed: Allow admins to change non-admin's email accounts on file. Will automatically assume it's valid.
  • Changed: Docker builds will now have extra metadata (Thanks @halkeye)
  • Changed: Cleaned up the person image components to be a better experience in different states (Thanks @heyhippari )
  • Changed: Known for on person page shouldn't...
Read more

v0.8.4.2 - Hotfix + Migration Script

27 Nov 20:11

Choose a tag to compare

A few small things slipped past.

I want to take this space to first apologize to our users that manually tag their metadata in Kavita. Post release has been an eye opener to the different ways uses of Kavita and a lesson learned to work harder to preserve data between releases. I always try, but sometimes big lift and shifts like this are needed and aren't easy to preserve data. I will take it on myself to strive for excellence and do what is feasible to preserve data. I don't foresee many major refactors like this happening in the near future.

On more positive news, MetronInfo.xml has become stabilized. This is a step towards advancing the metadata format for Comics and Manga (and potentially books in the future). I have worked closely with Brian (the creator) to include Manga into the format. Kavita is dedicated towards supporting the format, that work is planned for next year. Read up more about it here.

If you have a lot of metadata that was tagged just via the UI, you can try this script a user wrote to migrate the data. Grab a backup from v0.8.3 and run this against it. You need to update oldDb and newDb. I cannot offer support for this script.

I did convert this to python via ChatGPT and added instructions, it will be much easier but I did not test it. You can find the script here.

Fixed

  • Fixed: Send to on mobile was still broken
  • Fixed: Changed On Deck to use a workaround as a temp fix
  • Fixed: Fixed a bug where on non-English locales parsing numbers would throw an exception and cause files to not be ingested.
  • Fixed: Bulk library delete wasn't hooked up
  • Fixed: Fixed a bug where updating chapter metadata with a new person, the normalized name was saved
  • Fixed: Potentially fixed a bug where adding multiple people on a series via UI will throw an exception (Was not able to reproduce, but added extra safety logic)