Releases: Kareadita/Kavita
v0.8.4.2 - Hotfix + Migration Script
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)
v0.8.4 - New Scanner + Browse Authors/Artists + Tons of Bugfixes
After rewriting 50K lines of code last release, I decided it was best to take a break and focus on the bugs that resulted and a few that had piled up. This release is bug focused, but of course I stuck a few big features in with it.
Scanner
One issue that has been cropping up as we attract more users with larger libraries or libraries laid out in the Publisher/Series style is the scanner. Users with large libraries modify their library quite a bit and the old scanner had issues with change detection. v0.8.3 had quite a nasty bug which required forced library scans to ingest new data. There was also the notorious FK issue that was more common for larger libraries.
To fix these issues, I rewrote the scanner from the ground up to be more reliable. This was a (painful) 3 week effort working closely with a dedicated set of testers on a canary release to be nightly and stable ready. The new scanner will be slower than the old one. As of now, I feel that once the main slow first scan is done, it's actually performing much better. With this new scanner, there were some other major changes.
People Re-architecture
In order to reduce the FK issue in the scanner, I also needed to tackle the 80+ hour re-architecture of how people work within Kavita. When I started, with my limited knowledge of the scene or what Kavita would grow to become, I implemented people as tags, much like how ComicInfo does. This is constrained when you want to make people more entity-focused, like having a dedicated page for them.
With this release, you can now view individual details of a person, set a cover and description about the person and see their works and individual issues they worked on. You can also browse authors and artists, like other software has. This is just the start, please leave feedback for me via Feature Requests, so I can build this feature out more and make it a richer experience. Note: Any Smart Filters that relied on people will need manual intervention to correct. A force scan will be required to regenerate writer information.
Special Keyword Removal
The last thing with the scanner was removing Kavita's ability to detect and classify certain keywords as Special. Like Omake
or Annual
would classify a file as a special. While this is extremely handy in the Manga scene, there were numerous reports over the years that required manual workarounds by users. In order to behave more reliably, I opened a discussion this year for removal and made the final call. Specials going forward will need the SP marker on the filename (or tagged internally).
CoversDB
Kavita has had the ability to download and display favicon and publisher images with a fallback repository being hosted on the main Kavita website. In this release, I've moved all that functionality and those images over to a new CoversDB repo. This repo will be the home for anything related to pulling images for Kavita instances. I plan to enhance this further as new features come to Kavita.
Small QoL Features
Last Read Filter is a new feature that allows you to pass a number that will be subtracted from TODAY, upping the dynamic function and allowing users to build Smart Filters like "Haven't read in a month".
Colorscape Polish The colorscape system has been polished even further. I spent a good amount of time adding some randomness, fixed a bug with colorscape resetting between navigation, and tried to tweak where colors go to avoid harsh contrasts. It's not perfect, but it's a step in the right direction. If you're passionate about the colorscape system, I welcome collaboration.
Bulk Library Actions This is something @DieselTech has been pushing me to add and the time is finally here. For users that have a lot of libraries (like Diesel and his 200+), sometimes it's quite a pain to update the settings of them all or perform some actions. Now in Kavita there are some limited bulk options, like refreshing covers or copying settings from one library to another (Scan currently disabled).
Recap
This release has been a ton of work on my part, but I felt it was important to squash the bugs first and ensure Kavita remains stable while I continue to add more features and bring a richer experience to users. My next release is still aimed at finishing the UX Overhaul with attention on Kavita+. With the holidays coming up, it is expected that this will take longer than most releases.
For those that have seen, we have hit over 65K active installs. It's absolutely amazing that a small project I started due to Ubooquity not having metadata has turned into such a massive project with a huge userbase. I want to give my thanks again to those in the community that have raised bugs, feature requests, give support in the discord/reddit, those who give me donations via OC/Kavita+, the translators, and of course my wife that helps support me pouring so much time into the project. I'm excited to continue building Kavita and bring about more of our visions into the software and see what is possible.
People metadata will be removed on update. A force scan is required to repopulate in the new system. A force scan/first scan will be much slower than before.
Added
- Added: Manage Libraries now has bulk actions. You can trigger multiple scans (not file scans, but refresh covers or colorscapes, etc) or copy settings from one library to multiple. Shift+select works as well.
- Added: Added a new page for all People within Kavita. From this page, you can see their works across Kavita.
- Added: Ability to see individual chapters/issues (limited to 20) a person has.
- Added: Ability to add images to the person via UI/API. A more automated method is planned in the future.
- Added: Added the ability to browse all Writers and Artists (cover artist) in one page. This should help book users that like to browse by author. (Feature Request: #2556 - 23 votes) (Thanks @MrRobotjs for some css on the Person detail page)
- Added: Added the ability to trigger the general cleanup (which normally runs at midnight) manually in case you need to clear unlinked people, covers, etc.
- Added: Reading List and Collection cards now show a badge showing the number of series/items underneath.
- Added: New Filter option called Last Read which allows a number to be passed in and will dynamically calculate a date from TODAY() matched against reading time. This allows for users to build even more dynamic smart filters to find things not read in a month or read within the past 7 days.
- Added: Added back a lot of the metadata that had to be removed from the top of the series detail page in the UX overhaul, like Language, Release Year, Format, and Reading Time
- Added: Added Details tab to volume details page
- Added: (Kavita+) New Sync Details button on smart collections that shows an easier to digest view of Series and missing series.
- Added: Bulk send to is now available for chapters/volumes
- Added: Added bulk deletion for chapters/volumes
Changed
- Changed: Optimized a number of methods within the Scanner to reduce memory and CPU time
- Changed: Moved a lot of the chapter scanner logging to Trace.
- Changed: Scanner can now choose to parallel parse files when there are over 100 in a directory
- Changed: Changed how detection and scanning of dirty directories works. The scanner will now parse bottom-up to reduce any potential misses and avoid different layouts working differently. This has extra I/O checks but much greater reliability and should reduce the amount of work needed to ingest changes after the first scan.
- Changed: LocalizedSeries merging with Series is now done at a higher level and performs much better (in terms of reliability)
- Changed: People are now entity based which allows for a richer experience in Kavita.
- Changed: Clicking on any person in Kavita will now open their dedicated page which showcases their different works.
- Changed: (Performance) Some large refactors to the scanner to help with the FK bug. The scanner should be slower but consume much less memory, especially for well tagged systems.
- Changed: Kavita no longer parses keywords from filenames and groups as a Special. The way to mark a special going forward will be explicitly with SP01, SP02, etc. Specials can be flat in the series folder or ideally in Specials/ folder.
- Changed: Changed logging level on some of the loggers that could become noisy
- Changed: Refactored some of the post-series work to a separate thread.
- Changed: Ensure mobile actionable modal is fullscreen and centered vertically
- Changed: Update to Angular 18 and other backend dependencies
- Changed: When a setting is invalid, clicking outside the setting item will not close and edit is disabled.
- Changed: Changed the smart filters page to open in the same window (but still available to open in new tab)
- Changed: (Performance) Made the pipe that turns the language codes into full names use a dedicated API which is faster
- Changed: Improved the wording for Single Volume chapters on Series detail page (and person detail page)
- Changed: Kavita now uses a different repo for publisher images and favicons (https://github.com/Kareadita/CoversDB). Any changes should be made here.
- Changed: You can now edit the person name in the UI. If not corrected in the metadata, a duplicate person will be created. This will be tweaked in the future once Alias support is added.
- Changed: Significantly improved the feel of the colorscape experience. When transitioning between colorscapes, locations of accent points wi...
v0.8.3.2 - A Small Hotfix
The UX refresh release has been great, a lot of great feedback has come in, along with a few bugs that got missed during testing. I knew there would be some, especially when the new UX was 50K lines of code difference. I picked up as many as I could that didn't require large periods of time for testing. Unless there is anything major that comes, this should be the last hotfix and I will start work on v0.8.4.
Changed
- Changed: Instead of showing 'Special' on chapter cards that aren't real, show a dash instead
- Changed: Changed how the warning about Email settings and the Test flow worked to be less intrusive
- Changed: (Performance) Small memory improvement when returning reading list items over OPDS
- Changed: Changed 'Edit Series Information' tooltip to 'Edit Information' as it's now generic for other entities
- Changed: Adjusted the logic for displaying chapter information when the chapter belongs to a single volume.
Fixed
- Fixed: Fixed a bug where all chapter cards would always say chapter, instead of issue
- Fixed: Fixed some edge case styling issues on cards
- Fixed: Fixed the wording for the edit tooltip to be more generic since used on other pages, not just series
- Fixed: Fixed Cover Artists still showing instead of Artist in Search
- Fixed: Fixed a bug where task settings weren't saving
- Fixed: Fixed a bug where when highlighting text in a setting item, the setting would close. Now it will only close if you click outside the item and there is no selection.
- Fixed: Fixed an issue where validators would reject payload when password was over 32 characters
- Fixed: Genres/Tags margins on details tab wasn't aligned well with People information
- Fixed: Fixed an issue where Cover Image Size wasn't displaying on the UI
- Fixed: Fixed a bug when changing the bookmark directory would throw an error and not function
- Fixed: Fixed a few issues around smart filter loading for base url reverse proxy setups (aka domain.com/kavita) (Thanks @Fesaa for the issue and helping validate the fixes)
v0.8.3 - The UX Refresh
It's finally here, the UX Refresh. Robbie and I have been dreaming and planning this for over a year now and we've grinded for 2 months (with my trip to Norway/Finland between) to bring it to you. The feedback from the nightly testers has been fantastic! Everyone is in love. We have poured over the UX, both on mobile and on desktop, to bring what we think is a consistent and killer experience. We took a lot of inspiration from Plex and if anyone knows, I'm trying to make Kavita the Plex for reading. So let's get into the nitty gritty of what makes this release.
Colorscape
When I browse Plex, I'm always blown away by the accent colors on movie detail pages. Contrast that to Kavita, I felt it was sorely lacking. So I brought it to Kavita and let me tell you, it was no easy feat. Hours wasted on css gradients before realizing the complex system Plex has. Kavita now will show a nice gradient in the background of any page that has a cover (except reading lists and collections, these will likely follow in the future). What's even cooler is the system is able to be turned on/off with a custom theme or even customized by theme creators. This is the feature I'm most proud of with this release.
Individual Pages
This is a big thing for Book and Comic users, the ability to view individual volume/chapter metadata. This not only brings dedicated pages (and the ability to update metadata for individual chapters/books), but also the ability to read a series/chapter/volume from any card. No longer do you need to open the series detail page.
Settings Overhaul
Again taking inspiration from Plex, we updated the settings pages to bring tooltip information front and center and make changes to any field instant (no more pressing save). All settings, from admin to user preferences, are now on one screen. Some flows have been moved to dedicated pages, like CBL Import or MAL Interest Stack import. This should help with bringing visibility to some of the features Kavita has.
Publisher Images
Lastly, we added a new system similar to favicons for publisher images. This new system allows for users to submit or edit publisher images on our kavita repo and these images will be downloaded dynamically and displayed on the detail pages. Some images may not look good. I am counting on the community to add new or edit images to bring the best UX to all users.
All in all, I'm really proud of this release. Next up is an overhaul to the UX surrounding Kavita+ including reworking some of the systems and laying more foundation for future feature releases. I am also working on building out the test cases for the Scanner to allow me to continue working on the elusive Foreign Key constraint issue still plaguing us and working on bringing more optimizations into the Scan Loop to make Kavita faster.
Lastly, I want to make a big thank you to those that contribute on Weblate. This release was massive and many localization strings were changed. The localizers were on top of it and as of this release, we are shipping Kavita in 10 languages with full support.
Refresh your browser after updating
Added
- Added: Added ability to upload a volume cover for Komf users
- Added: Added a lot of ability to theme the login screen, including the background image.
- Added: Added ColorScapes. ColorScapes is a new dynamic tinting system for Kavita. During cover generation, Kavita will pick primary colors from the image and apply them to the background on pages where the image is a primary element (series detail for now). These are configurable via the theming system. (Light themes do not look good with this system, it should be disabled)
- Added: Added a new actionable for Library to generate colorscapes (which is a soft refresh covers)
- Added: Library Settings and Edit Series Modal now has a tasks tab that shows appropriate tasks that can be done on the library/series along with information about what the task does.
- Added: Added a Volume/Chapter detail page. From any card you can click and open the detail page.
- Added: Added the ability to directly read a card/volume/series/readinglist from the card or open their details page.
- Added: Added the ability to edit chapter metadata directly within Kavita, lock the fields, This includes Sort order which will allow comic users with unique issue numbers to be ordered on the series detail in any order and the readers will respect it.
- Added: Added a new API and UI to allow setting just a volume cover (and locking it). Komf has already updated with support. (Thanks @Snd-R)
- Added: Added the ability to have publisher images (that are managed on Kavita's site, like favicons). There is no extra styling, this is pretty rough but I want to see from users if there is any interest.
- Added: Added a new metadata filter called 'is empty'. This will check against fields like Writers, Tags, Genres, etc to explicitly see if there are no links. (Feature Request)
- Added: .yacreaderlibrary directories will be ignored by the scanner
- Added: Made it so when a new version of Kavita is released, the UI will automatically refresh and bust locale cache since non-admins can't actually run the bust cache task.
- Added: Admins can now trigger Sync Theme job from Tasks page
- Added: Added a link to the CBL Repo from CBL Import for those that are unaware of the project
Changed
- Changed: Passwords can now be up to 256 characters long
- Changed: Changed some headers, spacing, and positioning to make things more uniform across the app.
- Changed: Revamped how settings/preferences work in the app. Following Plex' style, they are all on one page (RBS applies) with a dedicated left nav menu that groups based on functionality. (Sorry localizers, lots of string updates)
- Changed: When navigating away from library/collection/bookmark/etc-detail, instead of just restoring position when interacting with a jumpkey, Kavita will now restore position down to the location of jump point in all cases.
- Changed: Jump keys now show an animation instead of a tooltip to show number of series
- Changed: Filter icon now shows an animation when actively configuring it
- Changed: Moved some screens around to dedicated sections and most of Kavita+ screens are now on a new Scrobbling page
- Changed: Moved the customize modal into a dedicated settings item to make discovery of the feature easier.
- Changed: Lots of small consistency issues and QoL tweaks on different pages to bring a better UX and interaction. A lot of functionality has been moved to drive a consistent experience and discovery of features.
- Changed: Cast and Reviews are in their own tab
- Changed: Tabs on Series Detail now report card count
- Changed: All preferences (except those in account) now just save automatically after interaction
- Changed: Removed library setting 'Include in Recommendations' as Kavita no longer has those flows
- Changed: On mobile view ports, remove the dropdown button and scroll to top. Dropdown button links are now visible in a modal to make clicking much easier.
- Changed: Added a customize button on the Side nav when you move into 'More', so you know you can tweak it if you haven't visited settings yet.
- Changed: Series cards will now show the localized name on hover if present
- Changed: Chapter cards will now show the title on hover if present.
- Changed: Cover Artists is now Artists in the application.
- Changed: After selecting a tab, a refresh of the browser will resume you back on the same tab on series/volume/chapter detail pages.
- Changed: Folder watching is now moved to a separate background thread so it doesn't block startup for users with massive libraries
- Changed: After we update a metadata filter, rescroll to the top as results change
- Changed: Cleaned up some registration error output to look nicer
- Changed: Reorganized edit user modal to better handle users with large amounts of libraries.
- Changed: When mass creating libraries, ensure we enqueue the scans. Also don't restart folder watching if folder watching isn't on.
- Changed: Tweaked some backend code around when we restart library watching and make sure it's always done in a background thread.
- Changed: Sync Themes job now runs daily instead of weekly
- Changed: Lots of small improvements to the UX of theme manager
- Changed: Actionable menu (...) on mobile will now load a modal, rather than the normal desktop view. From testing, the menu was easy to misclick on mobile.
Fixed
- Fixed: Fixed an issue where long passwords would truncate on autofill.
- Fixed: Fixed a side-nav css var that was inappropriately assigned.
- Fixed: Fixed a bug in theme manager where the active pill wouldn't have the correct color for non-dark themes
- Fixed: Fixed a bug where reading list cards wouldn't promote/unpromote from actionables
- Fixed: Fixed a bug where OPDS reading list feeds were missing pagination
- Fixed: Fixed an edge case where busting Kavita+ cache in edit series then hitting close wasn't refreshing screen.
- Fixed: A ton of localization changes across the board (Thank you to the Translators for promptly updating language support to 100%)
- Fixed a bug where busting locale cache wouldn't refresh the new translations
- Fixed: Fixed some logic around disabling scrobbling on the UI side for library type selections
- Fixed: Fixed a bug where pinned smart filters on the side nav would all show an active highlight (Thanks @Fesaa for t...
v0.8.2 - Theme Overhaul, Smart Collections, & a lot of Scanner work
A new stable release is here and it is yet again another big one. Initially I set out to focus on 3 items: Scanner, Smart Collections, and CBL v2 (new schema), but here I am delivering 3 massive improvements and a ton of smaller changes. This release includes a bit of everything spread about. Let's get into it.
Built-in Theme Explorer
One thing I wanted since day one of adding theme support into Kavita was the ability for users you just browse a list of themes and download what they want to use. It's not easy when the admin has to add the theme for you and hit scan, dealing with the underlying filesystem. I finally got around to setting up the initial version of this (open to feedback to expand on this system) with v0.8.2. All users will have the ability to browse themes uploaded to the theme repo, preview the images and description, and download and apply theme. This currently does not have any role permission and I didn't hear much from nightly users thinking it's needed. If you feel otherwise, raise a discussion. If you don't want to use a theme on the repo, you can upload your own file via the interface. Existing theme users should delete their themes and re-acquire them. This will allow them to be updated for you automatically (assuming the supported version matches yours).
Smart Collections for Kavita+
This is another one I've wanted for a while and is part of the theme of introducing more synchronization systems into Kavita. Smart Collections allow for you to import any Interest Stacks/Restacks from your MAL account into Kavita. Every 2 days, Kavita will resync with upstream and add any Series that you own to the collection. The collection is otherwise read-only and promotable, so if you want to setup a few best of X and promote them for your server, you can. These features are also not admin-specific. Any user can import their interest stacks into the server (and if they have the promotion role, can promote them). I hope you all enjoy this feature as much as I am. Another level of bringing a top notch experience for my users.
Scanner Changes
I've been working a lot with our users that have larger libraries, ranging from 100k files to 10k series. One of the major problems is that when you have a library of 10k, it's going to take a long time as expected. These users are mainly new users coming from the comic rework and have folder structures Kavita wasn't originally built around. I spent a good chunk of time building optimizations to reduce the amount of processing work Kavita does for these folder layouts (not restrictive to comic libraries) and fixing some bugs around parsing and whatnot that surfaced thanks to the numerous bug reports. If you aren't finding good results after this update, please do reach out.
Misc Changes
A few other big changes come with this release. The first is WAL is now on by default. You can always turn this off manually in the DB, but fresh installs (and existing) will turn WAL on. WAL fixes the common database is locked
issue due to Kavita writing too much data too fast. Another big one is double scrollbar on mobile. This was an annoying bug on some mobile browsers on some pages. Robbie took this up and fixed it everywhere to my knowledge. A great QoL enhancement. OPDS has gotten a lot of love in this release thanks to some great reports by @MnsieurJF around reading lists and missing metadata in the feeds. Lastly, the Manga Reader has had some tweaking to how fit to height/width works. It's not easy to put into words, but I find the fitting to be MUCH better.
I have loose plans for what the next release is going to be. The PDF rework will need to come after v0.8.3 to allow people who upgrade into the v0.8.x series not to loose data from the massive changes. I have a lot of holiday coming up as well, so the release may be longer or shorter depending.
Lastly, I want to mention (as I keep forgetting) that @DieselTech has joined the Kavita team a few months ago. His name should be well known as he's very active in most of the reading and comic discords as well as being a core member in the CBL Reading Order group. He's already driven a lot of great changes in Kavita for hardcore comic users and I have no doubt he will continue to be a great resource for me to rely on in the future.
Added
- Added: Kavita+ users can now import their MAL interest stacks/restacks into Kavita as Smart Collections. These collections will synchronize back with MAL to update with new series and summary information every 2 days. Smart Collections work just as normal collections except are non-editable as the MAL stack controls the data. They can be promoted given the user has promotion role. They are not admin-specific.
- Added: Added the ability for any user to download themes from the Theme Repo directly via Kavita. Kavita will keep these themes up to data automatically (unless the reported version from the Repo is greater than the server version).
- Added: Book series can now have specials. In order to be classified as a Special, the SP marker must be in the filename, the calibre:series must be set to the Series name and
calibre:series_index
must be 0. (Feature Request: 3 upvotes) - Added: OPDS-PS on PDF files is now possible. Kavita will convert to images.
- Added: Added a create link to create a new smart filter in case it's not clear for first time users exploring the software.
- Added: Added first install version and date to the DB so admin's can look back at it. This data is available in System tab.
- Added: Added new Random sort option to allow a stream like 'Top Unread in X' (Thanks @Fesaa)
- Added: Added the following css variables --event-widget-activity-bg-color, --event-widget-update-bg-color, --event-widget-error-bg-color
- Added: Implemented the ability to click download on any file extension from stats page (formats table) and download a report of all files that are of that extension.
- Added: Added the ability to manually override the width in the manga/webtoon reader when using Width scaling (Thanks @Marsimplodation) (Feature Request: 19 upvotes)
- Added: Added bulk promote/demote/delete for reading lists to align with collections.
Changed
- Changed: On forgot password, even if email isn't setup or user doesn't have email setup, still allow the reset link to log.
- Changed: Reduced memory for adding a set of series to a collection.
- Changed: Scan button no longer exists on themes tab. Now, admin's can upload their custom css files via the UI.
- Changed: Admin's can no longer delete themes and force users with that theme active off.
- Changed: Changed how scaling works in the manga reader to be more inline with the expected behavior. Height will scale to viewport height even if it is beyond the image's original dimensions. Width will scale to viewport width even if it is beyond the image's original dimensions. Original will show the image at its intrinsic dimensions, no scaling is applied (Thanks @therobbiedavis)
- Changed: Enable WAL journal mode by default in all Kavita installs. Users can turn it off after the first run if needed.
- Changed: Show a warning on dirty email setting form to inform the user they need to save before testing settings.
- Changed: Ensure users know that Scrobbling providers will always keep the highest number from kavita.
- Changed: On < tablet viewports, reading list page should use order numbers rather than drag and drop, as there isn't enough real estate.
- Changed: Series Detail page will now show people/genre/tags as collapsed even on desktop, but summary will have same code to be expanded up to 1000 characters on desktop.
- Changed: (Scanner) Refactored Scan Loop to avoid doing extra work on lower folders in a folder map path, so that users that group by publisher or another arbitrary folder, can avoid a lot of scanning on lower level folders just because the highest level changed.
- Changed: (Performance) Applied some performance optimizations on Series OPDS route which should help speed up heavier Series.
- Changed: (Performance) Small optimization to image reader to make finding the next/prev page faster.
- Changed: Search will no longer search against Chapter titles and Files by default. Instead, there is a new link in the search window to perform with those included. This should help users with larger libraries find their files faster.
- Changed: (Kavita+) Kavita+ scrobbling will now take AniList/Mal ids from External metadata (which is prefetched from Kavita+ for the external metadata) whenever possible. This can help with matching when there are no weblinks.
- Changed: Updates dependencies which includes a fix for nav items in epub toc that are more loose.
- Changed: Added a few full-wdith characters for normalization: *!+
- Changed: All smart filters page now uses the same design as the flow from Customize modal.
- Changed: Disable the first remove button for weblinks/exclude pattern component as it isn't removable
- Changed: Updated ScanFolder to be more aggressive in finding the underlying series by also checking against a partial match on lowest folder path to find a series. This should result in less work for well structured libraries.
- Changed: (Performance) Cleaned up some extra db calls that aren't needed in the OPDS apis.
- Changed: Reading Lists in both OPDS/UI now have the underlying issue's summary.
- Changed: Smart Filter OPDS feeds are now smart-filters/{id} instead of smart-filter/{id}
- Changed: Updated the cover generation logic to handle webtoons better. The new code will now check if the image scales well or not and if not, use a more attention focused scaling/cropping method. (Thanks @arition for the initial PR)
- Changed: For OPDS Reading Lists, when there is only one underlyin...
v0.8.1 - A bit more than a Hotfix
This is just a bit more than a hotfix, but mainly focused on some polish after more users got their hands on the v0.8 along with the updated Image library. From the community support, v0.8 looks to have gone off really well with only a few users reporting minor data loss. Thanks to everyone joining support and bringing up edge cases that were missed.
I would also like to remind users that you can upvote and comment (or create your own) feature requests on out Github Discussions page.
Added
- Added: Added SortOrderLocked field for upcoming ability to set it in the UI, allowing customization of sort order on Series Detail page. (This is not yet in the UI, just in the DB and code)
Changed
- Changed: Changed how often the 1 version out of date check occurs to be every 4-6 hours instead of 1-2 hours.
- Changed: Allow jumpbar to function on pages as long as there is no custom sort
- Changed: When refusing OPDS download due to lack of role, use 403 Forbid.
- Changed: Don't show any of the internal information on publication status tooltip when the total items is set to 0 (or unset)
- Changed: Updated Comic Vine library when falling back to taking Series name from directory because no Volume tag exists, don't clean specials from the directory name.
Fixed
- Fixed: Fixed a bug where some series detail pages have a ton of extra space
- Fixed: Fixed a bug where series folders with nested specials would get a bad LowestSeriesFolder meaning series scans wouldn't do anything important.
- Fixed: Fixed a bug with default ordering failing when a series has a special
- Fixed: Fixed a bug where the very out of date modal wouldn't have the correct number of version out of date.
- Fixed: Fixed a bug where stacked image chapters wouldn't move all the files over to cache
- Fixed: Fixed an oversight where brightness control in manga reader wasn't applying to webtoon reader
- Fixed: Drastically sped up switching between card/list mode on series detail for large series
- Fixed: Fixed Continue -100000 when a series is read on series detail page
- Fixed: When parsing from fallback libraries, use comic parsing only for Comic/Comic Vine library types.
- Fixed: Fixed a bug where weblinks remove would not work well. Now it works more like you would assume.
- Fixed: Fixed a bug where active tab wouldn't default to volumes on comic libraries when there were no issues or specials.
- Fixed: Fixed a bug where progress bar on kavita+ metadata progress wasn't showing red.
- Fixed: Fixed a bug where on Chrome bootstrap sliders were blue and not the primary color.
- Fixed: Fixed a bug where chapters could duplicate due to some regions using ',' as a decimal separator. Now in Kavita, whenever we stringify any numbers, it will always choose English's way as that is how it was designed.
- Fixed: Fixed a case where non-English locales wouldn't parse floats correctly for x.x chapters.
- Fixed: Fixed an exception being thrown on startup for fresh users
API
- Deprecated series/chapter-metadata API in favor of just including the metadata with all chapter entities.
v0.8.0 - Comic & Collection Overhaul and PDF Settings Finally!
Have you ever thought to yourself that you'd like to switch the foundation of your house from slab to pier and beam? Well, that's essentially what I've done with this release, and not only that, I had to do it without a single picture falling off the walls. This release comprises a whopping 48K lines of code added and 5.5K removed throughout 400 files.
In order for me to achieve my vision of Kavita being the best software out there for reading, sometimes sacrifices have to be made. When I started building Kavita, I had never thought of what it would be today nor the part it would take in my life. It was simply a tool for me to consume and collect Manga since Ubooquity didn't have support for rich metadata. As users came along, so did the scope. Some features were added with limited knowledge, like comics, and that lack of knowledge in the beginning became a problem for heavy comic collectors. In order to build towards my vision of being the best, I had to rewrite large portions of how Kavita functions, work closely with the community, and deliver the best product I could. I want to first and foremost thank @DieselTech, who has been a key component in this. He has been pushing me relentlessly over the past year and has had a major hand in shaping the features, working with hardcore collectors from other servers (Mylar, Komga, and the CBL initiative).
Now, let's get into the meat and potatoes. What is new in this release?
Comic Overhaul
In order to support these hardcore users, Kavita needs to align with the tools already in the space, primarily Mylar and CBL. Mylar serves as the collection tool, aligning with Comic Vine for standards of naming and tagging, while CBL provides a rich repository of reading lists to make navigating comics easier. One of the most important differences between the old 'Comic' library and the new 'Comic Vine' library is that the Volume number is always the year and is used in the generation of the Series title. The new library type is strictly for those who abide by the rules laid out by Comic Vine and CBL. CBL works around these assumptions for linking up issues from many series into one reading list.
But that's not all. Comics are unique; they can have Issue Ω, which should be between Issues 8 and 9, or how about issue 18.HU? These are unique situations that didn't particularly go well with Kavita's number-based system. Through a feat of engineering, Kavita can now support these situations and, not only that, will soon allow the admins to actually change the sort order, a feature which, to my knowledge, no other software supports. This also means that Issue 0 (which can happen in Manga too) is now supported.
From the massive amount of testing, users have reported that this new library meets their needs perfectly. There are other small things, like Annual Series relationships, updates to CBL Import flows, etc., but the major points are above. This feature took 30K lines of code and 3 weeks of development for me to deliver to the testers (plus 2 weeks more of testing).
Collection Overhaul
While we are on the topic of reworking major code, let's talk about collections. When I first coded these, I made a really bad call and tied them with Series (so a series belongs to a collection), but as I started working on new collection-related features, I realized how bad of a call this was. I needed collections to be user-based, like want-to-read or reading lists. While this isn't really needed now, it will be with a future update.
So, yet again, I had to plan on how to migrate user data to the new collections without data loss and rework a ton of code. These new collections are user-based, and through a new Role, non-admins can even promote their own collections and share them with the server. While I was in there, I also made bulk promote/demote easier. Another easy 5K lines of code added and just over 1K removed.
Misc
Finally, the large, foundational features are over, and we can talk about some of the smaller things, like finally adding PDF settings a year after adding a PDF reader. Yikes. That's right, I finally got around to it and added PDF settings, along with also adding tap-to-paginate to the PDF reader.
Another area that has been receiving attention is Themes. Kavita saw an influx of new themes recently (and a few bug fixes too). Quite a few users are using these themes, and they look pretty good. Check them out on our Theme Repo. It's really easy to build your own, so if you have an interest, I highly encourage you to give it a go.
Another thing you might have noticed is Kavita+ enhancements. Quite a few small things were updated, but the most important is that Kavita+ will now auto-fetch data when you add new series and slowly work in the background to fetch external metadata. I have more planned around reporting on the data and managing bad matches against Kavita+, especially as I am still planning on basic metadata fetching, but I have found that this drastically improves load times on new series and makes the experience much better.
Lastly, I mentioned this last release, but Diesel has been hard at work on a complete revamp of the wiki. As of v0.8, we have moved over to the new wiki. Older installs wiki links will no longer work. Thanks again to @DieselTech for yet another monumental add to Kavita.
Important
-
Important! Once you update to this release there are manually steps needed! You MUST perform a forced library scan on all libraries to migrate properly to the new foundation. Failure to do so may result in data loss.
-
This is a massive update, all progress data will be exported on the first run to config/progress_export.csv. The migrations may take up to 10 minutes to migrate. Do not stop midway, you will break your db and need to restore from a backup.
-
Kavita+ users: As mentioned last release, you are expected to stay up to date - 2 releases. Old Kavita+ APIs will be shutdown shortly after v0.8. You can update to v0.7.14 as the minimum.
-
The default emailer was supposed to be turned off last release. I held it longer to give time. The emailer will be turned off after the v0.8 release.
-
This is a MASSIVE update, some data loss can be expected. I spent weeks trying to minimize any data loss and have provided an export. I apologize ahead of time if any occurs. If you are running into issues, do not hesitate to reach out to support on discord.
Added
- Added: Added a new library type aimed at Light Novels. This will use card list layout by default (overriding user preferences) and is eligible for Kavita+ metadata/scrobbling. The regular book library no longer is Kavita+ eligible.
- Added: Added a label on Library settings modal to help admins know which libraries are eligible for Kavita+ scrobbling/metadata pull.
- Added: (Kavita+) Implemented a background prefetch task that will slowly refresh series from Kavita+ (reviews, recs, ratings).
- Added: (Kavita+) Kavita will now prefetch data from Kavita+ on new series. This and the prefetch background task is limited to 50 series per 12 hours. Loading on-demand will still work as normal and is not restricted.
- Added: Chapters now sort by SortOrder. SortOrder is generated from chapter number, but can be overridden (in a future update). This allows for custom sorting for issues that aren't purely numerical. SortOrder will handle cases like 19, 19.HU, 19.BD, 20 without any user intervention.
- Added: You can now have Chapter 0, -1, etc.
- Added: This fully supports chapters with non-numeric issue numbers, like Alpha, 19.HU, etc.
- Added: Added a new library type: Comic Vine which is aimed at users of Mylar or have well tagged libraries following Comic Vine. This library works different and can support multiple folders with the same series parallel to library root.
- Added: New Series Relationship of Annual.
- Added: Imprints are now read from ComicInfo, will display on the UI and can be filtered.
- Added: (Scanner) Added a new LowestFolderPath. This is the lowest path that contains all the series files and is used by ScanFolder/Series to avoid extra work.
- Added: Added support for Locations and Teams, including the filtering for them
- Added: There is a one-time progress export to config/progress_export.csv in case of data loss.
- Added: Added Sort order to be visible on chapter detail drawer.
- Added: (Kavita+) Added Mal Username/ClientId integration into Kavita for upcoming Kavita+ integrations.
- Added: Added the ability to view (your) or all users (if admin) progress for that given chapter via the chapter detail drawer.
- Added: (Kavita+) Added a pie chart to Server Stats that shows how many eligible series have metadata fetched from Kavita+. This pairs well with the background job that fills out your server over time. (This will be expanded upon in a future update)
- Added: (Parser) Added parser support for Thai language volume and chapters (Thanks @gozilla-paradise)
- Added: Finally added PDF Reader Settings
- Added: (PDF Reader) Added tap to paginate to the pdf reader.
- Added: Collections can now be created by non-admins
- Added: Collections can now be promoted by non-admins (given they have the Promote role).
- Added: Added bulk flows for Promotion and Deletion. If you select cards that are not owned by you, nothing will happen to those cards.
- Added: OPDS feeds will now send description information when applicable for underlying volume/chapters.
Changed
- Changed: (Kavita+) Removed Book library from Scrobbling/Metadata pull. Books being in Google Books was far and few in-between. This is a temporary solution until Hardcover support is implemented, which has good Book (and some Comic) support. If you have light novels, change to the LN library type. The scanner works the same.
- Changed: Allow users to send files to their devices without having host name set for Email settings
- Changed: (Theme) sid...
v0.7.14 - iOS Webtoon Fixes, Built-in Email, and a new Wiki!
A small on the surface, large under the hood release for everyone. This release first off fixes the webtoon reader for our iOS users. Many have validated and want to thank the community for helping me test and @Thundernerd for doing some basic POC to help me drive it home. In addition to this, Want to Read had a critical bug in the architecture (that somehow slipped noticed for over a year now) where if one user adds a series to want to read, then another does, it will override the other. And lastly, for Kavita+ users, this is foundational release for the upcoming Basic Metadata feature. All data, like reviews, recommendations, and ratings are now stored in your DB. This leads to very quick response times and sets up the system for future data synchronization.
Another big feature in this release is KavitaEmail is no longer required for those that want to use email (and me hosting an email service for everyone is no more). All email settings are built into the application and this has allowed me to streamline how Kavita works around email. Before, it was a mess of having to call an external system, check if the system was accessible externally, etc. Now, you MUST setup a host name (reverse proxy domain) and the email settings to use any email functionality. Due to this, all the flows got polished and should be much more consistent for users.
Lastly, while it looks so small, it was over 3K lines of code, but volume numbers are now float-based, meaning if a volume is < 1, it will now properly show on book library series detail page. In addition to this, Omnibus (Volume 1-2) is now much better supported and Kavita+ will get Volume 2 when you read an Omnibus vs Volume 1 previously.
That wraps the v0.7.x series of releases. Next release series (v0.8.x) will be focusing mainly on the new Magazine library type, PDF parsing enhancements, and likely the new comic library.
New Wiki
Lastly I want to call out a massive thanks to @DieselTech who has been leading a redesign of our wiki. Safe to say, at least 100 hours have been poured into re-organizing and updating a ton of the content from our old wiki into a brand new system. It looks slick and should be much easier to understand and search against. While we aren't yet ready to roll out, be on the look out next release for the full release. For those that want a sneak peak, you can check it out here.
Old Email Service
As mentioned, this release contains built-in email functionality. The old emailer will remain on for 1 week after this release to give time for people to update. If you are stuck on an old version, please reach out so we can help understand why and get you updated.
Kavita+
Kavita+ is designed to work with the latest - 2 releases. If you are further than that out of date, it may no longer work appropriately. It is important to stay up to date.
Added
- Added: Added limited parsing support for c01-c04. Normally, c01-04 is used.
- Added: Admins can now write custom cron notation for Scans, Backup, and Cleanup tasks. Cleanup cannot be disabled as it is required for Kavita to function smoothly. Ideal to always leave at midnight.
- Added: (Kavita+) New filter for Average Rating. This will allow you to filter on series that have an external average rating. Note: This only applies to series that have metadata pulled down from Kavita+.
- Added: (Kavita+) Kavita will now store Kavita+ external ratings, reviews, and recommendations in your Database. This will increase performance and lays the foundation for the upcoming basic metadata from Kavita+. Data is refreshed ad-hoc after 2 weeks and cached in memory for 48 hours.
- Added: (Kavita+) New button in Edit Series modal that allows the series to be invalidated (or removed from blocklist) and force refresh from Kavita+ on next series detail page view.
- Added: (Kavita+) User's can now see error messages and a different icon on Scrobbling History when a series fails to scrobble.
- Added: (Kavita+) Sort by Average Rating
- Added: Added a new role that makes a user account read only. This means they cannot change anything themselves (Age Restriction, Email, Password, Forgot Password, API Key). This is not intended for users to use, but for the demo instance.
- Added: Added a popup that will tell users that are over 3 releases behind to update.
- Added: New setting in Email settings to let you use Customized Template files. If this is true, Kavita will pick templates from config/templates rather than internal storage. Fallback is available. You then own the onset to stay up to date with email template changes.
- Added: Added back the ability to delete your own review
- Added: Added the ability to delete collection tags via actionables on collection detail page.
- Added: Added buttons that allows users to quickly autofill gmail/outlook email settings
- Added: Added the changelog to the Admin System tab (in case users don't see it in the announcements page).
Changed
- Changed: (Kavita+) Changed how Series Detail api works to drastically reduce memory needs
- Changed: (Kavita+) Removed Bust Kavita+ cache button from Admin -> Tasks screen as it's no longer needed.
- Changed: (Kavita+) Series that don't match against Kavita+ will now be stored in a table and not be retried again.
- Changed: (Kavita+) When scrobbling, check if a series is blacklisted or not before trying. When an unknown series comes back, add it to the blacklist (so we don't waste time trying when it will never match)
- Changed: Updated system tab with a link to localization and new feature request site
- Changed: Massive refactor to change how Volume numbers are represented within Kavita to support volumes that are < 1 on the UI. This means 0.5 books will now work going forward.
- Changed: Lots of autocomplete hints added to help password managers and browsers autofill login/registration/passwords.
- Changed: Adjusted OPDS-PS lastReadDate to adhere to ISO 8061 as per the spec and what Panels expects for proper sync.
- Changed: Supressed image requests on the logs as they are quite noisy
- Changed: Hostname setting is in general admin settings as well as email, as it's not 100% tied to email functionality
- Changed: Kavita will now confirm before you delete a device
- Changed: Email is now baked into Kavita. If email is not setup then all flows will now just work. The extra security measures will only work with email being setup (and HostName set). Kavita will no longer try to identify if the server is accessible externally. You will have to set HostName and setup the emailer going forward.
- Changed: Series detail title (series title) now shows a loading indicator showcasing all the important apis that are loading
- Changed: If Kavita+ license check throws an exception, just assume license is invalid and let the scheduled task check again (or the user manually)
- Changed: Changelog now shows if you're on a nightly and which stable it's based off.
- Changed: Split the main email template into base.html and fixed some bad closing tags. This should make customizing email templates easier.
- Changed: Removed the up/down arrow keys on webtoon reader moving full pages. Use up/down for scroll and space for a bit at a time.
- Changed: Updated the Kavita templates to be more modern (in terms of the code) and easier to customize.
Fixed
- Fixed: Fixed UI not being able to render search for non-admin users
- Fixed: Remove from On Deck wasn't refreshing the dashboard
- Fixed: Fixed up the display and logic around when there is a series collision, to help the user understand more
- Fixed: Fixed a bug where the UI filter could send out of date information to the backend which threw an error.
- Fixed: (Kavita+) Fixed a bug where external reviews would show as local
- Fixed: Fixed webtoon reader being unusable on iOS (Thanks @Thundernerd for the help)
- Fixed: Series detail page was making a ton of api calls that weren't needed.
- Fixed: Fixed a bug where scrobbling tab could duplicate
- Fixed: Fixed a bunch of warnings about ordering and take with search queries
- Fixed: Want to Read had a critical issue where a user could undo your want to read.
- Fixed: Fixed bulk select of chapters leaving the last one off.
- Fixed: On non-authenticated flows, the nav bar will no longer flash on refresh.
- Fixed: Fixed inability to right click highlighted text in the book reader
- Fixed: Fixed reading activity graphic not taking the full width like it should
- Fixed: Fixed some spacing on the Continue/Read button on reading list page
- Fixed: Fixed an issue where download indicators on cards would should on different series
- Fixed: Don't have validations on the login screen
- Fixed: Support for the 'pageNumber' parameter in OPDS API smart-filter/{Id}. (Thanks @charles7668 )
- Fixed: Fixed and polished a lot of the email flows.
- Fixed: Fixed a bug where send to device didn't properly send the correct end event
- Fixed: LSIO dockers weren't properly recognized as Docker, Kavita now checks for LSIO_FIRST_PARTY environment variable
- Fixed: Fixed an issue with // being generated for some invite links (
- Fixed: Fixed an issue where a new library could render as blank in the UI
- Fixed: Fixed an issue when creating a new library, that new library wouldn't be included in folder watching
- Fixed: Fixed a bad encoding of dates for lastReadDate on OPDS-PS streams. Panels has already updated implemenation to help progress sync work more smoothly.
- Fixed: Fixed a bug where non Kavita+ users wouldn't see reviews.
- Fixed: Handled a rare case where a cover image wouldn't exist when creating a merged image for a reading list/collection.
- Fixed: Fixed a bad comparison on code that pushes update notification users to admins.
- Fixed: Fixed an issue where continue point for a totally unread series would start on the special and not chapter ...
v0.7.13 - Downloading Improvments
A quick and small update for you all with a focus on Kavita+ and a regression that appeared from NetVips, which is responsible for generating cover images, causing black and white covers.
A word to all Kavita+ users, many of you have user's with AniList tokens that have expired. Your users need to go to User settings > Account
and generate a new one to continue scrobbling. Also don't forget to register your discord user id and gain access to the exclusive channels. We have been sharing some of the progress on the big items and I would love more feedback.
We have over 10K active installs on old versions. If you're running Kavita, please update! You're missing out on the good stuff.
Make sure you know that the docker repo has CHANGED.
New repo here: https://hub.docker.com/r/jvmilazz0/kavita - You just need to switch your image to jvmilazz0/kavita:latest
If you are on 0.7.6+ you can update directly to 0.7.13 otherwise you need to update incrementally to prevent data loss (v0.5.6 > v0.7.1.4 > v0.7.3.1 > v0.7.6 > v0.7.13)
Added
- Added: Added the ability to delete a library from side nav menu
- Added: (Kavita+) Kavita now alerts the user on visiting their homepage that their AniList token needs rotating to continue scrobbling
Changed
- Changed: (Kavita+) Kavita will now clear out existing, non-processed scrobbling events when a Series is put on hold.
- Changed: Lots of dependency updates
- Changed: Downloading a Volume (consisting of multiple chapter archives) or a Full Series will not auto extract and re-zip for you.
- Changed: Enhanced the messaging around events widget for downloading/preparing a download.
- Changed: Min length for a user review is now only 5 characters
- Changed: Downloads will download as cbz
- Changed: Under User settings > Account tab, Email and AniList token will now inform user if the email is not validated or if AniList token needs to be regenerated (as they expire every few months)
- Changed: (Kavita+) Kavita will quit faster during scrobbling events whenever rate limit is hit or token is expired.
- Changed: (Kavita+) Switched Kavita to use a new dedicated API to allow data to load on the screen faster and all at once leading to less page shift.
- Changed: (Kavita+) If a license is still on disk, but the subscription is not active, Kavita will not schedule Kavita+ tasks at all.
- Changed: Streamlined some code around downloading for upcoming enhancements
- Changed: Updated dependencies, including NetVips for some regressions around cover generation.
- Changed: Major improvement to messaging when a series collides with another series in a parallel folder to library root. Explicitly give more information.
- Changed: Localization files now have cache busting to help on new releases not reflecting all keys
- Changed: Removed XFrameOptions and replaced with AllowIFraming as true/false. This will control multiple headers for Organizer
- Changed: Shortened the time in which Kavita will check for an update an inform user. Originally 5-6 hours, now 1-2. We have over 10k users on old installs that haven't updated.
Fixed
- Fixed: On non-authenticated flows, the nav bar will no longer flash on refresh.
- Fixed: Fixed inablity to right click highlighted text in the book reader
- Fixed: Fixed reading activity graphic not taking the full width like it should
- Fixed: Fixed some spacing on the Continue/Read button on reading list page
- Fixed: Fixed an issue where download indicators on cards would should on different series
- Fixed: Don't have validations on the login screen
- Fixed: Fixed More in Genre not using a localized string for title
- Fixed: When a series updates to completed and there was a next estimated chapter card, make sure it gets cleared.
- Fixed: Fixed bookmarks having + in the filename when not needed
- Fixed: Fixed bookmarks not showing the download indicator
- Fixed: Fixed bookmarks not showing page count in card
- Fixed: Fixed a bad localization string for chapter actions from within the card detail drawer
- Fixed: Restore PDF layout menu (Thanks @tjarls)
- Fixed: Fixed an issue where tab could flash on user preferences due to some delay waiting for a license check.
- Fixed: Ensure only admins can see files when searching
- Fixed: Fixed a bug where Edit Series Modal made it look like the language tag was set, but it wasn't
v0.7.12 - Happy New Year
Happy New Year! A new year and a new set of plans for the year. I wanted to get this first release out quickly so I can share my plans as I'm bursting with excitement. The release is pretty small and mainly focused on bugs I found during my holiday. With that out of the way, let's talk about Kavita this year.
Process Change
First off, I will be changing how feature requests are handled. Going forward, Kavita will solely use Github Discussions for feature requests. Normal support will be done still via Issues and Discord and bugs of course via Issues. I tried many different things over the last 3 years. Given the scope of the application, I need something a bit more robust. The current feature site, while is nice, doesn't send alerts to users, leaving me without a means to communicate when I'm actually ready to start a feature. Discord is just too chaotic and we lack visibility. All feature requests over 10 votes have been migrated over to Discussions already. Please go visit and engage so we can drive some of these home.
Next, let's talk about shaping features. Once a feature is on discussions and I agree, I will be taking this feature to my Kavita+ discord users to help shape the feature into the final solution. I usually rely on a few users for advice, but going forward, Kavita+ users (which many would consider power users) will have a strong say in shaping features going forward. Feedback is always welcome from non-Kavita+ users, but I want to utilize power users to drive features going forward. You can go to Kavita+ tab to link your Discord User Id with your Kavita+ license, which will grant you access to the hidden channels.
Lastly, the subreddit will be shutdown this year. I no longer use Reddit and unfortunately have to keep it as the subreddit needs questions answered. I hope you all can respect my decision and can migrate to discord for future discussions/support.
Website/Wiki
The website is drastically out of date and quite bad. Originally I copied it from Lidarr, which I was one of the original developers, and meant to update it to a new look and feel, but never got around to it. This is finally the year to take action. A new design and stack has already been chosen and @therobbiedavis is taking lead on driving the effort.
In addition to the new website, I will be creating a blog. I need a centralized place to post updates that may not be tied to a release (like this post). The new website will host the blog and I will post releases there as well.
The wiki is also in need of some love. It's quite difficult keeping it up to date myself. @DieselTech and @ThePromidius have helped a ton in that regard to updating, but we are in need of a deep redesign of the information and a new technology to allow better searching. We are investigating new software and are planning a complete revamp over this year. If anyone is knowledgeable about Kavita and wants to contribute, please reach out in discord.
The Features
Kavita+
I have a few key features for Kavita+ that I want to test and if successful, deliver to you all. The first up is Metadata. Komf is a great tool that already exists, but some users want something a bit simpler and that is where Kavita+ comes in. When I first started Kavita, I always had the goal of metadata integration but soon I learned how disjointed everything is and it seemed like adding it would become a full time job instead of letting me build out Kavita. As Kavita+ already has metadata from AniList, I see an opportunity to trial metadata integration.
At the end of 2023, Robbie mentioned to me Hardcover, a potential integration point for Kavita+ that has similar features as AniList -- reviews, ratings, scrobblings, and metadata for books (and some limited comics). After speaking with their development team, this seems feasible to build out. I will be doing a deep dive later this year to bring these features into Kavita+. This also means if metadata support is built out, it will benefit from Hardcover.
Lastly, as mentioned above, Kavita+ users will become critical to shaping and expanding on community ideas once accepted. Link your discord user id via Kavita and you will be granted access into the hidden channels to participate in defining the scope of an idea and provide feedback post implementation before it ships to stable users.
PDF as many of you know has always been Kavita's weakest point. PDFs have no tools existing for metadata, have the worst and most inconsistent naming patterns out there and overall have just not been a good fit within Kavita. I want to change that this year. First off I want to polish the reader. I've been using a reader that doesn't have many hooks nor does it have the ability to save the reading preferences. I had originally opened an issue for information on how people use Kavita, but the comments were underwhelming. I will be looking to my Kavita+ users to help shape this feature and deliver a good experience.
Many users also collect magazines and I think it's high time a separate library type with different parsing is built out. Like I did with the image library last year, I will be adding a new library type explicitly for Magazines with a limited set of metadata and some UI differences. PDF parsing overall will be updated to be more robust and work better overall.
Comics
Comics are quite complicated and work differently than I had thought when users asked me many years to add comic support. This year I will be trialing a new library type that mimics ComicVine's format, which is the standard for Mylar and comics in general. As is the theme, my Kavita+ users, including @DieselTech will be helping me drive the end solution.
Kobo Sync
The last major feature is Kobo sync. I bought a Kobo and am excited to reverse engineer the protocol to allow native sync with Kavita, much like calibre-web has. Originally this was planned as a Kavita+ feature, but after looking more into it, Kavita can service it without problem.
There are more items on my list as well, but let's leave a bit to surprise. I'm sure everyone can tell these are huge items with that will take tons of time. I'm really excited for this year and what I can achieve.
Remember to use the new Docker Central Repo!
Added
- Added: (Kavita+) Added the ability to view the provider of a recommendation on the card itself and in the preview drawer.
- Added: (Kavita+) Added the ability to reset your Kavita+ license key without having to reach out to me.
- Added: (Kavita+) Added the ability to add your Discord UserId during Kavita+ license registration which will grant access to hidden channels for feature curtailing.
Changed
- Changed: When opening up an external series review, show the source of the review.
- Changed: Streamlined the design slightly for a user's personal review
- Changed: There is now inline form validation on the User Review Modal
- Changed: Removed the tagline from user/external reviews.
- Changed: (Scanner) When a series has a single special and a total count of 1 or less, assume it's completed
- Changed: Lots of love around the messaging when interacting with users that do not use real emails.
- Changed: Enhanced the messaging around users without valid emails interacting with change email flow.
- Changed: Validation messaging added on change username flow, including showing the valid characters.
- Changed: Don't log apikey in logs
- Changed: Updated the donate link to point to a wiki explaining the donation options and that Kavita+ is the only way to remove the donate button.
Fixed
- Fixed: Fixed a bug where user reviews wouldn't be rendered on the UI if they didn't have a tagline, even though it's optional.
- Fixed: Ensure my own review orders in front of other local user reviews
- Fixed: When a user resets the API key, tell connected clients to refresh their account details
- Fixed: Moved bulk operations bar back to the top of the page where it belongs on series detail
- Fixed: When using back on side nav after having a filter applied, clear the filter.
- Fixed: Cleaned up the error handling around Kavita+ registering of a license.
- Fixed: Fix the issue of an extra space appearing after the end of the series detail page. (Thanks @charles7668 )
- Fixed: Fixed a bug with email link generation when using a base url, where too many characters could be trimmed (Thanks @charles7668 )
- Fixed: Change username wouldn't update the correct field which was used in login flow
- Fixed: Fixed a bug where when filtering was disabled (reading list page), the jumpbar also got disabled.
- Fixed: Fixed a bug where library watching was trying to be turned on before we had saved the new value from server settings.
- Fixed: Fixed a bug where the check email button success message was missing a space before the version number.
- Fixed: Fixed a delay in the UI after a bookmark is created/deleted (Thanks @charles7668 )
- Fixed: Fixed webtoon mode not allowing bookmarking (Thanks @charles7668 )
- Fixed: Fixed a config issue where not all of Weblate's language codes would show up
Removed
- Removed: (Kavita+) Removed the ability to scrobble reviews as the conditions are strict and doesn't make much sense to do it from Kavita.