# Kavita changelog
> A fast, self-hosted digital library for manga, comics and books.
- Vendor: Kavita
- Category: Media
- Official site: https://www.kavitareader.com
- Tracked by: What's New (https://whatsnew.fyi/product/kavita)
- Harvested from: GitHub (Kareadita/Kavita)
- Entries below: 10 (newest first)
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'.
## Releases
### v0.9.0.2 — v0.9.0.2 - Security Hotfix
- Date: 2026-05-14
- Version: v0.9.0.2
- Original notes: https://github.com/Kareadita/Kavita/releases/tag/v0.9.0.2
- Permalink: https://whatsnew.fyi/product/kavita/releases/v0.9.0.2
- **security** — Critical vulnerability fixed (CVE-2026-47202)
- **changed** — OIDC validation no longer requires super safe urls
- **fixed** — Fixed reading list detail tab not having tabs wired up
- **fixed** — Fixed series/chapter rating always returning 0 if you had rated it
- **fixed** — Fixed bookmarks not loading
- **fixed** — Fixed text & image bookmarks being switched
- **fixed** — Fixed long chapter names causing wrapping in activity overview
- **fixed** — Fixed epub bookmarks not loading
- **fixed** — Fixed people not being removed from series if chapter metadata has none
- **fixed** — Fixed series not being added to a collection under some circumstances
- **fixed** — Fixed early reloading causing double K+ plus calls when matching on the series page
- **fixed** — Fixed annotations duplicating & swallowing text under some circumstances
- **fixed** — Fixed annotations not being shown under specific circumstances
- **fixed** — Fixed external links containing sometimes being scoped out of a book
- **fixed** — Fixed search being unreliable when searching with year metadata
**All users are strongly advised to update immediately.**
There has been a critical vulnerability discovered in Kavita. Please update your instances.
All versions prior to this release are impacted.
If you are holding out on an old release due to some change in Kavita, please raise a FR and I will work with you to help bridge that feature gap.
Details/CVE will be shared at a later date to give users time to update.
Edit: CVE Published: CVE-2026-47202
#### Changed
- Changed: OIDC validation no longer requires super safe urls.
#### Fixed
- Fixed: Fixed reading list detail tab not having tabs wired up.
- Fixed: Fixed series/chapter rating always returning 0 if you had rated it.
- Fixed: Fixed bookmarks not loading.
- Fixed: Fixed text & image bookmarks being switched.
- Fixed: Fixed long chapter names causing wrapping in activity overview.
- Fixed: Fixed epub bookmarks not loading.
- Fixed: Fixed text & image bookmarks being switched.
- Fixed: Fixed long chapter names causing wrapping in activity overview.
- Fixed: Fixed people not being removed from series if chapter metadata has none.
- Fixed: Fixed series not being added to a collection under some circumstances.
- Fixed: Fixed early reloading causing double K+ plus calls when matching on the series page.
- Fixed: Fixed annotations duplicating & swallowing text under some circumstances.
- Fixed: Fixed annotations not being shown under specific circumstances.
- Fixed: Fixed external links containing sometimes being scoped out of a book.
- Fixed: Fixed search being unreliable when searching with year metadata.
### v0.9.0 — v0.9.0 - Reading List Overhaul and Spring Cleaning
- Date: 2026-04-30
- Version: v0.9.0
- Original notes: https://github.com/Kareadita/Kavita/releases/tag/v0.9.0
- Permalink: https://whatsnew.fyi/product/kavita/releases/v0.9.0
- **security** — Fixed security vulnerabilities and hardened API endpoints
- **fixed** — Fixed excessive database writes that were noticeable on non-SSD setups
- **fixed** — Fixed database is locked error by changing transaction creation and implementing extra waiting for concurrent writes
- **changed** — Redesigned Reading List screens to display more information
- **added** — Added ability to filter reading lists by multiple fields
- **added** — Added user-defined tags to reading lists that can also come from CBL v2 lists
- **added** — Made Smart Filters work with Reading Lists for binding to Side Nav and Dashboard
- **added** — Added ability to export reading lists as CBL v1 or v2 format
- **changed** — Rewrote CBL matching logic with multiple fallbacks to improve import accuracy
- **added** — Added ability to save matching decisions as Remap Rules for future CBL imports
- **added** — Added ability to browse and import lists from the CBL Repository directly in Kavita
- **added** — Added auto-update functionality for CBL lists
- **added** — Added CBL v2 support with tags
- **added** — Added multi-select and bulk download support for series, collections, chapters, and volumes
- **added** — Added persistent download queue with auto-processing across reloads
- **added** — Added download manager that marks previously synced items and provides retry and cancel support
- **added** — Reading session system now works with Mihon and Panels applications
- **added** — Added option to stay on older versions of Kavita without version update prompts
- **changed** — Implemented backoff system for version update modal dismissal
- **fixed** — Scanner now clears metadata fields when they are cleared in the underlying metadata file
- **fixed** — Genres and tags no longer normalize and merge during scanning
It seems almost like a hard rule that the 2nd release of the year is always a spring cleaning release and this time, we've really put the new knowledge we've built up back into Kavita to clean up old systems, rebuild foundations, and then deliver some massive improvements on top of it. This release is packed with nearly 200 change log items and overhauled 2 major UI systems that have already allowed some amazing enhancements.
##### Highlights
###### Performance and Security
This is first and foremost. Kavita had a few security issues brought against it and we've ensured that we fixed those issues (CVEs will be requested after the release) but also hardened more of the API to ensure no other issues. These issues are likely not going to be abused, but I would encourage everyone to update.
In addition, we fixed one oversight around how often Kavita was writing to the DB (noticeable on non-SSD setups) and fixed the database is locked error (mostly) by changing how transactions are created in Kavita and implementing some extra waiting when concurrent writes are occurring. For me, I was seeing them a lot in the webtoon reader (which also got some nice love) and now I don't.
###### Reading List
There is a lot to cover but the long story short is, I redesigned the screens to bring forward more information, I added the ability to filter against reading lists by a number of fields, I added tags which are user-defined (or can come from CBL v2 lists), and I made Smart Filters work with Reading Lists, so you can bind them to your Side Nav/Dashboard. You can also export them as CBL (v1/v2) if you want to apply some arbitrary sorting in another program then re-import them.
###### CBL ~~Import~~ Manager
This has been on my mind since I first saw the v2 CBL spec and that is an overhaul to the CBL Import flow. Here's what I did:
- Rewrote the matching logic with tons of fallbacks to always try to make the best match [wiki](https://wiki.kavitareader.com/guides/features/cbl-import/)
- Allow the importer to make decisions and save those decisions as Remap Rules for future imports (admin's can promote so all users get the benefit)
- Allow users to browse lists from the CBL Repo in Kavita and just import from there (or a file/url)
- Auto-update lists for the users
- And of course, v2 support (with tags)
Of course there is more to the story, but overall I feel like the Reading List and CBL Flow is in a great place.
###### Multi-download Support
This has been an item I've been wanting for 2 years now and I finally got to finish it off. You can now multi-select series, collections, chapters, volumes, whatever and Kavita will deconstruct down to the individual items, queue them up and process one by one. For me, a bit problem was FF on Android, I had to deal with a prompt on every download, but no more! The download manager is smart and remembers what you've downloaded and will show a mark on the card to let you know you've synced it to the device. We got retry and cancel support and just a ton of polish. I hope you'll enjoy this as much as me.
###### Misc
Mihon and Panels users rejoice, the
_[Truncated at 4000 characters — full notes: https://github.com/Kareadita/Kavita/releases/tag/v0.9.0]_
### v0.8.9.1 — v0.8.9.1 Hotfix
- Date: 2026-01-18
- Version: v0.8.9.1
- Original notes: https://github.com/Kareadita/Kavita/releases/tag/v0.8.9.1
- Permalink: https://whatsnew.fyi/product/kavita/releases/v0.8.9.1
- **changed** — The image reader will now always send a progress event for chapters with exactly one page
- **fixed** — Fixed re-read prompt not being disabled when setting is 0
- **fixed** — Fixed empty re-read setting breaking saving flow
- **fixed** — Fixed theme being reset
- **fixed** — Fixed some tables not loading in the statistics page for admins, breaking the page
- **fixed** — Fixed inconsistent behaviour with the /api/plugin/authkey-expires endpoint
We decided to issue a small hotfix, with minor fixes and some enhancements on a new endpoint related to Auth Keys, to ensure it's easy from the get-go for external app creators.
#### Changed
- Changed: The image reader will now always send a progress event for chapters with exactly one page.
#### Fixed
- Fixed: Fixed re-read prompt not being disabled when setting is 0
- Fixed: Fixed empty re-read setting breaking saving flow
- Fixed: Fixed theme being reset
- Fixed: Fixed some tables not loading in the statistics page for admins, breaking the page.
- Fixed: Fixed inconsistent behaviour with the /api/plugin/authkey-expires endpoint.
### v0.8.9 — v0.8.9 - New Stats pages, Journal Style reading, 50x Faster Scanner, and so much more!
- Date: 2026-01-14
- Version: v0.8.9
- Original notes: https://github.com/Kareadita/Kavita/releases/tag/v0.8.9
- Permalink: https://whatsnew.fyi/product/kavita/releases/v0.8.9
- **added** — Auth Key system allowing users to create named API keys with configurable expiration and length (9-32 characters) as replacement for JWTs
- **added** — Client Devices feature to track and manage different devices interacting with Kavita, with ability to rename and view mechanism type
- **added** — Journal-style progress tracking to record reading sessions and re-read counts without overwriting previous progress
- **added** — Double Reader page offset feature modeled off MangaDex
- **added** — Device-bound Reading Profiles allowing reading profiles to be bound to specific client devices with precedence over library or series settings
- **changed** — Auth stack reworked to be driven completely in middleware layer, extracting key information from different authentication mechanisms and coalescing device from fingerprinting
- **changed** — Scanner is now multi-threaded with significant performance improvements achieving up to 112x faster scanning speeds
- **changed** — Cover generation moved to background async thread, occurring after series appear in Kavita rather than simultaneously
- **changed** — API authentication now works consistently across all authentication mechanisms with same interface for all APIs
Happy New Year! Every year, I hope to have a release at the end of December or the Start of January, but it never seems to happen; the scope of Kavita releases have just become too large. This release of Kavita is quite expansive and completes on of the core goals I laid out last year - Journal Style Progress. But it's not just that, it's **12 Feature Requests** with a total of **98 upvotes**, it's reworking a lot of foundational code now that we have multiple authentication mechanisms, improving Developer Experience working with Kavita (no more JWT management), a **MASSIVE** speed improvement to the scanner, and of course a brand new stats system for Kavita (with a lot of inspiration from Hardcover).
Since this is such a massive release, I wont be able to highlight all the large improvements, but I know you'll love it. Before I go some of the big hitters, I want to talk about what Amelia and I have planned for this year. Carrying over from last year, there are a few more areas of interest, then we plan to step back and start building an official, native mobile app experience for Kavita.
The key areas of focus:
* **Reading List Overhaul Project** - I've worked closely with the CBL group to define some key improvements to Kavita's reading list experience along with the CBL import.
* **Kobo Sync** - Another big one that most other servers have adapted. We have Progress Sync support already, but this is the icing on the cake.
* **Kavita+ Enhancements** - Hardcover and MangaBaka (once it's stable) are still on my list, along with a slew of issues that have been piling up.
I look forward to your feedback on the new release. Before we go, I'd like to give a shout-out to @daydreamrabbit who has been very active in testing this release and opened a whopping 39 issues this release, of which we closed 26!
##### Highlights
First off, let's focus on the Foundations of Kavita with 3 key features:
###### Auth Stack
Last release, Kavita added OIDC into the mix of authentication. While not an issue, users started noticing inconsistency on when their last updated for the accounts were, asking for it on OPDS. Kavita has grown to be quite complex and I knew with this release, I wanted the concepts of Devices (something that has prevented binding reading settings per physical device).
The Auth stack has been reworked to be driven completely in the middleware (the code that runs between your browser making the request and Kavita's code actually handling it). This middleware stack extracts the key information from the different authentication mechanisms, coalesces a device from fingerprintint, and tracks it if needed. A lot of polish has gone into this layer to ensure speed. This also results in easier code for Amelia and I when building new APIs.
###### Developer Experience
Since we have this new Auth stack, it was finally time to move off the JWTs for external applications. JWTs were handy because they fit into the existing codebase seamlessly, but with the power of the new auth, it doesn't matter how you connect, Kavita will derive the same data and interface for all APIs to use. So now, any user can create a named Auth Key (replacing the hardcoded api key) with their own expiration (or never) and a configurable length (9-32 characters). Attach that as the header (x-api-key) and you will have the same benefit as using a JWT. If there is an expiration, use /api/plugin/authkey-expires.
###### Client Devices
Client devices are the last piece of the puzzle and a critical aspect of this release. A client device is any device that interacts with Kavita. Users can after the fact rename them, but as you see here, the mechanism (Web App, OPDS Client, KOReader) and user are present. This will help end users know how different external apps, but also drives the activity mechanism (like Plex has) to ensure you don't bounce your server while people are reading.
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