[
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0.7",
    "UpdateBody": "\u003Cp\u003EThis is a massive update to our Scrobble system and a major expansion into providers, by adding 2 new ones: Hardcover (Traditional Books) and MangaBaka (Manga, Light Novels, etc). We\u0027ve reworked the code from scratch to bring a much better experience, from rate limit tweaks, to allowing backfilling per-provider unlimited times, to the ability to build rules to trigger states for scrobble.\u003C/p\u003E\n\u003Cp\u003EWe will be taking a break from delivering overhauls to realign the UX and polish these recent additions. Please help by testing and providing feedback, both positive and constructive.\u003C/p\u003E\n\u003Cimg width=\u00221624\u0022 height=\u0022814\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/8d302034-7cc0-4aa6-80a7-d5ab3e87ae8b\u0022 /\u003E\n\u003Cimg width=\u00221612\u0022 height=\u0022846\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/a394f31b-2701-44d4-866c-db13950cd271\u0022 /\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added Mangabaka as scrobble provider\u003C/li\u003E\n\u003Cli\u003EAdded: Added Hardcover as scrobble provider\u003C/li\u003E\n\u003Cli\u003EAdded: Added per provider settings (library, age ratings, scrobble progress/ratings/reviews, etc))\u003C/li\u003E\n\u003Cli\u003EAdded: Added inactive \u0026amp; on hold rules (Auto transition series/books from reading to on hold after x days) (Closes #2447)\u003C/li\u003E\n\u003Cli\u003EAdded: Scrobble Providers can now show information, like username.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Improved AniList scrobble speed drastically\u003C/li\u003E\n\u003Cli\u003EChanged: Scrobble keybind now opens my activity instead\u003C/li\u003E\n\u003Cli\u003EChanged: Users can now run backfilling of history per provider as many times as they want. Kavita will slowly churn thru it all (note: Re-running multiple times will drastically inflate queue for no reason).\u003C/li\u003E\n\u003Cli\u003EChanged: (UX) Complete UX overhaul of Scrobble providers (now found under Kavita\u002B \u0026gt; Connections )\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed up token expired warning showing too often (Fixes #4728, Fixes #4720)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed being unable to reset external ids (Fixes #4719)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed getting stuck in a loop if OIDC config is removed while previously being logged in with OIDC\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed scrobble events getting marked as processed when hitting the rate limit under some circumstances\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Rereading a chapter then moving to the next wouldn\u0027t reset the page to 0\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003ECloses #4710, Closes #4733, Closes #3685\u003C/p\u003E\n",
    "UpdateTitle": "Nightly Release 0.9.0.7 - Scrobble Provider Rework",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/pull/4733",
    "IsDocker": true,
    "IsPrerelease": true,
    "PublishDate": "2026-06-05T21:45:36Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": true,
    "IsReleaseEqual": false,
    "Added": [
      "Added Mangabaka as scrobble provider",
      "Added Hardcover as scrobble provider",
      "Added per provider settings (library, age ratings, scrobble progress/ratings/reviews, etc))",
      "Added inactive \u0026 on hold rules (Auto transition series/books from reading to on hold after x days) (Closes #2447)",
      "Scrobble Providers can now show information, like username."
    ],
    "Removed": [],
    "Changed": [
      "Improved AniList scrobble speed drastically",
      "Scrobble keybind now opens my activity instead",
      "Users can now run backfilling of history per provider as many times as they want. Kavita will slowly churn thru it all (note: Re-running multiple times will drastically inflate queue for no reason).",
      "(UX) Complete UX overhaul of Scrobble providers (now found under Kavita\u002B \u003E Connections )"
    ],
    "Fixed": [
      "Fixed up token expired warning showing too often (Fixes #4728, Fixes #4720)",
      "Fixed being unable to reset external ids (Fixes #4719)",
      "Fixed getting stuck in a loop if OIDC config is removed while previously being logged in with OIDC",
      "Fixed scrobble events getting marked as processed when hitting the rate limit under some circumstances",
      "Fixed a bug where Rereading a chapter then moving to the next wouldn\u0027t reset the page to 0"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EThis is a massive update to our Scrobble system and a major expansion into providers, by adding 2 new ones: Hardcover (Traditional Books) and MangaBaka (Manga, Light Novels, etc). We\u0027ve reworked the code from scratch to bring a much better experience, from rate limit tweaks, to allowing backfilling per-provider unlimited times, to the ability to build rules to trigger states for scrobble.\u003C/p\u003E\n\u003Cp\u003EWe will be taking a break from delivering overhauls to realign the UX and polish these recent additions. Please help by testing and providing feedback, both positive and constructive.\u003C/p\u003E\n\u003Cimg width=\u00221624\u0022 height=\u0022814\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/8d302034-7cc0-4aa6-80a7-d5ab3e87ae8b\u0022 /\u003E\n\u003Cimg width=\u00221612\u0022 height=\u0022846\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/a394f31b-2701-44d4-866c-db13950cd271\u0022 /\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0.6",
    "UpdateBody": "\u003Cimg width=\u00221880\u0022 height=\u0022653\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/203bc8bf-a4c2-49c0-ae74-03d86de5d4fb\u0022 /\u003E\n\u003Cimg width=\u00221876\u0022 height=\u0022817\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/f62d4b8e-6660-4aca-8b5a-fb98b38b45e9\u0022 /\u003E\n\u003Cimg width=\u00221852\u0022 height=\u0022794\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/d13674e9-28e3-430c-8322-3b131d572018\u0022 /\u003E\n\u003Cp\u003EThis is another massive rework to Kavita/Kavita\u002B around the first setup to understanding the impact and status of Kavita\u002B. The main focus is on expanded availablility of information for licensed servers, helping users understand what Kavita\u002B is, and streamlining and polishing the registration/management points.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote:  The discord button is not implemented and some providers are not fully realized. This will come later.\u003C/strong\u003E\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added an upsell page that explains what Kavita\u002B is, so users are more informed, rather than linking to the wiki\u003C/li\u003E\n\u003Cli\u003EAdded: Added a status page to services that Kavita\u002B relies on, to surface incidents (like AL going down and scrobbling not working)\u003C/li\u003E\n\u003Cli\u003EAdded: Added stats about what Kavita\u002B is doing and how many calls your license has made (note: Not all data will be present, existing data is mixy)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Complete overhaul to the Kavita\u002B license page. New design have an upsell feel (from the main site) that explains what Kavita\u002B is.\u003C/li\u003E\n\u003Cli\u003EChanged: When editing the license, the email is auto-filled for you\u003C/li\u003E\n\u003Cli\u003EChanged: Expanded how much information we log out in the Kavita\u002B Audit pages (develop)\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita\u002B Audit will now track Metadata Sync trigger (Manual, on file Add, Background Sync)\u003C/li\u003E\n\u003Cli\u003EChanged: Lots of polish added to the Match screen and made all the screens much nicer on mobile (develop)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed incorrect native/docker wiki links (Fixes #4704)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed incorrect setup link (Fixes #4702)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed my activity throwing an exception when no K\u002B license. (develop)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed CBL Upload restriction and reworked the hardening of how file upload validation checks are done. Ensure we log out when we reject and why.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up/down not responding to keypresses (Fixes #4697)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EDeveloper\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EReworked the cover chooser logic so that everything is streamlined via a file upload rather than base64 nonsense (bloated images). Base64 still exists for a non-breaking API, but Kavita will upload a file via upload/upload-by-file which scopes to a temp directory and returns a filename to pass going forward.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003E#4709\u003C/p\u003E\n",
    "UpdateTitle": "Nightly Release 0.9.0.6 - Feature/kavita\u002B license",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/pull/4731",
    "IsDocker": true,
    "IsPrerelease": true,
    "PublishDate": "2026-05-31T14:58:33Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": true,
    "IsReleaseEqual": false,
    "Added": [
      "Added an upsell page that explains what Kavita\u002B is, so users are more informed, rather than linking to the wiki",
      "Added a status page to services that Kavita\u002B relies on, to surface incidents (like AL going down and scrobbling not working)",
      "Added stats about what Kavita\u002B is doing and how many calls your license has made (note: Not all data will be present, existing data is mixy)"
    ],
    "Removed": [],
    "Changed": [
      "Complete overhaul to the Kavita\u002B license page. New design have an upsell feel (from the main site) that explains what Kavita\u002B is.",
      "When editing the license, the email is auto-filled for you",
      "Expanded how much information we log out in the Kavita\u002B Audit pages (develop)",
      "Kavita\u002B Audit will now track Metadata Sync trigger (Manual, on file Add, Background Sync)",
      "Lots of polish added to the Match screen and made all the screens much nicer on mobile (develop)"
    ],
    "Fixed": [
      "Fixed incorrect native/docker wiki links (Fixes #4704)",
      "Fixed incorrect setup link (Fixes #4702)",
      "Fixed my activity throwing an exception when no K\u002B license. (develop)",
      "Fixed CBL Upload restriction and reworked the hardening of how file upload validation checks are done. Ensure we log out when we reject and why.",
      "Fixed up/down not responding to keypresses (Fixes #4697)"
    ],
    "Theme": [],
    "Developer": [
      "Reworked the cover chooser logic so that everything is streamlined via a file upload rather than base64 nonsense (bloated images). Base64 still exists for a non-breaking API, but Kavita will upload a file via upload/upload-by-file which scopes to a temp directory and returns a filename to pass going forward."
    ],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cimg width=\u00221880\u0022 height=\u0022653\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/203bc8bf-a4c2-49c0-ae74-03d86de5d4fb\u0022 /\u003E\n\u003Cimg width=\u00221876\u0022 height=\u0022817\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/f62d4b8e-6660-4aca-8b5a-fb98b38b45e9\u0022 /\u003E\n\u003Cimg width=\u00221852\u0022 height=\u0022794\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/d13674e9-28e3-430c-8322-3b131d572018\u0022 /\u003E\n\u003Cp\u003EThis is another massive rework to Kavita/Kavita\u002B around the first setup to understanding the impact and status of Kavita\u002B. The main focus is on expanded availablility of information for licensed servers, helping users understand what Kavita\u002B is, and streamlining and polishing the registration/management points.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote:  The discord button is not implemented and some providers are not fully realized. This will come later.\u003C/strong\u003E\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0.5",
    "UpdateBody": "\u003Cimg width=\u00221150\u0022 height=\u0022551\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/dfb1fcb3-9502-4b3c-89d5-1ac823a7f0c3\u0022 /\u003E\n\u003Cp\u003ENote: Although you see Hardcover, it is not enabled yet in Kavita. This will come later.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Kavita\u002B Match can now accept direct ids via anilist:1234 in addition to existing urls.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Massive UX refresh to the Match modal for Kavita\u002B to surface tips on how to search. (Closes #4725)\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "Nightly Release 0.9.0.5 - Kavita\u002B Match UX Refresh",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/pull/4727",
    "IsDocker": true,
    "IsPrerelease": true,
    "PublishDate": "2026-05-27T16:42:40Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": true,
    "IsReleaseEqual": false,
    "Added": [
      "Kavita\u002B Match can now accept direct ids via anilist:1234 in addition to existing urls."
    ],
    "Removed": [],
    "Changed": [
      "Massive UX refresh to the Match modal for Kavita\u002B to surface tips on how to search. (Closes #4725)"
    ],
    "Fixed": [],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cimg width=\u00221150\u0022 height=\u0022551\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/dfb1fcb3-9502-4b3c-89d5-1ac823a7f0c3\u0022 /\u003E\n\u003Cp\u003ENote: Although you see Hardcover, it is not enabled yet in Kavita. This will come later.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0.4",
    "UpdateBody": "\u003Cimg width=\u00221860\u0022 height=\u0022743\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/563b5045-c954-4b9a-9206-1ceb81fa773d\u0022 /\u003E\n\u003Cimg width=\u00221656\u0022 height=\u0022755\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/fb372b91-0ef1-4472-8215-633c776b3ebb\u0022 /\u003E\n\u003Cimg width=\u00221113\u0022 height=\u0022751\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/ae3496e3-31eb-4854-8c2f-d84307f75881\u0022 /\u003E\n\u003Cp\u003EThis is the first piece of a lot of architectural changes to make the Kavita\u002B integration feel understandable. Since Kavita\u002B launched, the systems have been evolving, but understanding what is happening under the hood has been difficult. The pressure was added with both AniList and MAL having many downtime events and users wondering when metadata is matching, needs rematching, or why a scrobble event didn\u0027t post.\u003C/p\u003E\n\u003Cp\u003EI hope this Audit system helps shed light and I am open to feedback to ensure it addresses the needs.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added 3 new screens that help users understand what Kavita\u002B is doing around their series, their scrobbling, and for admins, the whole behind the scenes logic. (Closes #4705)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Scrobbling screen is likely going to be replaced by the new screens\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where marking a chapter as read wasn\u0027t triggering scrobbling.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where MAL was never getting a proper response for token expiration in the Account Screen\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where series detail page could refresh the cover when a chapter cover update event triggered.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003ENote: Relies on #4691\u003C/p\u003E\n",
    "UpdateTitle": "Nightly Release 0.9.0.4 - Kavita\u002B Audit Log",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/pull/4711",
    "IsDocker": true,
    "IsPrerelease": true,
    "PublishDate": "2026-05-21T13:09:15Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": true,
    "IsReleaseEqual": false,
    "Added": [
      "Added 3 new screens that help users understand what Kavita\u002B is doing around their series, their scrobbling, and for admins, the whole behind the scenes logic. (Closes #4705)"
    ],
    "Removed": [],
    "Changed": [
      "Scrobbling screen is likely going to be replaced by the new screens"
    ],
    "Fixed": [
      "Fixed a bug where marking a chapter as read wasn\u0027t triggering scrobbling.",
      "Fixed a bug where MAL was never getting a proper response for token expiration in the Account Screen",
      "Fixed a bug where series detail page could refresh the cover when a chapter cover update event triggered."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cimg width=\u00221860\u0022 height=\u0022743\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/563b5045-c954-4b9a-9206-1ceb81fa773d\u0022 /\u003E\n\u003Cimg width=\u00221656\u0022 height=\u0022755\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/fb372b91-0ef1-4472-8215-633c776b3ebb\u0022 /\u003E\n\u003Cimg width=\u00221113\u0022 height=\u0022751\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/ae3496e3-31eb-4854-8c2f-d84307f75881\u0022 /\u003E\n\u003Cp\u003EThis is the first piece of a lot of architectural changes to make the Kavita\u002B integration feel understandable. Since Kavita\u002B launched, the systems have been evolving, but understanding what is happening under the hood has been difficult. The pressure was added with both AniList and MAL having many downtime events and users wondering when metadata is matching, needs rematching, or why a scrobble event didn\u0027t post.\u003C/p\u003E\n\u003Cp\u003EI hope this Audit system helps shed light and I am open to feedback to ensure it addresses the needs.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0.3",
    "UpdateBody": "\u003Cimg width=\u00221127\u0022 height=\u0022773\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/ba3fe03a-880c-4c48-a348-25169f0afdc8\u0022 /\u003E\n\u003Cimg width=\u0022965\u0022 height=\u0022658\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/55b8c9ac-3781-4725-ac7a-2176214b3489\u0022 /\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Cover chooser will now present cover image choices from Kavita\u002B (powered by Hardcover, MangaBaka, and ComicBookRoundup).\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Redesigned Kavita\u0027s Cover Image chooser to use tabs for individual types of media (Current, Uploaded, Volume, Chapter, Kavita\u002B).  (Closes #3891) (Thanks @therobbiedavis for the great design)\u003C/li\u003E\n\u003Cli\u003EChanged: Moved the Reset cover image from a weird button into a dedicated button with clear labeling if the underlying cover was locked or not.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed up a case where entity title service would avoid having Volume X in some cases\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Chrome PWA not showing the install button (Thanks @Ansh2209 )\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "Nightly Release 0.9.0.3 - Cover Chooser Overhaul",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/pull/4691",
    "IsDocker": true,
    "IsPrerelease": true,
    "PublishDate": "2026-05-19T18:27:50Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": true,
    "IsReleaseEqual": false,
    "Added": [
      "(Kavita\u002B) Cover chooser will now present cover image choices from Kavita\u002B (powered by Hardcover, MangaBaka, and ComicBookRoundup)."
    ],
    "Removed": [],
    "Changed": [
      "Redesigned Kavita\u0027s Cover Image chooser to use tabs for individual types of media (Current, Uploaded, Volume, Chapter, Kavita\u002B).  (Closes #3891) (Thanks @therobbiedavis for the great design)",
      "Moved the Reset cover image from a weird button into a dedicated button with clear labeling if the underlying cover was locked or not."
    ],
    "Fixed": [
      "Fixed up a case where entity title service would avoid having Volume X in some cases",
      "Fixed Chrome PWA not showing the install button (Thanks @Ansh2209 )"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cimg width=\u00221127\u0022 height=\u0022773\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/ba3fe03a-880c-4c48-a348-25169f0afdc8\u0022 /\u003E\n\u003Cimg width=\u0022965\u0022 height=\u0022658\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/55b8c9ac-3781-4725-ac7a-2176214b3489\u0022 /\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0.2",
    "UpdateBody": "\u003Cp\u003E\u003Cstrong\u003EAll users are strongly advised to update immediately.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EThere has been a critical vulnerability discovered in Kavita. Please update your instances.\u003C/p\u003E\n\u003Cp\u003EAll versions prior to this release are impacted.\u003C/p\u003E\n\u003Cp\u003EIf 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.\u003C/p\u003E\n\u003Cp\u003EDetails/CVE will be shared at a later date to give users time to update.\u003C/p\u003E\n\u003Cp\u003EEdit: CVE Published: CVE-2026-47202\u003C/p\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: OIDC validation no longer requires super safe urls.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed reading list detail tab not having tabs wired up.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed series/chapter rating always returning 0 if you had rated it.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bookmarks not loading.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed text \u0026amp; image bookmarks being switched.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed long chapter names causing wrapping in activity overview.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed epub bookmarks not loading.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed text \u0026amp; image bookmarks being switched.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed long chapter names causing wrapping in activity overview.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed people not being removed from series if chapter metadata has none.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed series not being added to a collection under some circumstances.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed early reloading causing double K\u002B plus calls when matching on the series page.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed annotations duplicating \u0026amp; swallowing text under some circumstances.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed annotations not being shown under specific circumstances.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed external links containing sometimes being scoped out of a book.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed search being unreliable when searching with year metadata.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.9.0.2 - Security Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.9.0.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2026-05-14T14:04:05Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": true,
    "Added": [],
    "Removed": [],
    "Changed": [
      "OIDC validation no longer requires super safe urls."
    ],
    "Fixed": [
      "Fixed reading list detail tab not having tabs wired up.",
      "Fixed series/chapter rating always returning 0 if you had rated it.",
      "Fixed bookmarks not loading.",
      "Fixed text \u0026 image bookmarks being switched.",
      "Fixed long chapter names causing wrapping in activity overview.",
      "Fixed epub bookmarks not loading.",
      "Fixed text \u0026 image bookmarks being switched.",
      "Fixed long chapter names causing wrapping in activity overview.",
      "Fixed people not being removed from series if chapter metadata has none.",
      "Fixed series not being added to a collection under some circumstances.",
      "Fixed early reloading causing double K\u002B plus calls when matching on the series page.",
      "Fixed annotations duplicating \u0026 swallowing text under some circumstances.",
      "Fixed annotations not being shown under specific circumstances.",
      "Fixed external links containing sometimes being scoped out of a book.",
      "Fixed search being unreliable when searching with year metadata."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003E\u003Cstrong\u003EAll users are strongly advised to update immediately.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EThere has been a critical vulnerability discovered in Kavita. Please update your instances.\u003C/p\u003E\n\u003Cp\u003EAll versions prior to this release are impacted.\u003C/p\u003E\n\u003Cp\u003EIf 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.\u003C/p\u003E\n\u003Cp\u003EDetails/CVE will be shared at a later date to give users time to update.\u003C/p\u003E\n\u003Cp\u003EEdit: CVE Published: CVE-2026-47202\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.9.0",
    "UpdateBody": "\u003Cp\u003EIt seems almost like a hard rule that the 2nd release of the year is always a spring cleaning release and this time, we\u0027ve really put the new knowledge we\u0027ve 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.\u003C/p\u003E\n\u003Ch2\u003EHighlights\u003C/h2\u003E\n\u003Ch3\u003EPerformance and Security\u003C/h3\u003E\n\u003Cp\u003EThis is first and foremost. Kavita had a few security issues brought against it and we\u0027ve 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.\u003C/p\u003E\n\u003Cp\u003EIn 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\u0027t.\u003C/p\u003E\n\u003Ch3\u003EReading List\u003C/h3\u003E\n\u003Cimg width=\u00222783\u0022 height=\u00221578\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/cb1a3aed-1b84-435d-b5a5-02797d89ef33\u0022 /\u003E\n\u003Cimg width=\u00222874\u0022 height=\u00221681\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/a5fb5b74-e269-487a-b9b2-2863b1162e47\u0022 /\u003E\n\u003Cimg width=\u00222813\u0022 height=\u00221621\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/8ac0f6a8-18d3-4168-9fab-54041f0034bc\u0022 /\u003E\n\u003Cp\u003EThere 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.\u003C/p\u003E\n\u003Ch3\u003ECBL ~~Import~~ Manager\u003C/h3\u003E\n\u003Cimg width=\u00222864\u0022 height=\u00221642\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/897d79fb-b279-4f6a-a671-554664da8b15\u0022 /\u003E\n\u003Cimg width=\u00223226\u0022 height=\u00221601\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/379d6599-2221-4d8c-afdc-998e8d8812cf\u0022 /\u003E\n\u003Cp\u003EThis has been on my mind since I first saw the v2 CBL spec and that is an overhaul to the CBL Import flow. Here\u0027s what I did:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003ERewrote the matching logic with tons of fallbacks to always try to make the best match \u003Ca href=\u0022https://wiki.kavitareader.com/guides/features/cbl-import/\u0022\u003Ewiki\u003C/a\u003E\u003C/li\u003E\n\u003Cli\u003EAllow the importer to make decisions and save those decisions as Remap Rules for future imports (admin\u0027s can promote so all users get the benefit)\u003C/li\u003E\n\u003Cli\u003EAllow users to browse lists from the CBL Repo in Kavita and just import from there (or a file/url)\u003C/li\u003E\n\u003Cli\u003EAuto-update lists for the users\u003C/li\u003E\n\u003Cli\u003EAnd of course, v2 support (with tags)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003EOf course there is more to the story, but overall I feel like the Reading List and CBL Flow is in a great place.\u003C/p\u003E\n\u003Ch3\u003EMulti-download Support\u003C/h3\u003E\n\u003Cp\u003EThis has been an item I\u0027ve 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\u0027ve downloaded and will show a mark on the card to let you know you\u0027ve synced it to the device. We got retry and cancel support and just a ton of polish. I hope you\u0027ll enjoy this as much as me.\n\u003Cimg width=\u0022395\u0022 height=\u0022693\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/1b9d2213-ce68-4333-aaa2-569a7938f963\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003EMisc\u003C/h3\u003E\n\u003Cp\u003EMihon and Panels users rejoice, the reading session system now works with these apps out of the box. In addition, users that want to stay on older versions of Kavita can without the nagging version update modal popping up. I\u0027ve overhauled the system to a) use a backoff system when you dismiss before it pops again and b) allow you to stay on an older version without Kavita pinging you again (but I don\u0027t recommend this due to security patches).\u003C/p\u003E\n\u003Cp\u003ELastly, the scanner got some bug fixes that might affect you:\u003C/p\u003E\n\u003Col\u003E\n\u003Cli\u003EWhenever fields are cleared out in the underlying metadata file, Kavita used to ignore those changes. It will now clear those fields.\u003C/li\u003E\n\u003Cli\u003EGenres/Tags used to normalize and merge, but no longer. This may cause new genres to show up but should be better overall for users.\u003C/li\u003E\n\u003C/ol\u003E\n\u003Ch3\u003EWhat\u0027s next\u003C/h3\u003E\n\u003Cp\u003ENext up, we will be focusing on Kavita\u002B and giving it it\u0027s own spring cleaning along with bringing some much needed provider changes (Hardcover, MangaBaka) and new features. While we don\u0027t have anything else planned, I\u0027m sure something fun will come up for non-Kavita\u002B users.\u003C/p\u003E\n\u003Cp\u003EI want to also extend a special thanks to @falo2k and @DieselTech from the CBL Group and @LegendaryLass for the massive amount of work designing and testing the Reading List Overhaul project.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Kavita now has a dedicated queue for downloads with auto-processing, series will now deconstruct to individual items, and it\u0027s persistent between reloads.\u003C/li\u003E\n\u003Cli\u003EAdded: Added ability to bulk download series/chapter/volumes via bulk operations bar\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to download Reading Lists and Collections from Kavita\u003C/li\u003E\n\u003Cli\u003EAdded: Added a button to unlink your account from OIDC\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to export a reading list to CBL v1 or v2 support\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita now can store external metadata Ids for Series/Volume/Chapter entities for (AniList, MAL, MangaBaka, ComicVine, Metron, Hardcover).\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita will try to fill in External Metadata ids from ComicInfo Notes tags based on tagger signatures and from Kavita\u002B when applicable. Inherit weblink from first chapter libraries will bubble up the metadata to Series.\u003C/li\u003E\n\u003Cli\u003EAdded: Series/Volumes/Chapters can now be marked as read, with the option to generate reading sessions (4 upvotes, FR #4400)\u003C/li\u003E\n\u003Cli\u003EAdded: Added support for a limited set of Korean End markers ( \uC644\uACB0, \uC644, \u5B8C in () or [] exclusively ) that can be parsed from the filename and provide an alternative to ComicInfo.Count property, since ComicInfo isn\u0027t well known in Korea. (Thanks @aha-hyeong for inspiration, @daydreamrabbit for filenames and explanation)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a dropdown to pick which AuthKey to use in your copy-able OPDS url. (FR #4555, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EAdded: Added extra information for KOReader progress logging to help debug issues. (FR #3889, 2 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to import a CBL File (v1/v2) via a URL, file, or Browse directly from the CBL Repo.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to designate a correction as a remap rule locked to your account. It will be used in future CBL Import/Update to ensure the correct issue/series is matched. For example, if you have Issue 12.5 instead of 12 for some reason, you can correct a CBL Import and save a rule to say, in future, always map this series and issue to 12.5 without manual effort.\u003C/li\u003E\n\u003Cli\u003EAdded: Emails can now be localized. By default, Kavita will use the target user\u0027s localization settings. Missing strings will fallback to English. Invite user will use the default admin\u0027s locale.\u003C/li\u003E\n\u003Cli\u003EAdded: The search input closing is now hooked up to the Escape keybind\u003C/li\u003E\n\u003Cli\u003EAdded: Added an activity tab to series page which displays your reading sessions for this series\u003C/li\u003E\n\u003Cli\u003EAdded: Added a reading profile option to disable bookmark icons altogether in the Epub reader (FR #4270, 3 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a loading indicator while Kavita checks if your OIDC authority is correct\u003C/li\u003E\n\u003Cli\u003EAdded: CBL Lists created via the network are now syncable. Kavita will check Github or the Url and compare the hash to see if any work is needed to consume updates. Kavita processes the lists behind the scenes. You can always force a sync manually either thru the manager screen or re-import flow. Bad matches will be skipped. It is your responsibility to build your rematch rules ahead of time.\u003C/li\u003E\n\u003Cli\u003EAdded: New background task (4am, daily) for the CBL Sync. Admins can customize on Tasks screen. Job processes lists every 3 days.\u003C/li\u003E\n\u003Cli\u003EAdded: Reading Lists now have persistent cover images. Previously on-the-fly, a temp reading list merged cover would be created. Now, Kavita will generate once at least 3 issues with covers exist. This will bring colorscape functionality to the reading list detail page.\u003C/li\u003E\n\u003Cli\u003EAdded: When importing CBLs from the reading list manager, Kavita will track the items the list SHOULD have vs how many you have and show you that on CBL Manager and Reading List design page. This does not include a migration, re-import your lists (you don\u0027t have to delete them) to get the field set.\u003C/li\u003E\n\u003Cli\u003EAdded: When images fail to load in webtooon mode, Kavita will set the height to prevent continuous scroller from triggering, set a border to help indicate the failed page and then try to resolve it 3 times in a background thread. This will help when there is fallout when reading on plane wifi.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a client-side filter on reading list detail page when there is more than 10 items. It will sort against: title, series name, chapter number, volume number, issue\u0027s title, writer name, and penciller (first only).\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to filter reading lists by Title, Release Year, Item Count and Writer/Artist. You can sort by Title, Release Year Start/End, and Item Count.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a migration to ensure there are no readonly admin accounts\u003C/li\u003E\n\u003Cli\u003EAdded 4 new keybinds to the readers: First/Last Page, Previous/Next Chapter. PDF does not support Previous/Next Chapter loading currently. (FR #4585, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to change your username on the server. An email will be sent to inform you if email is setup.\u003C/li\u003E\n\u003Cli\u003EAdded: Added Shortcut modal to PDF and Epub readers\u003C/li\u003E\n\u003Cli\u003EAdded: Added volume range support for a manga regex pattern\u003C/li\u003E\n\u003Cli\u003EAdded: Added unread chapter count sort option for series\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to filter by libraries for Browse People page\u003C/li\u003E\n\u003Cli\u003EAdded: Added Is Not Empty comparison for all fields that have Is Empty (FR #4616, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EAdded: You can now craft and save Smart Filters for Reading lists and bind them to your Side Nav/Dashboard as you would Series-based.\u003C/li\u003E\n\u003Cli\u003EAdded: Added Provider Equal/NotEqual and Missing Item Count filter support for Reading Lists\u003C/li\u003E\n\u003Cli\u003EAdded: Added an actionable menu to reading list on side nav to get to the manage cbl screen\u003C/li\u003E\n\u003Cli\u003EAdded: Added actions to add smart filters to your Dashboard \u0026amp; Side Nav from the smart filter screen.\u003C/li\u003E\n\u003Cli\u003EAdded: Added an action to regenerate reading list covers\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Manga reader menu now uses a cubic-bezier easing for its animation (Thanks @kindlyfire)\u003C/li\u003E\n\u003Cli\u003EChanged: Improved the UX of the Annotation drawer to allow large annotations to be fully viewable. (Thanks @Ark1369)\u003C/li\u003E\n\u003Cli\u003EChanged: Version update checking has been drastically streamlined and made less annoying. Backoff support is implemented, after 5 prompts, Kavita will stop pestering you to update.\u003C/li\u003E\n\u003Cli\u003EChanged: All tab titles in Kavita are now localizable and much cleaner\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita now respects prefers-reduce-motion and will slow animations down. Disabled animations will still affect, but is now applied with no-animations class on body.\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked the card layout to try and squeeze more spacing out\u003C/li\u003E\n\u003Cli\u003EChanged: Slightly widened the gap on carousels to align with spacing of the card grid\u003C/li\u003E\n\u003Cli\u003EChanged: Properly ensure readonly users cannot trigger reorder on side nav\u003C/li\u003E\n\u003Cli\u003EChanged: Series downloads no longer create a big zip, but deconstruct into individual items and are queued up.\u003C/li\u003E\n\u003Cli\u003EChanged: While a download is in queue, the download indicator will show on the card.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Entity size is in the DB, change the size checks to avoid touching the underlying disk\u003C/li\u003E\n\u003Cli\u003EChanged: Updated dependencies, including security vulnerabilities\u003C/li\u003E\n\u003Cli\u003EChanged: Errored out smart filters can now be deleted from the smart filter page\u003C/li\u003E\n\u003Cli\u003EChanged: User preferences and keybinds will now be disabled for users with the Read Only role to avoid confusion (Thanks @IbrahimHamshari )\u003C/li\u003E\n\u003Cli\u003EChanged: Allow Kavita\u002B to match against a series during a manual match always regardless if the library has automatic metadata matching off.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Refactored UpdateUserAsActiveMiddleware to not write on every request and instead queue up and flush to the DB every 5 mins.\u003C/li\u003E\n\u003Cli\u003EChanged: Added an ellipses on Profile activity tab when a session contains more than 5 chapters\u003C/li\u003E\n\u003Cli\u003EChanged: Improved the UX of the Annotation drawer to allow large annotations to be fully viewable. (Thanks @Ark1369 )\u003C/li\u003E\n\u003Cli\u003EChanged: Importing a CBL only updates/inserts. You no longer need to delete and reimport.\u003C/li\u003E\n\u003Cli\u003EChanged: Drastically overhauled/improved the CBL matching logic.\u003C/li\u003E\n\u003Cli\u003EChanged: Opening the OnDeck filter will now sort by last read instead of last chapter added\u003C/li\u003E\n\u003Cli\u003EChanged: The reading session info popup will now show the closest time first as opposed to the last\u003C/li\u003E\n\u003Cli\u003EChanged: Opening a chapter which has missing files will not clearly show an error and navigate back instead of silently failing\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita will prevent your device from going to sleep while downloading\u003C/li\u003E\n\u003Cli\u003EChanged: External sources no longer require an api-key to be provided\u003C/li\u003E\n\u003Cli\u003EChanged: The OIDC Authority check will now display more descriptive errors to help users debug\u003C/li\u003E\n\u003Cli\u003EChanged: Setting items will now be forced into edit mode and display errors if they\u0027re invalid\u003C/li\u003E\n\u003Cli\u003EChanged: The library page will now fully refresh after a scan has completed\u003C/li\u003E\n\u003Cli\u003EChanged: Send To Actions will now be hidden if email has not been set up\u003C/li\u003E\n\u003Cli\u003EChanged: Series names are now required to contain meaningful information (I.e. they cannot only be special characters). A media issue will be created if a file is ignored because of this\u003C/li\u003E\n\u003Cli\u003EChanged: A media issue will now be created when a file is fully skipped after parsing\u003C/li\u003E\n\u003Cli\u003EChanged: Improved security in a few APIs\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita will prompt to confirm delete before removing read items from a reading list (FR #4530, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EChanged: (UX) Reading List detail page will now use a list layout instead of cards. Based on feedback, reading list titles were much longer and thus the card was a poor experience (FR #4053, 3 upvotes)\u003C/li\u003E\n\u003Cli\u003EChanged: (UX) Changed the reading list item cards to bring more information forward and more responsive. (Thanks to whomever supplied the original design for inspiration)\u003C/li\u003E\n\u003Cli\u003EChanged: Removed the drag and drop ordering for reading list detail page. It didn\u0027t work well on mobile and was only used when \u0026lt; 100 items, but most reading lists are above that.\u003C/li\u003E\n\u003Cli\u003EChanged: Read-only rule warning will now show on invite modal to prevent users from using it without fully understanding the repercussions.\u003C/li\u003E\n\u003Cli\u003EChanged: Removed the forced sentence case for Tag/Genres. Kavita will still merge into the first for basic normalization.\u003C/li\u003E\n\u003Cli\u003EChanged: Read-only rule warning will now show on invite modal to prevent users from using it without fully understanding the repercussions.\u003C/li\u003E\n\u003Cli\u003EChanged: Webtoon Reader continuous reader now uses a pull to load (mobile) mechanism. When you get to the top or bottom, a small time out arms the component then the pulling will trigger a progress until the next/prev chapter loads. For PC users, it will be a scroll like normal. (FR #4590, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t send progress events when we are on the same page. This should help reduce database is locked issues when reading.\u003C/li\u003E\n\u003Cli\u003EChanged: Tab titles will now be Context (Kavita)\u003C/li\u003E\n\u003Cli\u003EChanged: Reading List and Collection pages now use an Uppercase sorting\u003C/li\u003E\n\u003Cli\u003EChanged: Changed the design of the Shortcut modal button\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Slightly improved the Progress API to avoid an extra read\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Webtoon reader no longer debounces but just sends unique page numbers\u003C/li\u003E\n\u003Cli\u003EChanged: Ensure we clear out metadata from ComicInfo even if it\u0027s now empty\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Removed 2 joins on the scrobble code as it wasn\u0027t needed.\u003C/li\u003E\n\u003Cli\u003EChanged: Fixed how Kavita creates transactions with SQLite to reduce the \u0027database is locked\u0027 issue. From my testing, database is locked which was happening during reading (webtoon) and from some concurrent scans were eliminated.\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita will now log when Hangfire (our task scheduling system) errors out and retain the stack trace\u003C/li\u003E\n\u003Cli\u003EChanged: More in Genre is now removed from default dashboards. If you really loved it, raise a Feature Request about it.\u003C/li\u003E\n\u003Cli\u003EChanged: All Smart Filters page now has a filter for the type of entity to display (Series/Reading List)\u003C/li\u003E\n\u003Cli\u003EChanged: A revamped UX for details screen\u003C/li\u003E\n\u003Cli\u003EChanged: Mihon will now generate reading sessions\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked the search query so that we require the year to match if present, instead of matching all in that year\u003C/li\u003E\n\u003Cli\u003EChanged: Allow reading overrides for logging levels for subsystems from appsettings.json\u003C/li\u003E\n\u003Cli\u003EChanged: Search results will prioritize showing the series title over the localized title more\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where the check license button only worked on the first load\u003C/li\u003E\n\u003Cli\u003EFixed: Bulk Actions on customize side nav wasn\u0027t showing the bulk operations bar\u003C/li\u003E\n\u003Cli\u003EFixed: Read only accounts were able to make changes to settings in the UI (Thanks @IbrahimHamshari)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where comic readers (like Chunky or Kybook 3 for example) could not read recently-updated feed (or read only first page - in Kybook 3 case) (Thanks @ghostxwheel )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where after adding a custom theme, the page was left in a half-broken state.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue with apple-mobile-web-app-status-bar-style on iOS where we were passing incorrect values. Now we send black or default based on if the theme is dark or not.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the spacing on the buttons on small screen in manga reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a localization bug where locale number positioning for chapter/book/volume numbers weren\u0027t taking into effect. For example Korean Volume was showing as \uAD8C 1 when locale specified 1 \uAD8C\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a lot of endpoints missing access checks\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed users not being able to upload collection covers unless they\u0027re admin\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed schema in API docs for /api/Plugin/authkey-expires.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed recommendations always showing as unread for users with an admin account\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed read progress not being included on the person page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed being unable to update a reading lists name if it matches itself.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed orphaned tags not being cleaned up\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed paging back in the image reading opening chapters at the start\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the annotation drawer in the book reader hanging when a large amount of annotations are present\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed smart filters with no results being completely hidden on the smart filter page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading sessions in which an epub chapter was finished not having a recorded word count\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed epub reader not saving the correct reading position under specific circumstances (Thanks @vipin2310 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Known Issue parsing from Github using wrong header\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Markdown parsing not working on sub-nested lists\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where specials weren\u0027t prioritizing title comicinfo\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the No Transitions setting not properly applying to all animations in the site\u003C/li\u003E\n\u003Cli\u003EFixed: Localization issues with Korean where chapter marker could still be in front of edge\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure comic libraries prioritize volume tab over specials tab when no issues\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed localization switching not updating the UI correctly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where card actionable menu wasn\u0027t properly closing the submenu after highlighting off it.\u003C/li\u003E\n\u003Cli\u003EFixed: The auth guard for the OPDS download endpoint was using the Download role instead of the policy. The original version was causing an error.  (Thanks @jfenske89 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an off-by-1 issue which caused duplicate characters at the end of an annotation\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a migration failing to run if you had data during Daylight savings time jump.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed related series not having progress\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a few incorrect strings in emails (Auth Key expiring, Token expiring soon)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed using escape to close the search input not losing focussed and closing full screen\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading session history (Activity tabs) being paginated weirdly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading estimates being wrong for EPUBs\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed ToC in the book reader not displaying all chapters under some circumstances. (Thanks @DreamAvalon)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed chapters sometimes not being full read while reading in webtoon mode\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the scanner merging several series into one under specific circumstances\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a missing localization in import MAL stacks\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the manga reader could try and preload a chapter when we haven\u0027t resolved the next/prev chapter id yet.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed jumpbars being broken on Collection and Reading List page\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure Weblinks from ComicInfo can be extracted when space separated\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed regex for Korean Volume being recognized as Episode word (\uD654)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a few missed auth apis not returning auth keys correctly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading direction changes not being saved to implicit profiles\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed fonts not being shown after uploading one\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed series metadata failing to update under specific circumstances\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed encode/decode errors for non-series entities\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where a Korean volume marker could trigger the wrong regex and recognize as a chapter as well\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure annotation and bookmark uses the same selected text calculation method to ensure the full word is carried into the overlay form\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case where Never showed for last active\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Volume progress tracking not working on Mihon (Thanks @Nedra1998 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a fallback in epub writer parsing not being guarded when valid, 3.2 role refinement is used (\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed arrow keys not working without first clicking on the manga reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to use arrow keys to scroll on FF in manage reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the cover image on detail pages being too large sometimes\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed panels not properly working with the new reading sessions\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case where ReadingHistory (table not used) could have an index exception\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ETheme\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003E--card-image-height,  --card-image-width are now usable\u003C/li\u003E\n\u003Cli\u003EConverted the whole UI to use REM (except 2 cases where px is required)\u003C/li\u003E\n\u003Cli\u003EAdded theme variables for download indicator: --card-download-indicator-size, --card-download-indicator-icon-size, --card-download-indicator-icon-color, --card-download-indicator-box-shadow, --card-download-indicator-active-color, --card-download-indicator-active-track-color, --card-download-indicator-completed-color, --card-download-indicator-queued-color\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added the ability for Kavita to expose how it parses information via plugin/parse and plugin/parse-bulk API.\u003C/li\u003E\n\u003Cli\u003EUnknown or inaccessible resources will now return 404 Not Found when trying to be accessed\u003C/li\u003E\n\u003Cli\u003EPOST /volume/update is now available for updating metadata ids on the Volume itself\u003C/li\u003E\n\u003Cli\u003EFixed the enums not rendering out the description field with Swagger and fixed up some of the auth information.\u003C/li\u003E\n\u003Cli\u003ERemoved all Deprecated APIs (this was communicated last release, I reached out to the big app providers)\u003C/li\u003E\n\u003Cli\u003Efilter/encode and filter/decode have been replaced by entity-flavored variants.\u003C/li\u003E\n\u003Cli\u003EAdded a query parameter for reading sessions (generateSessions) for Mihon, defaults to true\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.9.0 - Reading List Overhaul and Spring Cleaning",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.9.0",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2026-04-30T21:58:37Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Kavita now has a dedicated queue for downloads with auto-processing, series will now deconstruct to individual items, and it\u0027s persistent between reloads.",
      "Added ability to bulk download series/chapter/volumes via bulk operations bar",
      "Added the ability to download Reading Lists and Collections from Kavita",
      "Added a button to unlink your account from OIDC",
      "Added the ability to export a reading list to CBL v1 or v2 support",
      "Kavita now can store external metadata Ids for Series/Volume/Chapter entities for (AniList, MAL, MangaBaka, ComicVine, Metron, Hardcover).",
      "Kavita will try to fill in External Metadata ids from ComicInfo Notes tags based on tagger signatures and from Kavita\u002B when applicable. Inherit weblink from first chapter libraries will bubble up the metadata to Series.",
      "Series/Volumes/Chapters can now be marked as read, with the option to generate reading sessions (4 upvotes, FR #4400)",
      "Added support for a limited set of Korean End markers ( \uC644\uACB0, \uC644, \u5B8C in () or [] exclusively ) that can be parsed from the filename and provide an alternative to ComicInfo.Count property, since ComicInfo isn\u0027t well known in Korea. (Thanks @aha-hyeong for inspiration, @daydreamrabbit for filenames and explanation)",
      "Added a dropdown to pick which AuthKey to use in your copy-able OPDS url. (FR #4555, 1 upvote)",
      "Added extra information for KOReader progress logging to help debug issues. (FR #3889, 2 upvotes)",
      "Added the ability to import a CBL File (v1/v2) via a URL, file, or Browse directly from the CBL Repo.",
      "Added the ability to designate a correction as a remap rule locked to your account. It will be used in future CBL Import/Update to ensure the correct issue/series is matched. For example, if you have Issue 12.5 instead of 12 for some reason, you can correct a CBL Import and save a rule to say, in future, always map this series and issue to 12.5 without manual effort.",
      "Emails can now be localized. By default, Kavita will use the target user\u0027s localization settings. Missing strings will fallback to English. Invite user will use the default admin\u0027s locale.",
      "The search input closing is now hooked up to the Escape keybind",
      "Added an activity tab to series page which displays your reading sessions for this series",
      "Added a reading profile option to disable bookmark icons altogether in the Epub reader (FR #4270, 3 upvotes)",
      "Added a loading indicator while Kavita checks if your OIDC authority is correct",
      "CBL Lists created via the network are now syncable. Kavita will check Github or the Url and compare the hash to see if any work is needed to consume updates. Kavita processes the lists behind the scenes. You can always force a sync manually either thru the manager screen or re-import flow. Bad matches will be skipped. It is your responsibility to build your rematch rules ahead of time.",
      "New background task (4am, daily) for the CBL Sync. Admins can customize on Tasks screen. Job processes lists every 3 days.",
      "Reading Lists now have persistent cover images. Previously on-the-fly, a temp reading list merged cover would be created. Now, Kavita will generate once at least 3 issues with covers exist. This will bring colorscape functionality to the reading list detail page.",
      "When importing CBLs from the reading list manager, Kavita will track the items the list SHOULD have vs how many you have and show you that on CBL Manager and Reading List design page. This does not include a migration, re-import your lists (you don\u0027t have to delete them) to get the field set.",
      "When images fail to load in webtooon mode, Kavita will set the height to prevent continuous scroller from triggering, set a border to help indicate the failed page and then try to resolve it 3 times in a background thread. This will help when there is fallout when reading on plane wifi.",
      "Added a client-side filter on reading list detail page when there is more than 10 items. It will sort against: title, series name, chapter number, volume number, issue\u0027s title, writer name, and penciller (first only).",
      "Added the ability to filter reading lists by Title, Release Year, Item Count and Writer/Artist. You can sort by Title, Release Year Start/End, and Item Count.",
      "Added a migration to ensure there are no readonly admin accounts",
      "First/Last Page, Previous/Next Chapter. PDF does not support Previous/Next Chapter loading currently. (FR #4585, 1 upvote)",
      "Added the ability to change your username on the server. An email will be sent to inform you if email is setup.",
      "Added Shortcut modal to PDF and Epub readers",
      "Added volume range support for a manga regex pattern",
      "Added unread chapter count sort option for series",
      "Added the ability to filter by libraries for Browse People page",
      "Added Is Not Empty comparison for all fields that have Is Empty (FR #4616, 1 upvote)",
      "You can now craft and save Smart Filters for Reading lists and bind them to your Side Nav/Dashboard as you would Series-based.",
      "Added Provider Equal/NotEqual and Missing Item Count filter support for Reading Lists",
      "Added an actionable menu to reading list on side nav to get to the manage cbl screen",
      "Added actions to add smart filters to your Dashboard \u0026 Side Nav from the smart filter screen.",
      "Added an action to regenerate reading list covers"
    ],
    "Removed": [],
    "Changed": [
      "Manga reader menu now uses a cubic-bezier easing for its animation (Thanks @kindlyfire)",
      "Improved the UX of the Annotation drawer to allow large annotations to be fully viewable. (Thanks @Ark1369)",
      "Version update checking has been drastically streamlined and made less annoying. Backoff support is implemented, after 5 prompts, Kavita will stop pestering you to update.",
      "All tab titles in Kavita are now localizable and much cleaner",
      "Kavita now respects prefers-reduce-motion and will slow animations down. Disabled animations will still affect, but is now applied with no-animations class on body.",
      "Tweaked the card layout to try and squeeze more spacing out",
      "Slightly widened the gap on carousels to align with spacing of the card grid",
      "Properly ensure readonly users cannot trigger reorder on side nav",
      "Series downloads no longer create a big zip, but deconstruct into individual items and are queued up.",
      "While a download is in queue, the download indicator will show on the card.",
      "(Performance) Entity size is in the DB, change the size checks to avoid touching the underlying disk",
      "Updated dependencies, including security vulnerabilities",
      "Errored out smart filters can now be deleted from the smart filter page",
      "User preferences and keybinds will now be disabled for users with the Read Only role to avoid confusion (Thanks @IbrahimHamshari )",
      "Allow Kavita\u002B to match against a series during a manual match always regardless if the library has automatic metadata matching off.",
      "(Performance) Refactored UpdateUserAsActiveMiddleware to not write on every request and instead queue up and flush to the DB every 5 mins.",
      "Added an ellipses on Profile activity tab when a session contains more than 5 chapters",
      "Improved the UX of the Annotation drawer to allow large annotations to be fully viewable. (Thanks @Ark1369 )",
      "Importing a CBL only updates/inserts. You no longer need to delete and reimport.",
      "Drastically overhauled/improved the CBL matching logic.",
      "Opening the OnDeck filter will now sort by last read instead of last chapter added",
      "The reading session info popup will now show the closest time first as opposed to the last",
      "Opening a chapter which has missing files will not clearly show an error and navigate back instead of silently failing",
      "Kavita will prevent your device from going to sleep while downloading",
      "External sources no longer require an api-key to be provided",
      "The OIDC Authority check will now display more descriptive errors to help users debug",
      "Setting items will now be forced into edit mode and display errors if they\u0027re invalid",
      "The library page will now fully refresh after a scan has completed",
      "Send To Actions will now be hidden if email has not been set up",
      "Series names are now required to contain meaningful information (I.e. they cannot only be special characters). A media issue will be created if a file is ignored because of this",
      "A media issue will now be created when a file is fully skipped after parsing",
      "Improved security in a few APIs",
      "Kavita will prompt to confirm delete before removing read items from a reading list (FR #4530, 1 upvote)",
      "(UX) Reading List detail page will now use a list layout instead of cards. Based on feedback, reading list titles were much longer and thus the card was a poor experience (FR #4053, 3 upvotes)",
      "(UX) Changed the reading list item cards to bring more information forward and more responsive. (Thanks to whomever supplied the original design for inspiration)",
      "Removed the drag and drop ordering for reading list detail page. It didn\u0027t work well on mobile and was only used when \u003C 100 items, but most reading lists are above that.",
      "Read-only rule warning will now show on invite modal to prevent users from using it without fully understanding the repercussions.",
      "Removed the forced sentence case for Tag/Genres. Kavita will still merge into the first for basic normalization.",
      "Read-only rule warning will now show on invite modal to prevent users from using it without fully understanding the repercussions.",
      "Webtoon Reader continuous reader now uses a pull to load (mobile) mechanism. When you get to the top or bottom, a small time out arms the component then the pulling will trigger a progress until the next/prev chapter loads. For PC users, it will be a scroll like normal. (FR #4590, 1 upvote)",
      "Don\u0027t send progress events when we are on the same page. This should help reduce database is locked issues when reading.",
      "Tab titles will now be Context (Kavita)",
      "Reading List and Collection pages now use an Uppercase sorting",
      "Changed the design of the Shortcut modal button",
      "(Performance) Slightly improved the Progress API to avoid an extra read",
      "(Performance) Webtoon reader no longer debounces but just sends unique page numbers",
      "Ensure we clear out metadata from ComicInfo even if it\u0027s now empty",
      "(Performance) Removed 2 joins on the scrobble code as it wasn\u0027t needed.",
      "Fixed how Kavita creates transactions with SQLite to reduce the \u0027database is locked\u0027 issue. From my testing, database is locked which was happening during reading (webtoon) and from some concurrent scans were eliminated.",
      "Kavita will now log when Hangfire (our task scheduling system) errors out and retain the stack trace",
      "More in Genre is now removed from default dashboards. If you really loved it, raise a Feature Request about it.",
      "All Smart Filters page now has a filter for the type of entity to display (Series/Reading List)",
      "A revamped UX for details screen",
      "Mihon will now generate reading sessions",
      "Tweaked the search query so that we require the year to match if present, instead of matching all in that year",
      "Allow reading overrides for logging levels for subsystems from appsettings.json",
      "Search results will prioritize showing the series title over the localized title more"
    ],
    "Fixed": [
      "(Kavita\u002B) Fixed a bug where the check license button only worked on the first load",
      "Bulk Actions on customize side nav wasn\u0027t showing the bulk operations bar",
      "Read only accounts were able to make changes to settings in the UI (Thanks @IbrahimHamshari)",
      "Fixed a bug where comic readers (like Chunky or Kybook 3 for example) could not read recently-updated feed (or read only first page - in Kybook 3 case) (Thanks @ghostxwheel )",
      "Fixed a bug where after adding a custom theme, the page was left in a half-broken state.",
      "Fixed an issue with apple-mobile-web-app-status-bar-style on iOS where we were passing incorrect values. Now we send black or default based on if the theme is dark or not.",
      "Fixed the spacing on the buttons on small screen in manga reader",
      "Fixed a localization bug where locale number positioning for chapter/book/volume numbers weren\u0027t taking into effect. For example Korean Volume was showing as \uAD8C 1 when locale specified 1 \uAD8C",
      "Fixed a lot of endpoints missing access checks",
      "Fixed users not being able to upload collection covers unless they\u0027re admin",
      "Fixed schema in API docs for /api/Plugin/authkey-expires.",
      "Fixed recommendations always showing as unread for users with an admin account",
      "Fixed read progress not being included on the person page",
      "Fixed being unable to update a reading lists name if it matches itself.",
      "Fixed orphaned tags not being cleaned up",
      "Fixed paging back in the image reading opening chapters at the start",
      "Fixed the annotation drawer in the book reader hanging when a large amount of annotations are present",
      "Fixed smart filters with no results being completely hidden on the smart filter page",
      "Fixed reading sessions in which an epub chapter was finished not having a recorded word count",
      "Fixed epub reader not saving the correct reading position under specific circumstances (Thanks @vipin2310 )",
      "Fixed Known Issue parsing from Github using wrong header",
      "Fixed Markdown parsing not working on sub-nested lists",
      "Fixed an issue where specials weren\u0027t prioritizing title comicinfo",
      "Fixed the No Transitions setting not properly applying to all animations in the site",
      "Localization issues with Korean where chapter marker could still be in front of edge",
      "Ensure comic libraries prioritize volume tab over specials tab when no issues",
      "Fixed localization switching not updating the UI correctly",
      "Fixed a bug where card actionable menu wasn\u0027t properly closing the submenu after highlighting off it.",
      "The auth guard for the OPDS download endpoint was using the Download role instead of the policy. The original version was causing an error.  (Thanks @jfenske89 )",
      "Fixed an off-by-1 issue which caused duplicate characters at the end of an annotation",
      "Fixed a migration failing to run if you had data during Daylight savings time jump.",
      "Fixed related series not having progress",
      "Fixed a few incorrect strings in emails (Auth Key expiring, Token expiring soon)",
      "Fixed using escape to close the search input not losing focussed and closing full screen",
      "Fixed reading session history (Activity tabs) being paginated weirdly",
      "Fixed reading estimates being wrong for EPUBs",
      "Fixed ToC in the book reader not displaying all chapters under some circumstances. (Thanks @DreamAvalon)",
      "Fixed chapters sometimes not being full read while reading in webtoon mode",
      "Fixed the scanner merging several series into one under specific circumstances",
      "Fixed a missing localization in import MAL stacks",
      "Fixed a bug where the manga reader could try and preload a chapter when we haven\u0027t resolved the next/prev chapter id yet.",
      "Fixed jumpbars being broken on Collection and Reading List page",
      "Ensure Weblinks from ComicInfo can be extracted when space separated",
      "Fixed regex for Korean Volume being recognized as Episode word (\uD654)",
      "Fixed a few missed auth apis not returning auth keys correctly",
      "Fixed reading direction changes not being saved to implicit profiles",
      "Fixed fonts not being shown after uploading one",
      "Fixed series metadata failing to update under specific circumstances",
      "Fixed encode/decode errors for non-series entities",
      "Fixed a case where a Korean volume marker could trigger the wrong regex and recognize as a chapter as well",
      "Ensure annotation and bookmark uses the same selected text calculation method to ensure the full word is carried into the overlay form",
      "Fixed an edge case where Never showed for last active",
      "Fixed Volume progress tracking not working on Mihon (Thanks @Nedra1998 )",
      "Fixed a fallback in epub writer parsing not being guarded when valid, 3.2 role refinement is used (",
      "Fixed arrow keys not working without first clicking on the manga reader",
      "Fixed not being able to use arrow keys to scroll on FF in manage reader",
      "Fixed the cover image on detail pages being too large sometimes",
      "Fixed panels not properly working with the new reading sessions",
      "Fixed an edge case where ReadingHistory (table not used) could have an index exception"
    ],
    "Theme": [
      "--card-image-height,  --card-image-width are now usable",
      "Converted the whole UI to use REM (except 2 cases where px is required)",
      "--card-download-indicator-size, --card-download-indicator-icon-size, --card-download-indicator-icon-color, --card-download-indicator-box-shadow, --card-download-indicator-active-color, --card-download-indicator-active-track-color, --card-download-indicator-completed-color, --card-download-indicator-queued-color"
    ],
    "Developer": [],
    "Api": [
      "Added the ability for Kavita to expose how it parses information via plugin/parse and plugin/parse-bulk API.",
      "Unknown or inaccessible resources will now return 404 Not Found when trying to be accessed",
      "POST /volume/update is now available for updating metadata ids on the Volume itself",
      "Fixed the enums not rendering out the description field with Swagger and fixed up some of the auth information.",
      "Removed all Deprecated APIs (this was communicated last release, I reached out to the big app providers)",
      "filter/encode and filter/decode have been replaced by entity-flavored variants.",
      "Added a query parameter for reading sessions (generateSessions) for Mihon, defaults to true"
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EIt seems almost like a hard rule that the 2nd release of the year is always a spring cleaning release and this time, we\u0027ve really put the new knowledge we\u0027ve 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.9.1",
    "UpdateBody": "\u003Cp\u003EWe decided to issue a small hotfix, with minor fixes and some enhancements on a new endpoint related to Auth Keys, to ensure it\u0027s easy from the get-go for external app creators.\u003C/p\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: The image reader will now always send a progress event for chapters with exactly one page.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed re-read prompt not being disabled when setting is 0\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed empty re-read setting breaking saving flow\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed theme being reset\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some tables not loading in the statistics page for admins, breaking the page.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed inconsistent behaviour with the /api/plugin/authkey-expires endpoint.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.9.1 Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.9.1",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2026-01-18T23:04:08Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "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 empty re-read setting breaking saving flow",
      "Fixed theme being reset",
      "Fixed some tables not loading in the statistics page for admins, breaking the page.",
      "Fixed inconsistent behaviour with the /api/plugin/authkey-expires endpoint."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EWe decided to issue a small hotfix, with minor fixes and some enhancements on a new endpoint related to Auth Keys, to ensure it\u0027s easy from the get-go for external app creators.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.9",
    "UpdateBody": "\u003Cp\u003EHappy 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\u0027s not just that, it\u0027s \u003Cstrong\u003E12 Feature Requests\u003C/strong\u003E with a total of \u003Cstrong\u003E98 upvotes\u003C/strong\u003E, it\u0027s reworking a lot of foundational code now that we have multiple authentication mechanisms, improving Developer Experience working with Kavita (no more JWT management), a \u003Cstrong\u003EMASSIVE\u003C/strong\u003E speed improvement to the scanner, and of course a brand new stats system for Kavita (with a lot of inspiration from Hardcover).\u003C/p\u003E\n\u003Cp\u003ESince this is such a massive release, I wont be able to highlight all the large improvements, but I know you\u0027ll 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.\u003C/p\u003E\n\u003Cp\u003EThe key areas of focus:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EReading List Overhaul Project\u003C/strong\u003E - I\u0027ve worked closely with the CBL group to define some key improvements to Kavita\u0027s reading list experience along with the CBL import.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EKobo Sync\u003C/strong\u003E - Another big one that most other servers have adapted. We have Progress Sync support already, but this is the icing on the cake.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EKavita\u002B Enhancements\u003C/strong\u003E - Hardcover and MangaBaka (once it\u0027s stable) are still on my list, along with a slew of issues that have been piling up.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003EI look forward to your feedback on the new release. Before we go, I\u0027d 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!\u003C/p\u003E\n\u003Ch2\u003EHighlights\u003C/h2\u003E\n\u003Cp\u003EFirst off, let\u0027s focus on the Foundations of Kavita with 3 key features:\u003C/p\u003E\n\u003Ch3\u003EAuth Stack\u003C/h3\u003E\n\u003Cp\u003ELast 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).\u003C/p\u003E\n\u003Cp\u003EThe Auth stack has been reworked to be driven completely in the middleware (the code that runs between your browser making the request and Kavita\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EDeveloper Experience\u003C/h3\u003E\n\u003Cp\u003ESince 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\u0027t 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.\u003C/p\u003E\n\u003Ch3\u003EClient Devices\u003C/h3\u003E\n\u003Cp\u003EClient 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\u0027t bounce your server while people are reading.\u003C/p\u003E\n\u003Cimg width=\u00221615\u0022 height=\u0022501\u0022 alt=\u0022user-settings-client-device\u0022 src=\u0022https://github.com/user-attachments/assets/78965d63-1f1f-4421-9992-614245c23ceb\u0022 /\u003E\n\u003Ch3\u003EJournal-Style Progress\u003C/h3\u003E\n\u003Cp\u003EThis is the main focus of the release and allows for Kavita to track how you read much more closely. With the new auth stack and devices as foundations, Kavita can now track reading sessions and re-read counts (more about this below). No longer will you have to overwrite progress when you re-read a book.\u003C/p\u003E\n\u003Cimg width=\u00221766\u0022 height=\u0022648\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/28fe6db2-cea6-4ec8-9dfb-24643013a61d\u0022 /\u003E\n\u003Ch3\u003EMassive Scanner Improvements\u003C/h3\u003E\n\u003Cp\u003EWe got some big improvements thanks to @Fesaa (Amelia)\u0027s smart thinking and some realizations we had around managing contexts in the scan loop. The scanner is now multi-threaded with none of that old FK issue to boot. To quote some of our big comic collectors:\u003C/p\u003E\n\u003Cblockquote\u003E\n\u003Cp\u003E14 days -\u0026gt; 3 hours over 141K files (112x faster)\n10 days -\u0026gt; 4 hours over 50K files  (60x faster)\n3.5 hours for 96K archives with 32 threads\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cp\u003EThe only thing of note is that covers do not show up at the same time as the series in Kavita. They are now done on a background thread in a more async way. I think the improvements are worth the trade-off.\u003C/p\u003E\n\u003Ch3\u003EDouble Reader Page Offset\u003C/h3\u003E\n\u003Cp\u003EThis is a big hitter the community has been asking for (37 upvotes) since I redid the Double Reader experience and it\u0027s finally here. It\u0027s modeled off MangaDex and was contributed by @linkion.\u003C/p\u003E\n\u003Ch3\u003EDevice-bound Reading Profiles\u003C/h3\u003E\n\u003Cp\u003EAnother big one is binding of Reading Profiles to client devices. You can already do per-library/series, but now as well directly to a device (which takes precedence if you\u0027re using that device).\u003C/p\u003E\n\u003Ch3\u003EKOReader\u003C/h3\u003E\n\u003Cp\u003EKOReader got a ton of polish. In the last release, users reported the Progress Sync not working reliably. I went back in there (now with a much easier to type Auth Key) and polished everything. While I was doing this work, I decided to expand support to all files (Pdf, Epub, Archives). The progress syncing will work great with Kavita for all your reading needs.\u003C/p\u003E\n\u003Ch3\u003ENew External Apps\u003C/h3\u003E\n\u003Cp\u003ELastly, a few new apps have launched around Kavita. The first is \u003Ca href=\u0022https://github.com/fpammer/kamare.koplugin\u0022\u003EKamare\u003C/a\u003E, a Koreader plugin that uses Kavita\u0027s API (resulting in a much better experience) and a custom reader for consuming comics.\u003C/p\u003E\n\u003Cp\u003E\u003Ca href=\u0022https://github.com/dom-53/Inkita\u0022\u003EInkita\u003C/a\u003E is an android app built for Kavita. It\u0027s still pretty early in development, but fully functional. I would highly recommend checking it out if our PWA doesn\u0027t work for you.\u003C/p\u003E\n\u003Ch3\u003EOPDS\u003C/h3\u003E\n\u003Cp\u003EI also spent a whole day reworking a lot of the OPDS code to make it MUCH faster and streamlined some of the naming code to avoid things like Chapter Chapter 1. Just in time as a few users brought up timing issues.\u003C/p\u003E\n\u003Ch2\u003EThe Progress Overhaul\u003C/h2\u003E\n\u003Cp\u003EOne thing that has bugged me is Kavita has no concept of reading time and no concept of reading count. Every time a new Nagatoro volume came out, I re-read the past few Volumes to refresh myself. The original progress events were lost and my stats got messed up. That\u0027s no longer a problem with the new system.\u003C/p\u003E\n\u003Ch3\u003ERe-read Prompts\u003C/h3\u003E\n\u003Cimg width=\u0022495\u0022 height=\u0022327\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/f291020a-14ff-441e-8b9a-bdafa953ffce\u0022 /\u003E\n\u003Cp\u003EFirst off, users can now configure (default 30 days) if they should be prompted to re-read the last chapter/volume. When you choose to re-read it, Kavita will track that it has already been fully read. You can see the counter of how many reads in the series detail page.\u003C/p\u003E\n\u003Ch3\u003EProfile\u003C/h3\u003E\n\u003Cp\u003EUser stats are now in the Profile screen which can be accessed by clicking your name in the header. You can \u003Cstrong\u003Eopt-in\u003C/strong\u003E to share your stats with others on the server. We took a lot of inspiration from Hardcover\u0027s excellent designs and adapted to the generic nature that Kavita is, but I think it really turned out great. Here are a few snippets from the page.\u003C/p\u003E\n\u003Cimg width=\u00221992\u0022 height=\u0022969\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/15859493-e4b4-4432-9e28-ab97fde0e88e\u0022 /\u003E\n\u003Cimg width=\u00221775\u0022 height=\u0022804\u0022 alt=\u0022profile-page-2\u0022 src=\u0022https://github.com/user-attachments/assets/b64efa09-b3ee-4610-887c-d49151f33da2\u0022 /\u003E\n\u003Ch3\u003EStats Page\u003C/h3\u003E\n\u003Cp\u003EServer stats also got reworked and some of the management graphs were moved to their own tab. Likewise, this was a massive overhaul, so here\u0027s a teaser.\u003C/p\u003E\n\u003Cimg width=\u00221875\u0022 height=\u0022855\u0022 alt=\u0022server-stats\u0022 src=\u0022https://github.com/user-attachments/assets/893e6eab-a8b1-4786-b091-c5e25ed8769b\u0022 /\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added a library setting to automatically copy weblinks from the first chapter in a series to the series. Defaults to false. (FR #3857, 2 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Volume and chapter detail pages will now show release years (FR #4145, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a library setting to set a default language for series when none is set in metadata (FR #4085, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EAdded: Added custom keybinds, allowing users to remap, and add up to 5 keybinds per action. (FR #2563, 11 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added some new custom keybinds for the site navigation.\u003C/li\u003E\n\u003Cli\u003EAdded: New settings for OPDS to allow a user to turn off Embedding the progress indicator in the title (great for KOReader, bad for Panels) and injection of a Continue Reading entry at the top. (FR #4131, 2 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: sorting series by user rating (FR #4210, 1 upvote)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to create named Auth Keys with custom length (9-32 characters), expiration date per-user. Kavita will email users that the key is expiring soon or has expired if email is setup on the instance. (FR #3539, 3 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: User LastActive will now be updated on any activity with Kavita\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita now tracks all interactions with it for authenticated users/api/opds and will create a Client Device to represent interactions. Users can rename the devices or remove them. Devices contain some basic fingerprinting to avoid creating necessary noise.\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita now allows admin\u0027s to see who is interacting with their server, on what device, and if they are active or not.\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita now tracks reading sessions and will drive statistics from these. Reading sessions are created per-user on reading activity and expire after 30 minutes without further activity or at midnight. Reading sessions track what was read, how much, and total. Kavita will compact the data daily into a separate table for historical reasons with higher level aggregations.\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita will now keep track of how many times you read a chapter/series (re-read count)\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita will now prompt you if you haven\u0027t read a chapter after X days (configurable in settings) to either start over from the beginning, read incognito, or continue as-is. Reading over from the beginning will trigger a total read count increment.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to have a personalized profile screen to share with other users on the server. This is an \u003Cstrong\u003Eopt-in\u003C/strong\u003E feature. Profile screen will show information about what you do on the server, interesting facts about your reading habits, and reviews (a separate opt-in control).\u003C/li\u003E\n\u003Cli\u003EAdded: Users can now upload a profile image of themselves for their profile page and any other social interactions.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to filter annotations by likes\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita now accepts an x-api-key header with an Auth Key for authentication. External apps no longer need to deal with JWTs. New API plugin/authkey-expires to check expiration on auth key.\u003C/li\u003E\n\u003Cli\u003EAdded: Profile pictures will sync with the picture claim if the user currently has no profile picture and OIDC sync is enabled.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to change the PDF renderer resolution (Mihon-apps) via a Server Setting. The admin can choose Default (1080x1920), High (1920x2560) or Ultra (2160x3840) (Thanks @StereotypicalCat)\u003C/li\u003E\n\u003Cli\u003EAdded: Massive overhaul to the server stats page. Focused into 2 tabs: Stats and Management. Stats gives you some unique insights into how your server is being read from with aggregate data. Management provides high level information like files added over time, spread of formats, publications statuses, etc.\u003C/li\u003E\n\u003Cli\u003EAdded: Reading profiles can now also be bound per device. Profiles with a device get precedence to profiles without. Each series can have at most one profiles for each device, and one without any. (FR #2929, 34 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added stat collection for total pages/words/time read for users for an planned social badge feature\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to sort by a user\u0027s own rating (FR #4210, 1 upvote) (Thanks @ToniKielo)\u003C/li\u003E\n\u003Cli\u003EAdded: Page offset toggle for double page manga reader mode to manually adjust page alignment for proper double-page spreads, including a keybind to toggle it. (FR #2660, 37 upvotes) (Thanks @linkion)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to read with Progress Sync for all files in Kavita (archives/pdf/epub) using Koreader (#4125, 3 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a 1am background job that ensures admins always have the appropriate side nav links for libraries. 2 users have reported an issue. I couldn\u0027t reproduce, this will fix just in case on their systems.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Highest count in series info will now show no data if it\u0027s an internal magic number.\u003C/li\u003E\n\u003Cli\u003EChanged: People pages will now also show external links to MyAnimeList and Hardcover if their respective IDs are configured\u003C/li\u003E\n\u003Cli\u003EChanged: External ID tooltips will now show the character link when the person is only a character\u003C/li\u003E\n\u003Cli\u003EChanged: Changed the files at root warning during library creation to be a lot more obvious\u003C/li\u003E\n\u003Cli\u003EChanged: Backup files will now use ISO 8601 to denote time. (FR #4012, 2 upvotes)\u003C/li\u003E\n\u003Cli\u003EChanged: Updated the design of the tooltips across the app for better contrast\u003C/li\u003E\n\u003Cli\u003EChanged: Run metadata saving, and extra work on separate threads during the scan loop\u003C/li\u003E\n\u003Cli\u003EChanged: Show a progress bar in the UI for the scan\u003C/li\u003E\n\u003Cli\u003EChanged: Cover UI updates will now have a progress bar with information in it\u003C/li\u003E\n\u003Cli\u003EChanged: Massively improve the performance of updating a series during the scan loop\u003C/li\u003E\n\u003Cli\u003EChanged: The backup service now uses the SQLite command VACUUM INTO to create a working copy of the database file at the time of backup. (Thanks @DieselTech )\u003C/li\u003E\n\u003Cli\u003EChanged: Removed API Key from User\u003C/li\u003E\n\u003Cli\u003EChanged: Streamlined LastActive for user accounts to be handled for any API activity\u003C/li\u003E\n\u003Cli\u003EChanged: Opening the readers will no longer send a progress even immediately, you must paginate/scroll to send progress.\u003C/li\u003E\n\u003Cli\u003EChanged: Email-based devices are now called Email Devices to not clash with new Client Devices.\u003C/li\u003E\n\u003Cli\u003EChanged: Review cards username can be clicked to load their profile.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated to .NET 10\u003C/li\u003E\n\u003Cli\u003EChanged: Remove default keybinds referencing meta keys (Windows Key)\u003C/li\u003E\n\u003Cli\u003EChanged: Do not use OIDC Authentication scheme if OIDC failed to initialize. Extra fail safes in case users OIDC did not initialize successfully, to not auto redirect etc\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Don\u0027t block startup to check for K\u002B license, do it in a background thread instead.\u003C/li\u003E\n\u003Cli\u003EChanged: OIDC roles are now case insensitive when syncing.\u003C/li\u003E\n\u003Cli\u003EChanged: Cleaned up some UX around customize stream items settings page\u003C/li\u003E\n\u003Cli\u003EChanged: All tables will now use card layout for mobile with full functionality.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Improved the get continue point api\u003C/li\u003E\n\u003Cli\u003EChanged: Removed progress tab on volume/chapter edit modals\u003C/li\u003E\n\u003Cli\u003EChanged: On mobile, download actionable will be pushed to the top layer (aka it\u0027s not nested anymore)\u003C/li\u003E\n\u003Cli\u003EChanged: OIDC cookies persist between restarts, removing the reauth flow each restart\u003C/li\u003E\n\u003Cli\u003EChanged: Display a warning when the read only role is selected when selecting roles for a user to really drive home what it means\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Slight memory improvement in creating images from PDFs\u003C/li\u003E\n\u003Cli\u003EChanged: Split left/right \u0026amp; up/down into different keybinds\u003C/li\u003E\n\u003Cli\u003EChanged: Updated to Angular 21\u003C/li\u003E\n\u003Cli\u003EChanged: Removed user stats page in favor of the profile page. Migrated the ability to click Total Comics/Books/etc to get historical data there as well.\u003C/li\u003E\n\u003Cli\u003EChanged: All but Manage Users/Libraries tables will now turn into cards on mobile viewports\u003C/li\u003E\n\u003Cli\u003EChanged: Marked a good amount of APIs as deprecated if they were no longer in use. These will be removed in v0.9.0 (next year).\u003C/li\u003E\n\u003Cli\u003EChanged: A lot of polish overall on Profile and Server Stats page\u003C/li\u003E\n\u003Cli\u003EChanged: Implicit profiles will now automatically be bound to the device you\u0027re using when they\u0027re created\u003C/li\u003E\n\u003Cli\u003EChanged: Search now searches against aliases for People\u003C/li\u003E\n\u003Cli\u003EChanged: (OIDC) Added a warning when auto save is required and a button to reset external Ids\u003C/li\u003E\n\u003Cli\u003EChanged: (Stats) Stop reporting average time to open an archive to Kavita Stats after the instance has sent 2 reports.\u003C/li\u003E\n\u003Cli\u003EChanged: Details page for volume/chapter will show the full file path and the koreader hash if present\u003C/li\u003E\n\u003Cli\u003EChanged: Removed a lot of dead localization keys\u003C/li\u003E\n\u003Cli\u003EChanged: Server Stats is now under Insights section\u003C/li\u003E\n\u003Cli\u003EChanged: Large optimizations on OPDS APIs. Things should be more consistent and faster across the board.\u003C/li\u003E\n\u003Cli\u003EChanged: Scan Folder API will now not force cover regeneration\u003C/li\u003E\n\u003Cli\u003EChanged: Event widget now shows active readers, rather than online users.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed not being able to change a person\u0027s name and use it as an alias in the same action.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bulk bookmark actions, showing view series.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed logging out with OIDC throwing an exception when using Authelia\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some OIDC errors showing a json response rather than redirecting to the login screen\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a potential edge case in the match modal code, allowing the spinner to stay indefinitely\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed broken link image being the wrong colour for light/dark themes\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed chapter detail, always showing a link to Kavita\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed character external AniList links being incorrect\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed locations always being locked after changing any role.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed unused person cover images not being removed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed publication date, not being localized\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed chapters by role streams on person page, not sorting volumes correctly.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed sometimes not being able to upload person cover without resetting first.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to remove OIDC configuration once set\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed magic numbers showing up in the publication status tooltip\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed selected language not always showing up in edit modals after opening it\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed KOReader Progress sync again\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where lastReadDate wasn\u0027t being calculated correctly on multiple APIs\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed recently updated not using pagination, causing the dashboard to become unresponsive when a large amount of series were recently added\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some library settings not saving on creation.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the db being missing in backups rarely when it was already in use (Thanks @DieselTech )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some flakiness with the keybind pickers\u003C/li\u003E\n\u003Cli\u003EFixed: Readonly role handling wasn\u0027t explicitly on the annotation code\u003C/li\u003E\n\u003Cli\u003EFixed: Some old migrations were running on each startup for no reason\u003C/li\u003E\n\u003Cli\u003EFixed: Some old app users (~4 years ago) didn\u0027t have createdUtc filled correctly for their User Table\u003C/li\u003E\n\u003Cli\u003EFixed: Some old migrations were missing date columns in AppUserRating\u003C/li\u003E\n\u003Cli\u003EFixed: Only show entity size on detail pages when the user is admin or has download role.\u003C/li\u003E\n\u003Cli\u003EFixed: Fix ChapterDto missing some locks\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed webtoon reading mode icon being incorrect\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed edit series relationship form not always rendering names\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to remove the first series relationship\u003C/li\u003E\n\u003Cli\u003EFixed: Potential fix for bookmark image button in epub reader positioned poorly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed default language, Remove Sort Prefix, and Inherit web links from first chapter not saving on library creation\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Reading Profile action menu not working on library detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed OIDC not being enabled if the IDP is not reachable at startup. Must be reachable on the first request.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed container process ignoring signals, notably preventing cleanly stopping the container with docker stop or podman stop (Thanks @ZeroKnight )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where a readonly admin account could be valid\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed how scheduling tasks with a random spread works to be more reliable.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where ASIN weren\u0027t allowed on Edit Person modal\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Potential fix for Kavita refreshing metadata and loosing match on series\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where bookmarks could be orphaned in the DB. You still will never lose the bookmarked files.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed issues where some PDFs wouldn\u0027t render correctly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed dropdowns having a black chevron in a dark theme.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where some cache profiles weren\u0027t being respected on Browsers\u003C/li\u003E\n\u003Cli\u003EFixed: (OIDC) Fixed being logged out when Kavita restarts with Docker\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t let users download a PDF within the reader via Ctrl\u002BS without the download role\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Edit Chapter modal not having an Editors field\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some settings being reset to their default value when saving something in the general tab\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed card items not aligning with width to cover images\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to add External Sources\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to edit your own Age Rating restriction even if you have the role\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Reading Profile names not updating due to some normalization issues\u003C/li\u003E\n\u003Cli\u003EFixed: Kavita is more lenient when deleting bookmarks.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed delete not working on chapter detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed OPDS recently-added not having pagination in the feed\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a few migrations that were running on each startup\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed actionable modal being cutoff\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with light novel libraries sometimes choosing the wrong starting location\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where check license button only worked the first load.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where after removing a theme, the old theme wasn\u0027t removed from the page and could result in some style bleed until refresh\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EGET /api/upload/reset-chapter-lock has been marked deprecated and will be removed in v0.9.0 (next release)\u003C/li\u003E\n\u003Cli\u003EPOST /api/want-to-read/ will be removed in v0.9.0, use v2 instead\u003C/li\u003E\n\u003Cli\u003EPOST /api/account/reset-api-key is removed, use /api/account/rotate-auth-key\u003C/li\u003E\n\u003Cli\u003EGET /api/users/myself is now deprecated and will be removed in v0.9.0\u003C/li\u003E\n\u003Cli\u003EGET /api/series/chapter-metadata, POST /api/series, POST /api/series/recently-added, POST /api/series/all, POST /api/upload/reset-chapter-lock, GET /api/stats/user/reading-history, GET /api/stats/server/top/years, GET /api/stats/reading-count-by-day, GET /api/server/count/year, GET /api/stats/server/top/users, GET /api/reader/all-chapter-progress, GET /api/recommended/quick-reads, GET /api/recommended/quick-catchup-reads, GET /api/recommended/highly-rated, GET /api/recommended/more-in, GET /api/recommended/rediscover will all be removed in v0.9.0 (next release)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ETheme\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded css variables to style tooltips: --tooltip-caret-color, --tooltip-bg-color, --tooltip-outline-color\u003C/li\u003E\n\u003Cli\u003EAdded misc css variable --offwhite-text-color\u003C/li\u003E\n\u003Cli\u003ENew css variables --dropdown-icon-white and --dropdown-icon-black\u003C/li\u003E\n\u003Cli\u003EAdded --activity-card-client-platform-badge-bg-color, --activity-card-client-device-badge-bg-color for Activity card badges\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.9 - New Stats pages, Journal Style reading, 50x Faster Scanner, and so much more!",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.9",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2026-01-14T21:26:43Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added a library setting to automatically copy weblinks from the first chapter in a series to the series. Defaults to false. (FR #3857, 2 upvotes)",
      "Volume and chapter detail pages will now show release years (FR #4145, 1 upvote)",
      "Added a library setting to set a default language for series when none is set in metadata (FR #4085, 1 upvote)",
      "Added custom keybinds, allowing users to remap, and add up to 5 keybinds per action. (FR #2563, 11 upvotes)",
      "Added some new custom keybinds for the site navigation.",
      "New settings for OPDS to allow a user to turn off Embedding the progress indicator in the title (great for KOReader, bad for Panels) and injection of a Continue Reading entry at the top. (FR #4131, 2 upvotes)",
      "sorting series by user rating (FR #4210, 1 upvote)",
      "Added the ability to create named Auth Keys with custom length (9-32 characters), expiration date per-user. Kavita will email users that the key is expiring soon or has expired if email is setup on the instance. (FR #3539, 3 upvotes)",
      "User LastActive will now be updated on any activity with Kavita",
      "Kavita now tracks all interactions with it for authenticated users/api/opds and will create a Client Device to represent interactions. Users can rename the devices or remove them. Devices contain some basic fingerprinting to avoid creating necessary noise.",
      "Kavita now allows admin\u0027s to see who is interacting with their server, on what device, and if they are active or not.",
      "Kavita now tracks reading sessions and will drive statistics from these. Reading sessions are created per-user on reading activity and expire after 30 minutes without further activity or at midnight. Reading sessions track what was read, how much, and total. Kavita will compact the data daily into a separate table for historical reasons with higher level aggregations.",
      "Kavita will now keep track of how many times you read a chapter/series (re-read count)",
      "Kavita will now prompt you if you haven\u0027t read a chapter after X days (configurable in settings) to either start over from the beginning, read incognito, or continue as-is. Reading over from the beginning will trigger a total read count increment.",
      "Added the ability to have a personalized profile screen to share with other users on the server. This is an **opt-in** feature. Profile screen will show information about what you do on the server, interesting facts about your reading habits, and reviews (a separate opt-in control).",
      "Users can now upload a profile image of themselves for their profile page and any other social interactions.",
      "Added the ability to filter annotations by likes",
      "Kavita now accepts an x-api-key header with an Auth Key for authentication. External apps no longer need to deal with JWTs. New API plugin/authkey-expires to check expiration on auth key.",
      "Profile pictures will sync with the picture claim if the user currently has no profile picture and OIDC sync is enabled.",
      "Added the ability to change the PDF renderer resolution (Mihon-apps) via a Server Setting. The admin can choose Default (1080x1920), High (1920x2560) or Ultra (2160x3840) (Thanks @StereotypicalCat)",
      "Massive overhaul to the server stats page. Focused into 2 tabs: Stats and Management. Stats gives you some unique insights into how your server is being read from with aggregate data. Management provides high level information like files added over time, spread of formats, publications statuses, etc.",
      "Reading profiles can now also be bound per device. Profiles with a device get precedence to profiles without. Each series can have at most one profiles for each device, and one without any. (FR #2929, 34 upvotes)",
      "Added stat collection for total pages/words/time read for users for an planned social badge feature",
      "Added the ability to sort by a user\u0027s own rating (FR #4210, 1 upvote) (Thanks @ToniKielo)",
      "Page offset toggle for double page manga reader mode to manually adjust page alignment for proper double-page spreads, including a keybind to toggle it. (FR #2660, 37 upvotes) (Thanks @linkion)",
      "Added the ability to read with Progress Sync for all files in Kavita (archives/pdf/epub) using Koreader (#4125, 3 upvotes)",
      "Added a 1am background job that ensures admins always have the appropriate side nav links for libraries. 2 users have reported an issue. I couldn\u0027t reproduce, this will fix just in case on their systems."
    ],
    "Removed": [],
    "Changed": [
      "Highest count in series info will now show no data if it\u0027s an internal magic number.",
      "People pages will now also show external links to MyAnimeList and Hardcover if their respective IDs are configured",
      "External ID tooltips will now show the character link when the person is only a character",
      "Changed the files at root warning during library creation to be a lot more obvious",
      "Backup files will now use ISO 8601 to denote time. (FR #4012, 2 upvotes)",
      "Updated the design of the tooltips across the app for better contrast",
      "Run metadata saving, and extra work on separate threads during the scan loop",
      "Show a progress bar in the UI for the scan",
      "Cover UI updates will now have a progress bar with information in it",
      "Massively improve the performance of updating a series during the scan loop",
      "The backup service now uses the SQLite command VACUUM INTO to create a working copy of the database file at the time of backup. (Thanks @DieselTech )",
      "Removed API Key from User",
      "Streamlined LastActive for user accounts to be handled for any API activity",
      "Opening the readers will no longer send a progress even immediately, you must paginate/scroll to send progress.",
      "Email-based devices are now called Email Devices to not clash with new Client Devices.",
      "Review cards username can be clicked to load their profile.",
      "Updated to .NET 10",
      "Remove default keybinds referencing meta keys (Windows Key)",
      "Do not use OIDC Authentication scheme if OIDC failed to initialize. Extra fail safes in case users OIDC did not initialize successfully, to not auto redirect etc",
      "(Kavita\u002B) Don\u0027t block startup to check for K\u002B license, do it in a background thread instead.",
      "OIDC roles are now case insensitive when syncing.",
      "Cleaned up some UX around customize stream items settings page",
      "All tables will now use card layout for mobile with full functionality.",
      "(Performance) Improved the get continue point api",
      "Removed progress tab on volume/chapter edit modals",
      "On mobile, download actionable will be pushed to the top layer (aka it\u0027s not nested anymore)",
      "OIDC cookies persist between restarts, removing the reauth flow each restart",
      "Display a warning when the read only role is selected when selecting roles for a user to really drive home what it means",
      "(Performance) Slight memory improvement in creating images from PDFs",
      "Split left/right \u0026 up/down into different keybinds",
      "Updated to Angular 21",
      "Removed user stats page in favor of the profile page. Migrated the ability to click Total Comics/Books/etc to get historical data there as well.",
      "All but Manage Users/Libraries tables will now turn into cards on mobile viewports",
      "Marked a good amount of APIs as deprecated if they were no longer in use. These will be removed in v0.9.0 (next year).",
      "A lot of polish overall on Profile and Server Stats page",
      "Implicit profiles will now automatically be bound to the device you\u0027re using when they\u0027re created",
      "Search now searches against aliases for People",
      "(OIDC) Added a warning when auto save is required and a button to reset external Ids",
      "(Stats) Stop reporting average time to open an archive to Kavita Stats after the instance has sent 2 reports.",
      "Details page for volume/chapter will show the full file path and the koreader hash if present",
      "Removed a lot of dead localization keys",
      "Server Stats is now under Insights section",
      "Large optimizations on OPDS APIs. Things should be more consistent and faster across the board.",
      "Scan Folder API will now not force cover regeneration",
      "Event widget now shows active readers, rather than online users."
    ],
    "Fixed": [
      "Fixed not being able to change a person\u0027s name and use it as an alias in the same action.",
      "Fixed bulk bookmark actions, showing view series.",
      "Fixed logging out with OIDC throwing an exception when using Authelia",
      "Fixed some OIDC errors showing a json response rather than redirecting to the login screen",
      "Fixed a potential edge case in the match modal code, allowing the spinner to stay indefinitely",
      "Fixed broken link image being the wrong colour for light/dark themes",
      "Fixed chapter detail, always showing a link to Kavita",
      "Fixed character external AniList links being incorrect",
      "Fixed locations always being locked after changing any role.",
      "Fixed unused person cover images not being removed.",
      "Fixed publication date, not being localized",
      "Fixed chapters by role streams on person page, not sorting volumes correctly.",
      "Fixed sometimes not being able to upload person cover without resetting first.",
      "Fixed not being able to remove OIDC configuration once set",
      "Fixed magic numbers showing up in the publication status tooltip",
      "Fixed selected language not always showing up in edit modals after opening it",
      "Fixed KOReader Progress sync again",
      "Fixed a bug where lastReadDate wasn\u0027t being calculated correctly on multiple APIs",
      "Fixed recently updated not using pagination, causing the dashboard to become unresponsive when a large amount of series were recently added",
      "Fixed some library settings not saving on creation.",
      "Fixed the db being missing in backups rarely when it was already in use (Thanks @DieselTech )",
      "Fixed some flakiness with the keybind pickers",
      "Readonly role handling wasn\u0027t explicitly on the annotation code",
      "Some old migrations were running on each startup for no reason",
      "Some old app users (~4 years ago) didn\u0027t have createdUtc filled correctly for their User Table",
      "Some old migrations were missing date columns in AppUserRating",
      "Only show entity size on detail pages when the user is admin or has download role.",
      "Fix ChapterDto missing some locks",
      "Fixed webtoon reading mode icon being incorrect",
      "Fixed edit series relationship form not always rendering names",
      "Fixed not being able to remove the first series relationship",
      "Potential fix for bookmark image button in epub reader positioned poorly",
      "Fixed default language, Remove Sort Prefix, and Inherit web links from first chapter not saving on library creation",
      "Fixed Reading Profile action menu not working on library detail page",
      "Fixed OIDC not being enabled if the IDP is not reachable at startup. Must be reachable on the first request.",
      "Fixed container process ignoring signals, notably preventing cleanly stopping the container with docker stop or podman stop (Thanks @ZeroKnight )",
      "Fixed a bug where a readonly admin account could be valid",
      "Fixed how scheduling tasks with a random spread works to be more reliable.",
      "Fixed a bug where ASIN weren\u0027t allowed on Edit Person modal",
      "(Kavita\u002B) Potential fix for Kavita refreshing metadata and loosing match on series",
      "Fixed a bug where bookmarks could be orphaned in the DB. You still will never lose the bookmarked files.",
      "Fixed issues where some PDFs wouldn\u0027t render correctly",
      "Fixed dropdowns having a black chevron in a dark theme.",
      "Fixed an issue where some cache profiles weren\u0027t being respected on Browsers",
      "(OIDC) Fixed being logged out when Kavita restarts with Docker",
      "Don\u0027t let users download a PDF within the reader via Ctrl\u002BS without the download role",
      "Fixed Edit Chapter modal not having an Editors field",
      "Fixed some settings being reset to their default value when saving something in the general tab",
      "Fixed card items not aligning with width to cover images",
      "Fixed not being able to add External Sources",
      "Fixed not being able to edit your own Age Rating restriction even if you have the role",
      "Fixed Reading Profile names not updating due to some normalization issues",
      "Kavita is more lenient when deleting bookmarks.",
      "Fixed delete not working on chapter detail page",
      "Fixed OPDS recently-added not having pagination in the feed",
      "Fixed a few migrations that were running on each startup",
      "Fixed actionable modal being cutoff",
      "Fixed a bug with light novel libraries sometimes choosing the wrong starting location",
      "(Kavita\u002B) Fixed a bug where check license button only worked the first load.",
      "Fixed a bug where after removing a theme, the old theme wasn\u0027t removed from the page and could result in some style bleed until refresh"
    ],
    "Theme": [
      "--tooltip-caret-color, --tooltip-bg-color, --tooltip-outline-color",
      "Added misc css variable --offwhite-text-color",
      "New css variables --dropdown-icon-white and --dropdown-icon-black",
      "Added --activity-card-client-platform-badge-bg-color, --activity-card-client-device-badge-bg-color for Activity card badges"
    ],
    "Developer": [],
    "Api": [
      "GET /api/upload/reset-chapter-lock has been marked deprecated and will be removed in v0.9.0 (next release)",
      "POST /api/want-to-read/ will be removed in v0.9.0, use v2 instead",
      "POST /api/account/reset-api-key is removed, use /api/account/rotate-auth-key",
      "GET /api/users/myself is now deprecated and will be removed in v0.9.0",
      "GET /api/series/chapter-metadata, POST /api/series, POST /api/series/recently-added, POST /api/series/all, POST /api/upload/reset-chapter-lock, GET /api/stats/user/reading-history, GET /api/stats/server/top/years, GET /api/stats/reading-count-by-day, GET /api/server/count/year, GET /api/stats/server/top/users, GET /api/reader/all-chapter-progress, GET /api/recommended/quick-reads, GET /api/recommended/quick-catchup-reads, GET /api/recommended/highly-rated, GET /api/recommended/more-in, GET /api/recommended/rediscover will all be removed in v0.9.0 (next release)"
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EHappy 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\u0027s not just that, it\u0027s \u003Cstrong\u003E12 Feature Requests\u003C/strong\u003E with a total of \u003Cstrong\u003E98 upvotes\u003C/strong\u003E, it\u0027s reworking a lot of foundational code now that we have multiple authentication mechanisms, improving Developer Experience working with Kavita (no more JWT management), a \u003Cstrong\u003EMASSIVE\u003C/strong\u003E speed improvement to the scanner, and of course a brand new stats system for Kavita (with a lot of inspiration from Hardcover).\u003C/p\u003E\n\u003Cp\u003ESince this is such a massive release, I wont be able to highlight all the large improvements, but I know you\u0027ll 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.\u003C/p\u003E\n\u003Cp\u003EThe key areas of focus:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EReading List Overhaul Project\u003C/strong\u003E - I\u0027ve worked closely with the CBL group to define some key improvements to Kavita\u0027s reading list experience along with the CBL import.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EKobo Sync\u003C/strong\u003E - Another big one that most other servers have adapted. We have Progress Sync support already, but this is the icing on the cake.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EKavita\u002B Enhancements\u003C/strong\u003E - Hardcover and MangaBaka (once it\u0027s stable) are still on my list, along with a slew of issues that have been piling up.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003EI look forward to your feedback on the new release. Before we go, I\u0027d 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!\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.8.3",
    "UpdateBody": "\u003Cp\u003ELooks like there were a few issues with OIDC and a bug in OPDS Pagination that didn\u0027t 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.\u003C/p\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Kavita will now filter out unsupported scopes before requesting them from your OIDC provider\u003C/li\u003E\n\u003Cli\u003EChanged: OIDC providers are now required to use tls (https)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where announcements with images would scale weird\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some OPDS feeds not including next markers (pagination) for certain total sizes.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed OIDC not working when a custom base URL is set\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed admin users having age restrictions applied when created with default permissions via OIDC\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to set default age restriction to Not Applicable once changed\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a race condition when changing both metadata and cover image of an entity, where one of the changes could be lost\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed OPDS not working correctly when a base URL is set\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.8.3 - OIDC and OPDS Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.8.3",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-10-23T12:31:49Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [
      "Kavita will now filter out unsupported scopes before requesting them from your OIDC provider",
      "OIDC providers are now required to use tls (https)"
    ],
    "Fixed": [
      "Fixed a bug where announcements with images would scale weird",
      "Fixed some OPDS feeds not including next markers (pagination) for certain total sizes.",
      "Fixed OIDC not working when a custom base URL is set",
      "Fixed admin users having age restrictions applied when created with default permissions via OIDC",
      "Fixed not being able to set default age restriction to Not Applicable once changed",
      "Fixed a race condition when changing both metadata and cover image of an entity, where one of the changes could be lost",
      "Fixed OPDS not working correctly when a base URL is set"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003ELooks like there were a few issues with OIDC and a bug in OPDS Pagination that didn\u0027t 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.8",
    "UpdateBody": "\u003Cp\u003EThis 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: \u003Cstrong\u003EOIDC\u003C/strong\u003E (170\u002B upvotes), \u003Cstrong\u003ECustom fonts for Epub reader\u003C/strong\u003E (25\u002B upvotes), and \u003Cstrong\u003EHighlight/Annotation system\u003C/strong\u003E (40\u002B upvotes). This is a feature packed release, so buckle up.\u003C/p\u003E\n\u003Ch3\u003EEpub Reader Refresh\u003C/h3\u003E\n\u003Cp\u003EFirst off, let\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EEpub Fonts\u003C/h3\u003E\n\u003Cimg width=\u00221637\u0022 height=\u0022687\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/903730c2-3c1a-4a06-bcf5-34112b7c0efc\u0022 /\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Ch3\u003EOIDC\u003C/h3\u003E\n\u003Cimg width=\u00222940\u0022 height=\u00221618\u0022 alt=\u0022login screen with OIDC enable\u0022 src=\u0022https://github.com/user-attachments/assets/8f1d8abb-da43-46fc-9a00-9bbb402b33dd\u0022 /\u003E\n\u003Cp align=\u0022center\u0022\u003E\n   \u003Cimg width=\u0022592\u0022 height=\u0022757\u0022 alt=\u0022some of the OIDC configuration options\u0022 src=\u0022https://github.com/user-attachments/assets/c85723d1-cf5b-4381-b4c7-03454d207786\u0022 /\u003E\n\u003C/p\u003E\n\u003Cp\u003EThis 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\u2019s 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.\u003C/p\u003E\n\u003Cp\u003EAdmins 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\u2014bypassing defaults in favor of permissions defined by the identity provider, so you can manage all user access centrally.\u003C/p\u003E\n\u003Cp\u003ERead all about it on the \u003Ca href=\u0022https://wiki.kavitareader.com/guides/admin-settings/open-id-connect/\u0022\u003Ewiki\u003C/a\u003E.\u003C/p\u003E\n\u003Ch3\u003EThe Annotation System\u003C/h3\u003E\n\u003Cimg width=\u00221916\u0022 height=\u0022378\u0022 alt=\u0022edit-annotation-drawer\u0022 src=\u0022https://github.com/user-attachments/assets/ae4c4137-9c78-493d-afab-4633db186ca7\u0022 /\u003E\n\u003Cimg width=\u00221006\u0022 height=\u0022925\u0022 alt=\u0022annotation-drawer\u0022 src=\u0022https://github.com/user-attachments/assets/083dc4b6-09fd-4395-bce2-79ff8f756d4a\u0022 /\u003E\n\u003Cp\u003EUsers 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.\u003C/p\u003E\n\u003Cp\u003EThe 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).\u003C/p\u003E\n\u003Cp\u003EAnnotations 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.\u003C/p\u003E\n\u003Cp\u003EKavita 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\u0027 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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\u0027m open to working with you to get the best experience.\u003C/p\u003E\n\u003Ch3\u003EOPDS Love\u003C/h3\u003E\n\u003Cp\u003EOPDS 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\u0027s implementation. First, pagination across the board. Not all apps support this unfortunately, which is where our next item shines: \u003Cstrong\u003EContinue From\u003C/strong\u003E. 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).\u003C/p\u003E\n\u003Ch3\u003EWhat\u0027s Next\u003C/h3\u003E\n\u003Cp\u003EThis release was quite challenging with the epub reader overhaul, but extremely satisfying polish and fix many outstanding issues. I can\u0027t 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).\u003C/p\u003E\n\u003Cp\u003ENext release I want to continue with my original plan of tackling more of Kavita\u002B and it\u0027s integration in Kavita, along with the backend switching to \u003Ca href=\u0022https://mangabaka.org?utm_source=kavita\u0022\u003EMangaBaka\u003C/a\u003E, focusing on a new Progress system to allow for richer stats, and a few more Feature Requests that didn\u0027t make it this release.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003Cli\u003EAdded: Added automatic account creation when logging in via OIDC.\u003C/li\u003E\n\u003Cli\u003EAdded: Allow admins to delegate user management to OIDC (Sync libraries, age restrictions, etc with OIDC roles)\u003C/li\u003E\n\u003Cli\u003EAdded support for requesting custom scopes from your OIDC provider\u003C/li\u003E\n\u003Cli\u003EAdded: Added the recent \u0027Enable Metadata\u0027 Library setting to KavitaStats reporting.\u003C/li\u003E\n\u003Cli\u003EAdded: Ability to export and import Metadata Settings\u003C/li\u003E\n\u003Cli\u003EAdded: Brought the manage metadata settings from Kavita\u002B 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)\u003C/li\u003E\n\u003Cli\u003EAdded: Manga library type now supports Tome keywords for filename parsing\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new library setting to remove common sort prefixes (The, A, An) from Sort titles. Disabled by default (FR #3037, 25 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003Cli\u003EAdded: New user preference to enable/disable colorscapes. Will override theme settings when disabled.\u003C/li\u003E\n\u003Cli\u003EAdded: (OPDS) All feeds from OPDS now support pagination\u003C/li\u003E\n\u003Cli\u003EAdded: Added support for pagination in the Recently updated endpoint (OPDS and normal)\u003C/li\u003E\n\u003Cli\u003EAdded: (Epub Reader) Kavita\u0027s menu will now show progress and estimated time left to complete the book\u003C/li\u003E\n\u003Cli\u003EAdded: (Epub Reader) Added the ability to highlight text and add an annotation with rich text support.\u003C/li\u003E\n\u003Cli\u003EAdded: (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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to create annotations around book text with rich text support.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a basic search for annotation hook.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to export annotations into json format.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a browse annotation page (from user menu) with filtering and sorting. Can export a filtered view or all annotations. Can also bulk delete.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a file size filtering option for Series\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added the ability to resend the license/welcome email to your email from Kavita.\u003C/li\u003E\n\u003Cli\u003EAdded: Added social preferences to allow users to decide what, where, and when to share and view annotations and reviews\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability for users to like other users annotations (assuming appropriate opt-in settings)\u003C/li\u003E\n\u003Cli\u003EAdded: Total file size below series/volume/chapter title on the detail pages\u003C/li\u003E\n\u003Cli\u003EAdded: Added Folder path in the series details tab if you\u0027re an admin\u003C/li\u003E\n\u003Cli\u003EAdded: New user preference called Data Saver. Currently only disables prefetching on the PDF reader.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Cache Kavita locale as to not require the expensive operation\u003C/li\u003E\n\u003Cli\u003EChanged: Auto disable double page mode on small screens in the epub reader\u003C/li\u003E\n\u003Cli\u003EChanged: Blacklist and whitelist, age rating, and field mappings are now available without Kavita\u002B\u003C/li\u003E\n\u003Cli\u003EChanged: 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\u003C/li\u003E\n\u003Cli\u003EChanged: Show a validation error in the UI for Edit Person - ASIN field, as it wasn\u0027t clear that a valid ISBN 10/13 code must be used\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t allow users to save edit library modal without having at least one file type selected.\u003C/li\u003E\n\u003Cli\u003EChanged: Optimized and cleaned up the PDF Metadata extraction code\u003C/li\u003E\n\u003Cli\u003EChanged: When reading PDF metadata, if an encrypted pdf file is found, be more explicit when reporting to Media Errors\u003C/li\u003E\n\u003Cli\u003EChanged: When there are files at the library folder root, warn the user that this is not supported in the Library Settings modal.\u003C/li\u003E\n\u003Cli\u003EChanged: Update the dockerfile to use ubuntu noble base container image. Focal went EOL in May \u002725. Removed libssl 1.1 since it is no longer supported.\u003C/li\u003E\n\u003Cli\u003EChanged: Renamed Comic (Legacy) to Comic (Flexible) and added subtitle explaining each library type more clearly (paired with a new wiki documentation)\u003C/li\u003E\n\u003Cli\u003EChanged: Drawers in the epub reader are now resizable\u003C/li\u003E\n\u003Cli\u003EChanged: Go to Page in the epub reader is now page 1 based, making everything consistent\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t allow 2 column \u002B vertical as Japanese readers told it makes no sense.\u003C/li\u003E\n\u003Cli\u003EChanged: Added some basic hack support for epubs when they use ./ in the urls\u003C/li\u003E\n\u003Cli\u003EChanged: (OPDS) If a user has reading progress on a Reading List/Series/Volume, inject a continue reading item at the top of the feed, to avoid needless scrolling.\u003C/li\u003E\n\u003Cli\u003EChanged: (OPDS) Inject a unicode icon to showcase reading progress in the opds feed. (\u2B58\u25D4\u25D1\u25D5\u2B24) (FR #4030, 2 upvotes)\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Added an extra warning to ensure users understand that Kavita is not Kavita\u002B\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Added a dedicated Cancel Sub button on License page\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Prefill email for Manage/Cancel buttons\u003C/li\u003E\n\u003Cli\u003EChanged: Added a loading animation for ToC drawer for slow connections\u003C/li\u003E\n\u003Cli\u003EChanged: Added space as a keybind to toggle the action bars in the epub reader\u003C/li\u003E\n\u003Cli\u003EChanged: Remove mentions of the analyze library option in the UI\u003C/li\u003E\n\u003Cli\u003EChanged: Search results will now be sorted by length first to ensure short titles are always findable\u003C/li\u003E\n\u003Cli\u003EChanged: Added an additional check to Manga volume/chapter parser to handle duplicate volume/chapter markers in the file:\n\u0027Series - Vol 1 Ch 2.5 - Vol 2 Omakes\u0027\nThis will now be parsed correctly as Volume 1 Chapter 2.5.\u003C/li\u003E\n\u003Cli\u003EChanged: (Epub Reader) Removed the virtual page controls and now all pagination is around the actual pages. The old system led to a lot of confusion with little benefit.\u003C/li\u003E\n\u003Cli\u003EChanged: (Epub Reader) Table of Contents is now in it\u0027s own drawer and separate from the reader settings\u003C/li\u003E\n\u003Cli\u003EChanged: (Epub Reader) Personal Table of Contents (Text Bookmarks) is now in a separate drawer with the Image Bookmarks\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Only check for expired scrobbling token if there is an active license.\u003C/li\u003E\n\u003Cli\u003EChanged: Bookmarks (epub or archive) now store chapter title\u003C/li\u003E\n\u003Cli\u003EChanged: When a download is in progress, Kavita will keep the screen awake\u003C/li\u003E\n\u003Cli\u003EChanged: Epub reader confirm dialog is now styled for book reader to match the book theme\u003C/li\u003E\n\u003Cli\u003EChanged: Card detail layout will now also remember actual scroll position\u003C/li\u003E\n\u003Cli\u003EChanged: Added a warning when no email has been setup on device screen\u003C/li\u003E\n\u003Cli\u003EChanged: (OPDS) Any OPDS activity will now update LastActive on user\u0027s account\u003C/li\u003E\n\u003Cli\u003EChanged: Removed duplicate information from series/volume/chapter details page\u003C/li\u003E\n\u003Cli\u003EChanged: Review sharing is now linked to the newly introduced social preferences\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked series detail page to move release year and size to the top section and thin out details tab.\u003C/li\u003E\n\u003Cli\u003EChanged: Explicitly do not read metadata when disabled\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed not being returned to your last used page after being forcefully logged out\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed field mappings not being normalized when matching\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed cover image not saving for Edit Person modal\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed initial create library flow not saving enable metadata setting\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixes a warning showing up for expired AniList tokens while there is no active Kavita\u002B license\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed overlapping buttons on non-English locales in Manage Library page (Thanks @fpammer )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed blank options in PDF reader due to ftl files not being supported\u003C/li\u003E\n\u003Cli\u003EFixed: (OPDS) Fixed an off-by-one bug on OPDS-PS with KOReader explicitly, as they don\u0027t follow the spec and send misleading numbers. (Thanks @fpammer for the help debugging)\u003C/li\u003E\n\u003Cli\u003EFixed: (OPDS) Fixed Open Search not sending total items in the feed.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where Kavita\u002B was quitting early before checking for stale data in metadata matching\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Ensure Kavita uses existing External Series Metadata over weblinks now that we have Match flow\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where Koreader was not able to pull progress from Kavita\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bulk actions not being hooked up on the libraries settings page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some internal metadata still being used when Enable Metadata is turned off\u003C/li\u003E\n\u003Cli\u003EFixed: Try to fix webtoon reader skipping chapters when opening fully read chapters\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where Koreader was not able to pull progress from Kavita\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) Fixed text bleeding issues with column-based layout\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some interaction weirdness with Yomitan\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) Fixed an issue where if any DOM/UI layout changes happened outside the Kavita epub reader, it could break existing progress on books\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when iframing was enabled, each api would log a warning statement.\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) A lot of polish around reliability on column layout.\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) Don\u0027t close the reader when the book line overlay was open and user hit Escape.\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) Link rewiring for epubs now work with xhtml links\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) Images could overflow in 2 column mode due to missing width calc\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with K\u002B license message showing due to missing signal accessor.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed jump bar not properly using sort name instead of series name, which can throw it off if they differ.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed shift clicking not selecting all items from the last selection when switching entities on the series detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed missing keyword token in PDF Metadata parser\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where primary buttons would sometimes render as blue\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the UI Jumpbar grouping didn\u0027t align with the backend one\u003C/li\u003E\n\u003Cli\u003EFixed: Request too large errors were getting grouped with a generic error.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EReturn 404 responses for api fallbacks\u003C/li\u003E\n\u003Cli\u003EOPDS APIs will now start pagination at 1\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ETheme\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded CSS var for series detail title color, allowing themes to configure the color. Falls back to the default of white if color not supplied in theme. (Thanks @YodaDaCoda)\u003C/li\u003E\n\u003Cli\u003ENew CSS variables for better theming: (Thanks @gmahomarf)\n\u003Cstrong\u003E--card-title-text-color:\u003C/strong\u003E Text color for card titles.\n\u003Cstrong\u003E--card-body-bg-color\u003C/strong\u003E: Background color for card bodies (.card-body).\n\u003Cstrong\u003E--card-overlay-text-color\u003C/strong\u003E: Text color in card overlays (e.g. the overlay when hovering over library entries).\n\u003Cstrong\u003E--side-nav-header-text-color\u003C/strong\u003E: Text color of side navigation headers.\n\u003Cstrong\u003E--pref-side-nav-header-text-color\u003C/strong\u003E: Text color of side navigation headers in the preferences page.\n\u003Cstrong\u003E--side-nav-item-color\u003C/strong\u003E:  The non-active counterpart to \u003Cstrong\u003E--side-nav-item-active-color\u003C/strong\u003E, i.e. the color of the vertical bar to the left of side navigation items not currently active.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.8 - Epub Reader Overhaul, an Annotation System and OIDC!",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.8",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-10-20T11:26:24Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "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 automatic account creation when logging in via OIDC.",
      "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 the recent \u0027Enable Metadata\u0027 Library setting to KavitaStats reporting.",
      "Ability to export and import Metadata Settings",
      "Brought the manage metadata settings from Kavita\u002B 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)",
      "Manga library type now supports Tome keywords for filename parsing",
      "Added a new library setting to remove common sort prefixes (The, A, An) from Sort titles. Disabled by default (FR #3037, 25 upvotes)",
      "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)",
      "New user preference to enable/disable colorscapes. Will override theme settings when disabled.",
      "(OPDS) All feeds from OPDS now support pagination",
      "Added support for pagination in the Recently updated endpoint (OPDS and normal)",
      "(Epub Reader) Kavita\u0027s menu will now show progress and estimated time left to complete the book",
      "(Epub Reader) Added the ability to highlight text and add an annotation with rich text support.",
      "(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 the ability to create annotations around book text with rich text support.",
      "Added a basic search for annotation hook.",
      "Added the ability to export annotations into json format.",
      "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 a file size filtering option for Series",
      "(Kavita\u002B) Added the ability to resend the license/welcome email to your email from Kavita.",
      "Added social preferences to allow users to decide what, where, and when to share and view annotations and reviews",
      "Added the ability for users to like other users annotations (assuming appropriate opt-in settings)",
      "Total file size below series/volume/chapter title on the detail pages",
      "Added Folder path in the series details tab if you\u0027re an admin",
      "New user preference called Data Saver. Currently only disables prefetching on the PDF reader."
    ],
    "Removed": [],
    "Changed": [
      "Cache Kavita locale as to not require the expensive operation",
      "Auto disable double page mode on small screens in the epub reader",
      "Blacklist and whitelist, age rating, and field mappings are now available without Kavita\u002B",
      "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",
      "Show a validation error in the UI for Edit Person - ASIN field, as it wasn\u0027t clear that a valid ISBN 10/13 code must be used",
      "Don\u0027t allow users to save edit library modal without having at least one file type selected.",
      "Optimized and cleaned up the PDF Metadata extraction code",
      "When reading PDF metadata, if an encrypted pdf file is found, be more explicit when reporting to Media Errors",
      "When there are files at the library folder root, warn the user that this is not supported in the Library Settings modal.",
      "Update the dockerfile to use ubuntu noble base container image. Focal went EOL in May \u002725. Removed libssl 1.1 since it is no longer supported.",
      "Renamed Comic (Legacy) to Comic (Flexible) and added subtitle explaining each library type more clearly (paired with a new wiki documentation)",
      "Drawers in the epub reader are now resizable",
      "Go to Page in the epub reader is now page 1 based, making everything consistent",
      "Don\u0027t allow 2 column \u002B vertical as Japanese readers told it makes no sense.",
      "Added some basic hack support for epubs when they use ./ in the urls",
      "(OPDS) If a user has reading progress on a Reading List/Series/Volume, inject a continue reading item at the top of the feed, to avoid needless scrolling.",
      "(OPDS) Inject a unicode icon to showcase reading progress in the opds feed. (\u2B58\u25D4\u25D1\u25D5\u2B24) (FR #4030, 2 upvotes)",
      "(Kavita\u002B) Added an extra warning to ensure users understand that Kavita is not Kavita\u002B",
      "(Kavita\u002B) Added a dedicated Cancel Sub button on License page",
      "(Kavita\u002B) Prefill email for Manage/Cancel buttons",
      "Added a loading animation for ToC drawer for slow connections",
      "Added space as a keybind to toggle the action bars in the epub reader",
      "Remove mentions of the analyze library option in the UI",
      "Search results will now be sorted by length first to ensure short titles are always findable",
      "Added an additional check to Manga volume/chapter parser to handle duplicate volume/chapter markers in the file:",
      "(Epub Reader) Removed the virtual page controls and now all pagination is around the actual pages. The old system led to a lot of confusion with little benefit.",
      "(Epub Reader) Table of Contents is now in it\u0027s own drawer and separate from the reader settings",
      "(Epub Reader) Personal Table of Contents (Text Bookmarks) is now in a separate drawer with the Image Bookmarks",
      "(Kavita\u002B) Only check for expired scrobbling token if there is an active license.",
      "Bookmarks (epub or archive) now store chapter title",
      "When a download is in progress, Kavita will keep the screen awake",
      "Epub reader confirm dialog is now styled for book reader to match the book theme",
      "Card detail layout will now also remember actual scroll position",
      "Added a warning when no email has been setup on device screen",
      "(OPDS) Any OPDS activity will now update LastActive on user\u0027s account",
      "Removed duplicate information from series/volume/chapter details page",
      "Review sharing is now linked to the newly introduced social preferences",
      "Tweaked series detail page to move release year and size to the top section and thin out details tab.",
      "Explicitly do not read metadata when disabled"
    ],
    "Fixed": [
      "Fixed not being returned to your last used page after being forcefully logged out",
      "Fixed field mappings not being normalized when matching",
      "Fixed cover image not saving for Edit Person modal",
      "Fixed initial create library flow not saving enable metadata setting",
      "(Kavita\u002B) Fixes a warning showing up for expired AniList tokens while there is no active Kavita\u002B license",
      "Fixed overlapping buttons on non-English locales in Manage Library page (Thanks @fpammer )",
      "Fixed blank options in PDF reader due to ftl files not being supported",
      "(OPDS) Fixed an off-by-one bug on OPDS-PS with KOReader explicitly, as they don\u0027t follow the spec and send misleading numbers. (Thanks @fpammer for the help debugging)",
      "(OPDS) Fixed Open Search not sending total items in the feed.",
      "(Kavita\u002B) Fixed a bug where Kavita\u002B was quitting early before checking for stale data in metadata matching",
      "(Kavita\u002B) Ensure Kavita uses existing External Series Metadata over weblinks now that we have Match flow",
      "Fixed an issue where Koreader was not able to pull progress from Kavita",
      "Fixed bulk actions not being hooked up on the libraries settings page",
      "Fixed some internal metadata still being used when Enable Metadata is turned off",
      "Try to fix webtoon reader skipping chapters when opening fully read chapters",
      "Fixed an issue where Koreader was not able to pull progress from Kavita",
      "(Epub Reader) Fixed text bleeding issues with column-based layout",
      "Fixed some interaction weirdness with Yomitan",
      "(Epub Reader) Fixed an issue where if any DOM/UI layout changes happened outside the Kavita epub reader, it could break existing progress on books",
      "Fixed a bug when iframing was enabled, each api would log a warning statement.",
      "(Epub Reader) A lot of polish around reliability on column layout.",
      "(Epub Reader) Don\u0027t close the reader when the book line overlay was open and user hit Escape.",
      "(Epub Reader) Link rewiring for epubs now work with xhtml links",
      "(Epub Reader) Images could overflow in 2 column mode due to missing width calc",
      "Fixed a bug with K\u002B license message showing due to missing signal accessor.",
      "Fixed jump bar not properly using sort name instead of series name, which can throw it off if they differ.",
      "Fixed shift clicking not selecting all items from the last selection when switching entities on the series detail page",
      "Fixed missing keyword token in PDF Metadata parser",
      "Fixed a bug where primary buttons would sometimes render as blue",
      "Fixed a bug where the UI Jumpbar grouping didn\u0027t align with the backend one",
      "Request too large errors were getting grouped with a generic error."
    ],
    "Theme": [
      " Added CSS var for series detail title color, allowing themes to configure the color. Falls back to the default of white if color not supplied in theme. (Thanks @YodaDaCoda)",
      "(Thanks @gmahomarf)"
    ],
    "Developer": [],
    "Api": [
      "Return 404 responses for api fallbacks",
      "OPDS APIs will now start pagination at 1"
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EThis 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: \u003Cstrong\u003EOIDC\u003C/strong\u003E (170\u002B upvotes), \u003Cstrong\u003ECustom fonts for Epub reader\u003C/strong\u003E (25\u002B upvotes), and \u003Cstrong\u003EHighlight/Annotation system\u003C/strong\u003E (40\u002B upvotes). This is a feature packed release, so buckle up.\u003C/p\u003E\n\u003Ch3\u003EEpub Reader Refresh\u003C/h3\u003E\n\u003Cp\u003EFirst off, let\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EEpub Fonts\u003C/h3\u003E\n\u003Cimg width=\u00221637\u0022 height=\u0022687\u0022 alt=\u0022image\u0022 src=\u0022https://github.com/user-attachments/assets/903730c2-3c1a-4a06-bcf5-34112b7c0efc\u0022 /\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Ch3\u003EOIDC\u003C/h3\u003E\n\u003Cimg width=\u00222940\u0022 height=\u00221618\u0022 alt=\u0022login screen with OIDC enable\u0022 src=\u0022https://github.com/user-attachments/assets/8f1d8abb-da43-46fc-9a00-9bbb402b33dd\u0022 /\u003E\n\u003Cp align=\u0022center\u0022\u003E\n   \u003Cimg width=\u0022592\u0022 height=\u0022757\u0022 alt=\u0022some of the OIDC configuration options\u0022 src=\u0022https://github.com/user-attachments/assets/c85723d1-cf5b-4381-b4c7-03454d207786\u0022 /\u003E\n\u003C/p\u003E\n\u003Cp\u003EThis 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\u2019s 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.\u003C/p\u003E\n\u003Cp\u003EAdmins 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\u2014bypassing defaults in favor of permissions defined by the identity provider, so you can manage all user access centrally.\u003C/p\u003E\n\u003Cp\u003ERead all about it on the \u003Ca href=\u0022https://wiki.kavitareader.com/guides/admin-settings/open-id-connect/\u0022\u003Ewiki\u003C/a\u003E.\u003C/p\u003E\n\u003Ch3\u003EThe Annotation System\u003C/h3\u003E\n\u003Cimg width=\u00221916\u0022 height=\u0022378\u0022 alt=\u0022edit-annotation-drawer\u0022 src=\u0022https://github.com/user-attachments/assets/ae4c4137-9c78-493d-afab-4633db186ca7\u0022 /\u003E\n\u003Cimg width=\u00221006\u0022 height=\u0022925\u0022 alt=\u0022annotation-drawer\u0022 src=\u0022https://github.com/user-attachments/assets/083dc4b6-09fd-4395-bce2-79ff8f756d4a\u0022 /\u003E\n\u003Cp\u003EUsers 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.\u003C/p\u003E\n\u003Cp\u003EThe 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).\u003C/p\u003E\n\u003Cp\u003EAnnotations 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.\u003C/p\u003E\n\u003Cp\u003EKavita 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\u0027 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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\u0027m open to working with you to get the best experience.\u003C/p\u003E\n\u003Ch3\u003EOPDS Love\u003C/h3\u003E\n\u003Cp\u003EOPDS 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\u0027s implementation. First, pagination across the board. Not all apps support this unfortunately, which is where our next item shines: \u003Cstrong\u003EContinue From\u003C/strong\u003E. 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).\u003C/p\u003E\n\u003Ch3\u003EWhat\u0027s Next\u003C/h3\u003E\n\u003Cp\u003EThis release was quite challenging with the epub reader overhaul, but extremely satisfying polish and fix many outstanding issues. I can\u0027t 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).\u003C/p\u003E\n\u003Cp\u003ENext release I want to continue with my original plan of tackling more of Kavita\u002B and it\u0027s integration in Kavita, along with the backend switching to \u003Ca href=\u0022https://mangabaka.org?utm_source=kavita\u0022\u003EMangaBaka\u003C/a\u003E, focusing on a new Progress system to allow for richer stats, and a few more Feature Requests that didn\u0027t make it this release.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.7",
    "UpdateBody": "\u003Cp\u003EThis 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\u002B, 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!\u003C/p\u003E\n\u003Cp\u003EBefore 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\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EComic Metadata (Kavita\u002B)\u003C/h3\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/e394d3fe-e56c-49ab-ae2b-7675b5aee4d2\u0022 alt=\u0022438843284-0fac5031-db71-48c6-9bde-0eaae1a2fb1c\u0022 /\u003E\nCan you believe everything you see is issue metadata from Kavita\u002B? 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 \u003Cstrong\u003Eseries\u003C/strong\u003E and \u003Cstrong\u003Eissue\u003C/strong\u003E level. Data comes from \u003Ca href=\u0022https://comicbookroundup.com/\u0022\u003EComic Book Roundup\u003C/a\u003E.\u003C/p\u003E\n\u003Cp\u003EKavtia\u002B 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.\u003C/p\u003E\n\u003Ch2\u003EBrowse (and filter) People/Genre/Tags\u003C/h2\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/ce9a32b8-5e2d-4067-b544-f169c9ca3f8b\u0022 alt=\u0022455074614-d22a39a1-f92e-443b-aa58-27968d8ccf7a\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/ecf27a0d-c8da-4abd-8d70-29e419d79f73\u0022 alt=\u0022455074644-6c1d2cfa-d92c-40aa-b77b-36a442b3457b\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003EIn this release, I\u0027ve 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)\u003C/p\u003E\n\u003Ch2\u003EReading Profiles\u003C/h2\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/8acd6566-523b-4a54-abd9-748fede93dcc\u0022 alt=\u0022452782185-0fe8ac41-ecd5-42ef-aabf-2b5b49c09ab2\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003EReading Profiles capture your reader settings (image, pdf, epub) into an entity that can be bound 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.\u003C/p\u003E\n\u003Cp\u003EIn addition, there are Implicit profiles. These aren\u0027t 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 \u0027promote\u0027 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).\u003C/p\u003E\n\u003Cp\u003EThe wiki has a great overview on how the new system works. See \u003Ca href=\u0022https://wiki.kavitareader.com/guides/user-settings/reading-profiles/\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003Ch3\u003EAn Updated Mihon Extension\u003C/h3\u003E\n\u003Cp\u003EOur Mihon extension has been updated. The original plugin was written by @ThePromidius, but hasn\u0027t 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 \u003Ca href=\u0022https://discord.gg/BRvY78QMAm\u0022\u003Ediscord\u003C/a\u003E to share feedback.\u003C/p\u003E\n\u003Ch4\u003EMihon compatible\u003C/h4\u003E\n\u003Cul\u003E\n\u003Cli\u003EIntroduced a new filter: \u003Cstrong\u003ESpecial Lists\u003C/strong\u003E \u2014 view your Want to Read or Reading lists.\u003C/li\u003E\n\u003Cli\u003ECustom Detail Page for \u003Cstrong\u003EReading Lists\u003C/strong\u003E\u003C/li\u003E\n\u003Cli\u003EOption to automatically update the cover to match the latest volume.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch4\u003EFork Only\u003C/h4\u003E\n\u003Cul\u003E\n\u003Cli\u003E[Komikku] Suggestions display all related titles first.\u003C/li\u003E\n\u003Cli\u003E[Komikku] Reading List suggestions now show all the list\u0027s items first.\u003C/li\u003E\n\u003Cli\u003EOptions to use GroupTags with multiple categories when available: Type (Library name) ; Demographic ; Genres ; Tags (works only on Forks that support this)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/90f38a4a-daee-4826-9637-a2d026df1b05\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003EKoreader Sync Support\u003C/h3\u003E\n\u003Cp\u003EWe 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 \u003Ca href=\u0022https://wiki.kavitareader.com/guides/3rdparty/koreader/#koreader\u0022\u003Ewiki\u003C/a\u003E.\u003C/p\u003E\n\u003Ch3\u003EThe Misc Stuff\u003C/h3\u003E\n\u003Cp\u003EThere were a ton of smaller changes that I wanted to make sure I call out.\u003C/p\u003E\n\u003Col\u003E\n\u003Cli\u003EActionables 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.\u003C/li\u003E\n\u003Cli\u003ELibraries 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.\u003C/li\u003E\n\u003Cli\u003EThere was a lot of bugfixing and polish around Kavita\u002B this release. Hopefully most issues plaguing users are solved.\u003C/li\u003E\n\u003Cli\u003EAgain, if you want to get to the browse genre/tag screens, you can get to it here:\u003C/li\u003E\n\u003C/ol\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/792703ee-eaa6-40b5-a588-0a9965953a2f\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003EWith 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\u002B integrates into Kavita along with switching to MangaBaka as a data source for metadata.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Users can now use the shortcut Ctrl\u002BK to open the search window\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita\u002B 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.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Kavita can now download series and issue metadata from ComicBookRoundup. New settings for each Chapter-level item.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) New ratings from ComicBookRoundup on Series Detail page\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to browse all Genres and Tags in the Server (FR #3173, 5 votes)\u003C/li\u003E\n\u003Cli\u003EAdded: Updated Matched Metadata to have a library type filter, given that a user might want to do just Comics or Manga at a time.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a page to browse all Genres/Tags. Currently accessible from user menu until I find a good linking location.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003Cli\u003EAdded: Added an implicit Reading Profile system so changes made during a reading session will persist reloads but not affect the bound Reading Profile.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a setting to disable the width override when reaching specific breakpoints (uses the new theme variables)\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Scrobbling items can now be deleted in case you accidentally created one\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new library setting to disable metadata parsing. This setting, when off, will ensure Kavita only uses filename parsing. (FR #3695, 4 votes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability for Kavita and Koreader to sync progress (Thanks @tgkenney for driving it home and @MFDeAngelo for doing 80% of the feature).\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Reading lists will now only show one of promote \u0026amp; unpromote\u003C/li\u003E\n\u003Cli\u003EChanged: Removed the opacity from tooltips\u003C/li\u003E\n\u003Cli\u003EChanged: Go to Page prompts on book/manga reader now use a custom styled window\u003C/li\u003E\n\u003Cli\u003EChanged: The ToC in the EPUB reader will now mark a chapter as current until the next chapter is reached\u003C/li\u003E\n\u003Cli\u003EChanged: The reset password form will now be disabled if you do not have permissions to change your password\u003C/li\u003E\n\u003Cli\u003EChanged: Collections will now only show one of promote \u0026amp; unpromote\u003C/li\u003E\n\u003Cli\u003EChanged: Reading lists will now only show one of promote \u0026amp; unpromote\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Slight changes to the UX around promoted Reading lists and Collections on the detail pages\u003C/li\u003E\n\u003Cli\u003EChanged: (Security) Ensure the remote IP address is correct when behind a Reverse Proxy for Security log\u003C/li\u003E\n\u003Cli\u003EChanged: Updated dependencies\u003C/li\u003E\n\u003Cli\u003EChanged: On first startup (non-docker), rename appsettings-init -\u0026gt; appsettings to avoid users overwriting their appsettings.json (FR  #3678, 2 votes)\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Ensure all people metadata from Kavita\u002B are trimmed of spaces\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Switched to a more optimized and better mechanism to choose a \u0027better\u0027 image to avoid switching to a lower res image from Kavita\u002B\u003C/li\u003E\n\u003Cli\u003EChanged: Optimized code for checking similarity for Person Cover image against known placeholders from AniList.\u003C/li\u003E\n\u003Cli\u003EChanged: Smart Filters page now shows a preview of the smart filter\u003C/li\u003E\n\u003Cli\u003EChanged: Disable Library settings to manage (create) Collections and Reading Lists from ComicInfo tags by default.\u003C/li\u003E\n\u003Cli\u003EChanged: Made the cutoff before the More on the side nav to be slightly larger\u003C/li\u003E\n\u003Cli\u003EChanged: When opening a Genre, Tag, Person, etc, the title of all series page will show a nicer message, like \u0027Written by {{name}}\u0027 (FR #3825, 1 vote)\u003C/li\u003E\n\u003Cli\u003EChanged: Browse Authors/Artists is now a Browse People page with filtering and sorting. (Closes FR #2556, 39 votes)\u003C/li\u003E\n\u003Cli\u003EChanged: Width override can now be saved to a reading profile\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Changed how Kavita\u002B decides if a series is completed to be more lenient\u003C/li\u003E\n\u003Cli\u003EChanged: Known For section on a person detail page will now take all roles into account\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Kavita\u002B will now sync scrobble at a random minute instead of at the start of the hour\u003C/li\u003E\n\u003Cli\u003EChanged: Carry over incognito between chapter loads (in the reader\u0027s url)\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Throw a toastr on matched metadata page when there is a rate limit issue.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed an exception occurring when using Kavita over an insecure connection, causing some settings pages to not show up\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed being unable to disable/enable automatic webtoon detection\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the volume modal missing the word count header\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed preferences not displaying until locale took too long to load in\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the section jumper in the EPUB reader using the wrong terms\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed download actionable missing for Admins in some cases\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the null cover image issue\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed the first chapter in a series not having a cover if K\u002B replaces the series cover\u003C/li\u003E\n\u003Cli\u003EFixed: When upgrading Kavita, clear out existing Github cache\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a lot of missing localization string (a never ending battle)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where series detail could show a default value when no localized name was present\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a few bugs around choosing better images that broke for Series/chapters from Kavita\u002B\u003C/li\u003E\n\u003Cli\u003EFixed: Fix an edge case bug where cache directory can get stuck existing but empty, preventing reading.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where body-level classes weren\u0027t being transferred to Kavita\u0027s epub html in some cases\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Match item showing Comic (Legacy)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where publisher images would fail to download\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some minor issues around the rendering of the sidenav items (Thanks @MrRobotjs)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a rare bug with crypto.UUID by providing a fallback.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where updating the name of a person in the UI wasn\u0027t updating their normalized name, potentially breaking the flow.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed import menu (Import CBL) in pref side nav missing.\u003C/li\u003E\n\u003Cli\u003EFixed: (Image Reader) Fixed ReadingDirection impacting what clicking does when using UpDown ReadingMode\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where book reader had poorly colored text/inputs from a recent bootstrap update.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) This should fix the anilist token needing to be regenerated bug.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed exception while trying to assign average rating when Kavita\u002B returned no ratings\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed Kavita\u002B publication status being removed after the series is scanned, Kavita\u002B now locks the field\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed Kavita\u002B publication status being wrong for EPUBs\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed Kavita\u002B publication status using volume count when series do not have any volumes\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed destination values autofilling the first letter of the source value (Genre/Tag mappings)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the Known For filter sometimes not returning any results\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Genres, Tags not being restricted to Library\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed People not being age, or library restricted\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed scrobble history on mobile devices not being readable\u003C/li\u003E\n\u003Cli\u003EFixed: Removed \uD68C as a volume parsing marker per request\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading list delete button not working\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ETheme\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded --input-hint-border-color, --input-hint-text-color added for the new shortcut hint on Search input\u003C/li\u003E\n\u003Cli\u003EAdded --setting-mobile-breakpoint, --setting-tablet-breakpoint, --setting-desktop-breakpoint theme variables\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.7 - Comic Metadata Downloading, Reading Profiles, Browse by Genre and More",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.7",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-07-05T20:08:58Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Users can now use the shortcut Ctrl\u002BK to open the search window",
      "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.",
      "Kavita\u002B 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.",
      "(Kavita\u002B) Kavita can now download series and issue metadata from ComicBookRoundup. New settings for each Chapter-level item.",
      "(Kavita\u002B) New ratings from ComicBookRoundup on Series Detail page",
      "Added the ability to browse all Genres and Tags in the Server (FR #3173, 5 votes)",
      "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 a page to browse all Genres/Tags. Currently accessible from user menu until I find a good linking location.",
      "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 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 an implicit Reading Profile system so changes made during a reading session will persist reloads but not affect the bound Reading Profile.",
      "Added a setting to disable the width override when reaching specific breakpoints (uses the new theme variables)",
      "(Kavita\u002B) Scrobbling items can now be deleted in case you accidentally created one",
      "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 the ability for Kavita and Koreader to sync progress (Thanks @tgkenney for driving it home and @MFDeAngelo for doing 80% of the feature)."
    ],
    "Removed": [],
    "Changed": [
      "Reading lists will now only show one of promote \u0026 unpromote",
      "Removed the opacity from tooltips",
      "Go to Page prompts on book/manga reader now use a custom styled window",
      "The ToC in the EPUB reader will now mark a chapter as current until the next chapter is reached",
      "The reset password form will now be disabled if you do not have permissions to change your password",
      "Collections will now only show one of promote \u0026 unpromote",
      "Reading lists will now only show one of promote \u0026 unpromote",
      "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.",
      "Slight changes to the UX around promoted Reading lists and Collections on the detail pages",
      "(Security) Ensure the remote IP address is correct when behind a Reverse Proxy for Security log",
      "Updated dependencies",
      "On first startup (non-docker), rename appsettings-init -\u003E appsettings to avoid users overwriting their appsettings.json (FR  #3678, 2 votes)",
      "(Kavita\u002B) Ensure all people metadata from Kavita\u002B are trimmed of spaces",
      "(Kavita\u002B) Switched to a more optimized and better mechanism to choose a \u0027better\u0027 image to avoid switching to a lower res image from Kavita\u002B",
      "Optimized code for checking similarity for Person Cover image against known placeholders from AniList.",
      "Smart Filters page now shows a preview of the smart filter",
      "Disable Library settings to manage (create) Collections and Reading Lists from ComicInfo tags by default.",
      "Made the cutoff before the More on the side nav to be slightly larger",
      "When opening a Genre, Tag, Person, etc, the title of all series page will show a nicer message, like \u0027Written by {{name}}\u0027 (FR #3825, 1 vote)",
      "Browse Authors/Artists is now a Browse People page with filtering and sorting. (Closes FR #2556, 39 votes)",
      "Width override can now be saved to a reading profile",
      "(Kavita\u002B) Changed how Kavita\u002B decides if a series is completed to be more lenient",
      "Known For section on a person detail page will now take all roles into account",
      "(Kavita\u002B) Kavita\u002B will now sync scrobble at a random minute instead of at the start of the hour",
      "Carry over incognito between chapter loads (in the reader\u0027s url)",
      "(Kavita\u002B) Throw a toastr on matched metadata page when there is a rate limit issue."
    ],
    "Fixed": [
      "Fixed an exception occurring when using Kavita over an insecure connection, causing some settings pages to not show up",
      "Fixed being unable to disable/enable automatic webtoon detection",
      "Fixed the volume modal missing the word count header",
      "Fixed preferences not displaying until locale took too long to load in",
      "Fixed the section jumper in the EPUB reader using the wrong terms",
      "Fixed download actionable missing for Admins in some cases",
      "Fixed the null cover image issue",
      "(Kavita\u002B) Fixed the first chapter in a series not having a cover if K\u002B replaces the series cover",
      "When upgrading Kavita, clear out existing Github cache",
      "Fixed a lot of missing localization string (a never ending battle)",
      "Fixed a bug where series detail could show a default value when no localized name was present",
      "(Kavita\u002B) Fixed a few bugs around choosing better images that broke for Series/chapters from Kavita\u002B",
      "Fix an edge case bug where cache directory can get stuck existing but empty, preventing reading.",
      "Fixed a bug where body-level classes weren\u0027t being transferred to Kavita\u0027s epub html in some cases",
      "Fixed Match item showing Comic (Legacy)",
      "Fixed a bug where publisher images would fail to download",
      "Fixed some minor issues around the rendering of the sidenav items (Thanks @MrRobotjs)",
      "Fixed a rare bug with crypto.UUID by providing a fallback.",
      "Fixed a bug where updating the name of a person in the UI wasn\u0027t updating their normalized name, potentially breaking the flow.",
      "Fixed import menu (Import CBL) in pref side nav missing.",
      "(Image Reader) Fixed ReadingDirection impacting what clicking does when using UpDown ReadingMode",
      "Fixed a bug where book reader had poorly colored text/inputs from a recent bootstrap update.",
      "(Kavita\u002B) This should fix the anilist token needing to be regenerated bug.",
      "(Kavita\u002B) Fixed exception while trying to assign average rating when Kavita\u002B returned no ratings",
      "(Kavita\u002B) Fixed Kavita\u002B publication status being removed after the series is scanned, Kavita\u002B now locks the field",
      "(Kavita\u002B) Fixed Kavita\u002B publication status being wrong for EPUBs",
      "(Kavita\u002B) Fixed Kavita\u002B publication status using volume count when series do not have any volumes",
      "(Kavita\u002B) Fixed destination values autofilling the first letter of the source value (Genre/Tag mappings)",
      "Fixed the Known For filter sometimes not returning any results",
      "Fixed Genres, Tags not being restricted to Library",
      "Fixed People not being age, or library restricted",
      "Fixed scrobble history on mobile devices not being readable",
      "Removed \uD68C as a volume parsing marker per request",
      "Fixed reading list delete button not working"
    ],
    "Theme": [
      "Added --input-hint-border-color, --input-hint-text-color added for the new shortcut hint on Search input",
      "Added --setting-mobile-breakpoint, --setting-tablet-breakpoint, --setting-desktop-breakpoint theme variables"
    ],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EThis 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\u002B, 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!\u003C/p\u003E\n\u003Cp\u003EBefore 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\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EComic Metadata (Kavita\u002B)\u003C/h3\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/e394d3fe-e56c-49ab-ae2b-7675b5aee4d2\u0022 alt=\u0022438843284-0fac5031-db71-48c6-9bde-0eaae1a2fb1c\u0022 /\u003E\nCan you believe everything you see is issue metadata from Kavita\u002B? 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 \u003Cstrong\u003Eseries\u003C/strong\u003E and \u003Cstrong\u003Eissue\u003C/strong\u003E level. Data comes from \u003Ca href=\u0022https://comicbookroundup.com/\u0022\u003EComic Book Roundup\u003C/a\u003E.\u003C/p\u003E\n\u003Cp\u003EKavtia\u002B 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.6.2",
    "UpdateBody": "\u003Cp\u003EOne 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.\u003C/p\u003E\n\u003Cp\u003EThis will be the last hotfix.\u003C/p\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Finally fixed a bug where when IP Address was empty (default), the General settings changes would not save\u003C/li\u003E\n\u003Cli\u003EFixed: IP Address will now show the default value when empty.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.6.2 - General Settings Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.6.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-04-20T16:55:38Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [],
    "Fixed": [
      "Finally fixed a bug where when IP Address was empty (default), the General settings changes would not save",
      "IP Address will now show the default value when empty."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EOne 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.\u003C/p\u003E\n\u003Cp\u003EThis will be the last hotfix.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.6.1",
    "UpdateBody": "\u003Cp\u003EA few bugs slipped through, major thanks to Amelia for driving them home.\u003C/p\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where Docker users could see the download button on change log component.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed settings not saving when using a docker install\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to delete volumes from the series detail view in bulk\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed UI visually not removing volumes in series detail view when they\u0027re deleted\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some volumes having empty title hovers\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Reading List with some medium sized lists getting stuck in the infinite scroller\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.6.1 - A few small issues Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.6.1",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-04-18T12:30:53Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [],
    "Fixed": [
      "Fixed a bug where Docker users could see the download button on change log component.",
      "Fixed settings not saving when using a docker install",
      "Fixed not being able to delete volumes from the series detail view in bulk",
      "Fixed UI visually not removing volumes in series detail view when they\u0027re deleted",
      "Fixed some volumes having empty title hovers",
      "Fixed Reading List with some medium sized lists getting stuck in the infinite scroller"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EA few bugs slipped through, major thanks to Amelia for driving them home.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.6",
    "UpdateBody": "\u003Cp\u003Ev0.8.6 is here and it\u0027s 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\u0027s get started with the breakdown.\u003C/p\u003E\n\u003Cp\u003EFirst, let\u0027s 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\u0027t 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\u0027t want to go into customize screen.\u003C/p\u003E\n\u003Cp\u003EAnother 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\u0027s annoying? Having 300 media errors that aren\u0027t actually reflective of the state of your media. The original thought was manually clearing the alerts, but why can\u0027t Kavita just do most of those checks for you? So that\u0027s 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.\u003C/p\u003E\n\u003Cp\u003EThe last big enhancement is around Reading Lists. I\u0027m 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 \u003Ca href=\u0022https://github.com/Kareadita/Kavita/discussions/3671\u0022\u003EFeature Request\u003C/a\u003E. 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\u0027s want and need.\u003C/p\u003E\n\u003Cp\u003EWith the enhancements out of the way, let\u0027s focus on the meat of this release, the bugfixes and polish. I\u0027ll 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.\u003C/p\u003E\n\u003Cp\u003EAnother 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 \u003Ccode\u003EDOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true\u003C/code\u003E from their compose file and Kavita should work across the board.\u003C/p\u003E\n\u003Ch3\u003EDocker users\u003C/h3\u003E\n\u003Cblockquote\u003E\n\u003Cp\u003ERemove \u003Ccode\u003EDOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true\u003C/code\u003E from your compose files. It is no longer needed.\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cp\u003ELastly, 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).\u003C/p\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003ELastly 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.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Ability to delete Smart filter steams from Customize Side Nav and Dashboard\u003C/li\u003E\n\u003Cli\u003EAdded: Ability to rename Smart Filters in Customize settings\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to reorder the side nav without using customize screen by clicking the actionable on Home -\u0026gt; Reorder (Thanks @Fesaa)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new cleanup task that scans media errors and clears them out if they are ingested fine into Kavita\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new preference option for allowing Kavita to automatically switch into webtoon reader mode based on image resolution. Defaults to on.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to see all people across a reading list, the time it would take to read, and age rating.\u003C/li\u003E\n\u003Cli\u003EAdded: Updated many areas of Kavita to bring even better localization support. Everything in the UI should be fully localized now\u003C/li\u003E\n\u003Cli\u003EAdded: Added support for partial (0.5) volumes for Korean filename parsing\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Allow volume title card overlay for more than just book libraries\u003C/li\u003E\n\u003Cli\u003EChanged: Updated hostname tooltip text to be more clear\u003C/li\u003E\n\u003Cli\u003EChanged: Added a toast message for backfilling events on scrobble page.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Changed button on Scrobbling Errors to a match button which can directly fix the issue, rather than the old edit and add weblink.\u003C/li\u003E\n\u003Cli\u003EChanged: Improved the tooltip for the scrobbling button to be clearer if it is on/off.\u003C/li\u003E\n\u003Cli\u003EChanged: Overhauled the reading list detail page to be more aligned with series detail page\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Added a warning when in edit mode about when drag handles are suppressed\u003C/li\u003E\n\u003Cli\u003EChanged: PDFs will now fall back to the Title in metadata for series\u003C/li\u003E\n\u003Cli\u003EChanged: Updated Angular to 19\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Don\u0027t create scrobble events for specials as they will never match on AniList\u003C/li\u003E\n\u003Cli\u003EChanged: Updated wording and some styling to make the first impression better\u003C/li\u003E\n\u003Cli\u003EChanged: Changed how series downloads work to include the individual archives instead of unpacking them first (for non-image based series)\u003C/li\u003E\n\u003Cli\u003EChanged: Reworked the version update logic so that we don\u0027t 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).\u003C/li\u003E\n\u003Cli\u003EChanged: Updated dependencies and Security issues from downstream libraries\u003C/li\u003E\n\u003Cli\u003EChanged: Enhanced parsing code for (back cover) falsely being recognized as a cover image.\u003C/li\u003E\n\u003Cli\u003EChanged: Cleaned up how specials are parsed to allow supporting periods in the Title name\u003C/li\u003E\n\u003Cli\u003EChanged: (Epub Reader) When reading in Double Column mode, Kavita will now prevent seeing the same text twice by added an empty page when needed\u003C/li\u003E\n\u003Cli\u003EChanged: Allow users to type both localized name and series name to find a match on Related Series\u003C/li\u003E\n\u003Cli\u003EChanged: Made Library type and Sort options dropdowns alphabetical (localized)\u003C/li\u003E\n\u003Cli\u003EChanged: Removed the analyze task as it shouldn\u0027t be needed anymore\u003C/li\u003E\n\u003Cli\u003EChanged: Renamed Comic -\u0026gt; Comic (Legacy) and Comic (Comic Vine) -\u0026gt; Comic. The new comic library should be the primary.\u003C/li\u003E\n\u003Cli\u003EChanged: Moved the reset button for API Key to the right side, which renders much nicer.\u003C/li\u003E\n\u003Cli\u003EChanged: Aligned and corrected some styling for the Edit/Close button on setting items to be consistent\u003C/li\u003E\n\u003Cli\u003EChanged: Setting items that are not editable won\u0027t show the pointer cursor\u003C/li\u003E\n\u003Cli\u003EChanged: Setting switch items have the label appropriately wired and thus when you click the label, the switch will update.\u003C/li\u003E\n\u003Cli\u003EChanged: Details tab will show genre/tags expanded by default\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Updated how JWT looks at expiration time for AniList Token.\u003C/li\u003E\n\u003Cli\u003EChanged: Moved Skipped scheduling ScanFolder log message to Trace as it\u0027s noisy\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked how localization cache busting is handled to try and get Transloco to respect cache busting\u003C/li\u003E\n\u003Cli\u003EChanged: For Admins (or users with access to all libraries), under Manage Users, sharing now shows \u0027All Libraries\u0027\u003C/li\u003E\n\u003Cli\u003EChanged: Changed how epubs are parsed. Now, Kavita will try to open it expecting a valid epub structure (which isn\u0027t 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Ensure all switch elements link up with a label element for accessibility.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Switched Last modified to Created for when the scrobble reading event took place.\u003C/li\u003E\n\u003Cli\u003EChanged: Reading lists\u0027 age rating will now update when a series age rating is updated via the UI\u003C/li\u003E\n\u003Cli\u003EChanged: Moved Gmail/Outlook auto fill buttons from Host Name to Host setting\u003C/li\u003E\n\u003Cli\u003EChanged: Setting items will auto focus when switching into edit mode\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed an issue with non-American date and number parsing\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an initial blank page on settings due to a slow locale cache load\u003C/li\u003E\n\u003Cli\u003EFixed: Fixes the environment variable for invariant globalization still being set in the Dockerfile\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where cbl import wouldn\u0027t allow importing due to the name clashing with another user, when it should have only checked your account\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a lot of styling across the app and overall polish\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when updating email settings, it can error out after 2 changes\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where chapter ranges (1-3) could get an incorrect sort order\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue with Mihon over-extracting image files (Thanks @arition)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a missing action handler for delete chapter from series detail page.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed issues with selection on mobile devices in the epub reader causing pages to skip\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed TitleSort being used instead of SeriesSort for Series Sort field  (Thanks @joshuaavalon for the help)\u003C/li\u003E\n\u003Cli\u003EFixed: Moved loading icon up so it\u0027s visible even when having a lot of cards on library detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Improved the webtoon reader\u0027s ability to ensure chapters are marked as read from continuous reader which caused the last page to not get marked as read. (Thanks @reinar for the spur)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug in edit list that would break the UI when any comma separated values were used.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed read more for chinese text\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed tooltips on series card getting overlapped (Thanks @therobbiedavis )\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed an issue where some people\u0027s metadata could have broken urls due to an @ symbol in the url for their description\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up the webtoon detection algorithm to be more robust\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the scrobbling page not having working sorting\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed locale response being empty on first load (Thanks @nevivurn)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed PDF specials using filename instead of embedded metadata as title\u003C/li\u003E\n\u003Cli\u003EFixed: Stats charts shouldn\u0027t overlap anymore\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the changelog for API/Removed having an extra -\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug in the update series metadata where you wouldn\u0027t be able to clear out people field.\u003C/li\u003E\n\u003Cli\u003EFixed: Updated chapter update API to allow ability to clear out people fields, genres, and tags.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading list items overflowing (Thanks @therobbiedavis )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed missing scrollbars in some dropdowns\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an out-of-bounds from a reading list when reordering\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Epub table of contents, when all under one node didn\u0027t show as active.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the inability to update server settings\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed release date not displaying correctly in the edit chapter model\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed \u0027never\u0027 being displayed in a bunch of places on certain locales\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the incorrect date layout being used on certain locales\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Top Readers on Stats page wasn\u0027t rendering the numbers correctly\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) Fixed chapter not always scrolling to the top. Was not able to reproduce but used a community fed fix. (Thanks @joonhuiwong)\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t throw an exception when downloading a theme that is already downloaded but just let the user re-download it.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some padding on a few setting screens that got missed last release.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed flashing no result message during loading of MAL Stacks\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue on edit series/chapter detail page where language input would not show the language reliably.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed issues with selection on mobile devices in the epub reader causing pages to skip\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bad url to the wiki page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where search could not be selectable and would also close the pdf reader on ESC.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where some fields weren\u0027t being ingested from ComicInfo due to a bug from last release\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed edit chapter modal, tag options weren\u0027t rendering\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed edit chapter modal not being able to have some metadata fields persist\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue on edit series/chapter modal where adding data to a typeahead field, then switching to another tab would blank out the field.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Send to Email/Kindle was not properly sending the filename of the file.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a missing blacklist path for Kavita\u002B background fetch\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed \u0027add to reading list\u0027 not working in volume detail\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed users being unable to open promoted reading lists via OPDS\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading lists, adding an unnecessary volume marker for EPUB specials\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where registration form was telling the user the email was required when it wasn\u0027t.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed change email so that multiple toasts don\u0027t popup telling the user that email was updated successfully but also wasn\u0027t and link needed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed change email and change password not switching to view mode after save.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where UI was not reflecting that an Admin cannot change their age restriction settings.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where filter IsEmpty wasn\u0027t hiding the value input.\u003C/li\u003E\n\u003Cli\u003EFixed: IsEmpty wasn\u0027t working for Collection Tags and Tags\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Genres/Tags from ComicInfo.xml were being normalized\u003C/li\u003E\n\u003Cli\u003EFixed: Detail page actionables were being hidden on mobile.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.6 - Spring Cleaning",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.6",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-04-14T22:09:30Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Ability to delete Smart filter steams from Customize Side Nav and Dashboard",
      "Ability to rename Smart Filters in Customize settings",
      "Added the ability to reorder the side nav without using customize screen by clicking the actionable on Home -\u003E Reorder (Thanks @Fesaa)",
      "Added a new cleanup task that scans media errors and clears them out if they are ingested fine into Kavita",
      "Added a new preference option for allowing Kavita to automatically switch into webtoon reader mode based on image resolution. Defaults to on.",
      "Added the ability to see all people across a reading list, the time it would take to read, and age rating.",
      "Updated many areas of Kavita to bring even better localization support. Everything in the UI should be fully localized now",
      "Added support for partial (0.5) volumes for Korean filename parsing"
    ],
    "Removed": [],
    "Changed": [
      "Allow volume title card overlay for more than just book libraries",
      "Updated hostname tooltip text to be more clear",
      "Added a toast message for backfilling events on scrobble page.",
      "(Kavita\u002B) Changed button on Scrobbling Errors to a match button which can directly fix the issue, rather than the old edit and add weblink.",
      "Improved the tooltip for the scrobbling button to be clearer if it is on/off.",
      "Overhauled the reading list detail page to be more aligned with series detail page",
      "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.",
      "Added a warning when in edit mode about when drag handles are suppressed",
      "PDFs will now fall back to the Title in metadata for series",
      "Updated Angular to 19",
      "(Kavita\u002B) Don\u0027t create scrobble events for specials as they will never match on AniList",
      "Updated wording and some styling to make the first impression better",
      "Changed how series downloads work to include the individual archives instead of unpacking them first (for non-image based series)",
      "Reworked the version update logic so that we don\u0027t 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).",
      "Updated dependencies and Security issues from downstream libraries",
      "Enhanced parsing code for (back cover) falsely being recognized as a cover image.",
      "Cleaned up how specials are parsed to allow supporting periods in the Title name",
      "(Epub Reader) When reading in Double Column mode, Kavita will now prevent seeing the same text twice by added an empty page when needed",
      "Allow users to type both localized name and series name to find a match on Related Series",
      "Made Library type and Sort options dropdowns alphabetical (localized)",
      "Removed the analyze task as it shouldn\u0027t be needed anymore",
      "Renamed Comic -\u003E Comic (Legacy) and Comic (Comic Vine) -\u003E Comic. The new comic library should be the primary.",
      "Moved the reset button for API Key to the right side, which renders much nicer.",
      "Aligned and corrected some styling for the Edit/Close button on setting items to be consistent",
      "Setting items that are not editable won\u0027t show the pointer cursor",
      "Setting switch items have the label appropriately wired and thus when you click the label, the switch will update.",
      "Details tab will show genre/tags expanded by default",
      "(Kavita\u002B) Updated how JWT looks at expiration time for AniList Token.",
      "Moved Skipped scheduling ScanFolder log message to Trace as it\u0027s noisy",
      "Tweaked how localization cache busting is handled to try and get Transloco to respect cache busting",
      "For Admins (or users with access to all libraries), under Manage Users, sharing now shows \u0027All Libraries\u0027",
      "Changed how epubs are parsed. Now, Kavita will try to open it expecting a valid epub structure (which isn\u0027t 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.",
      "Ensure all switch elements link up with a label element for accessibility.",
      "(Kavita\u002B) Switched Last modified to Created for when the scrobble reading event took place.",
      "Reading lists\u0027 age rating will now update when a series age rating is updated via the UI",
      "Moved Gmail/Outlook auto fill buttons from Host Name to Host setting",
      "Setting items will auto focus when switching into edit mode"
    ],
    "Fixed": [
      "Fixed an issue with non-American date and number parsing",
      "Fixed an initial blank page on settings due to a slow locale cache load",
      "Fixes the environment variable for invariant globalization still being set in the Dockerfile",
      "Fixed a bug where cbl import wouldn\u0027t allow importing due to the name clashing with another user, when it should have only checked your account",
      "Fixed a lot of styling across the app and overall polish",
      "Fixed a bug when updating email settings, it can error out after 2 changes",
      "Fixed an issue where chapter ranges (1-3) could get an incorrect sort order",
      "Fixed an issue with Mihon over-extracting image files (Thanks @arition)",
      "Fixed a missing action handler for delete chapter from series detail page.",
      "Fixed issues with selection on mobile devices in the epub reader causing pages to skip",
      "Fixed TitleSort being used instead of SeriesSort for Series Sort field  (Thanks @joshuaavalon for the help)",
      "Moved loading icon up so it\u0027s visible even when having a lot of cards on library detail page",
      "Improved the webtoon reader\u0027s ability to ensure chapters are marked as read from continuous reader which caused the last page to not get marked as read. (Thanks @reinar for the spur)",
      "Fixed a bug in edit list that would break the UI when any comma separated values were used.",
      "Fixed read more for chinese text",
      "Fixed tooltips on series card getting overlapped (Thanks @therobbiedavis )",
      "(Kavita\u002B) Fixed an issue where some people\u0027s metadata could have broken urls due to an @ symbol in the url for their description",
      "Fixed up the webtoon detection algorithm to be more robust",
      "Fixed the scrobbling page not having working sorting",
      "Fixed locale response being empty on first load (Thanks @nevivurn)",
      "Fixed PDF specials using filename instead of embedded metadata as title",
      "Stats charts shouldn\u0027t overlap anymore",
      "Fixed the changelog for API/Removed having an extra -",
      "Fixed a bug in the update series metadata where you wouldn\u0027t be able to clear out people field.",
      "Updated chapter update API to allow ability to clear out people fields, genres, and tags.",
      "Fixed reading list items overflowing (Thanks @therobbiedavis )",
      "Fixed missing scrollbars in some dropdowns",
      "Fixed an out-of-bounds from a reading list when reordering",
      "Fixed Epub table of contents, when all under one node didn\u0027t show as active.",
      "Fixed the inability to update server settings",
      "Fixed release date not displaying correctly in the edit chapter model",
      "Fixed \u0027never\u0027 being displayed in a bunch of places on certain locales",
      "Fixed the incorrect date layout being used on certain locales",
      "Fixed a bug where Top Readers on Stats page wasn\u0027t rendering the numbers correctly",
      "(Epub Reader) Fixed chapter not always scrolling to the top. Was not able to reproduce but used a community fed fix. (Thanks @joonhuiwong)",
      "Don\u0027t throw an exception when downloading a theme that is already downloaded but just let the user re-download it.",
      "Fixed some padding on a few setting screens that got missed last release.",
      "Fixed flashing no result message during loading of MAL Stacks",
      "Fixed an issue on edit series/chapter detail page where language input would not show the language reliably.",
      "Fixed issues with selection on mobile devices in the epub reader causing pages to skip",
      "Fixed a bad url to the wiki page",
      "Fixed an issue where search could not be selectable and would also close the pdf reader on ESC.",
      "Fixed a bug where some fields weren\u0027t being ingested from ComicInfo due to a bug from last release",
      "Fixed edit chapter modal, tag options weren\u0027t rendering",
      "Fixed edit chapter modal not being able to have some metadata fields persist",
      "Fixed an issue on edit series/chapter modal where adding data to a typeahead field, then switching to another tab would blank out the field.",
      "Fixed a bug where Send to Email/Kindle was not properly sending the filename of the file.",
      "(Kavita\u002B) Fixed a missing blacklist path for Kavita\u002B background fetch",
      "Fixed \u0027add to reading list\u0027 not working in volume detail",
      "Fixed users being unable to open promoted reading lists via OPDS",
      "Fixed reading lists, adding an unnecessary volume marker for EPUB specials",
      "Fixed a bug where registration form was telling the user the email was required when it wasn\u0027t.",
      "Fixed change email so that multiple toasts don\u0027t popup telling the user that email was updated successfully but also wasn\u0027t and link needed.",
      "Fixed change email and change password not switching to view mode after save.",
      "Fixed a bug where UI was not reflecting that an Admin cannot change their age restriction settings.",
      "Fixed a bug where filter IsEmpty wasn\u0027t hiding the value input.",
      "IsEmpty wasn\u0027t working for Collection Tags and Tags",
      "Fixed a bug where Genres/Tags from ComicInfo.xml were being normalized",
      "Detail page actionables were being hidden on mobile."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003Ev0.8.6 is here and it\u0027s 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\u0027s get started with the breakdown.\u003C/p\u003E\n\u003Cp\u003EFirst, let\u0027s 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\u0027t 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\u0027t want to go into customize screen.\u003C/p\u003E\n\u003Cp\u003EAnother 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\u0027s annoying? Having 300 media errors that aren\u0027t actually reflective of the state of your media. The original thought was manually clearing the alerts, but why can\u0027t Kavita just do most of those checks for you? So that\u0027s 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.\u003C/p\u003E\n\u003Cp\u003EThe last big enhancement is around Reading Lists. I\u0027m 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 \u003Ca href=\u0022https://github.com/Kareadita/Kavita/discussions/3671\u0022\u003EFeature Request\u003C/a\u003E. 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\u0027s want and need.\u003C/p\u003E\n\u003Cp\u003EWith the enhancements out of the way, let\u0027s focus on the meat of this release, the bugfixes and polish. I\u0027ll 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.\u003C/p\u003E\n\u003Cp\u003EAnother 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 \u003Ccode\u003EDOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true\u003C/code\u003E from their compose file and Kavita should work across the board.\u003C/p\u003E\n\u003Ch3\u003EDocker users\u003C/h3\u003E\n\u003Cblockquote\u003E\n\u003Cp\u003ERemove \u003Ccode\u003EDOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true\u003C/code\u003E from your compose files. It is no longer needed.\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cp\u003ELastly, 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).\u003C/p\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003ELastly 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.5.11",
    "UpdateBody": "\u003Cp\u003EI 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.\u003C/p\u003E\n\u003Cp\u003Ev0.8.6 is still planned to focus on the Scanner and finishing off the Kavita\u002B Polish.\u003C/p\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Locale selection now shows the total percentage of completion of the locale.\u003C/li\u003E\n\u003Cli\u003EChanged: Cleaned up some code around localization as a way to hopefully fight the keys showing in the UI on new versions.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) When a user removes the Kavita\u002B license from their instance, stop doing all K\u002B Background tasks instead of waiting for the next restart.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Kavita will now clean up old scrobble events for users that don\u0027t have an anilist token on their account, so that events that will never get processed get cleaned up.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) When sourcing descriptions from Kavita\u002B, remove the (Source: X).\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where a signature on an API was wrong\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a length issue for reviews from Kavita\u002B that could break metadata matching\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed some edge case handling of want to read scrobbling and potentially some issues around events that never get processed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed unable to start Kavita for the first time on DD/MM/YYYY locales (Thanks @Fesaa )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where multi-root libraries would delete and recreate series in one of non-first folders\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading list not respecting age restrictions (Thanks @Fesaa )\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EUpdated the ReadHistoryEvent to expose ReadDateUtc instead of just the server timezone date. (Thanks @0xGingi)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EKnown Issues\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EDocker images aren\u0027t showing Locale names correctly (this will be fixed v0.8.6)\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.5.11 - Hotfix 2",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.5.11",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-03-17T19:25:25Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [
      "Locale selection now shows the total percentage of completion of the locale.",
      "Cleaned up some code around localization as a way to hopefully fight the keys showing in the UI on new versions.",
      "(Kavita\u002B) When a user removes the Kavita\u002B license from their instance, stop doing all K\u002B Background tasks instead of waiting for the next restart.",
      "(Kavita\u002B) Kavita will now clean up old scrobble events for users that don\u0027t have an anilist token on their account, so that events that will never get processed get cleaned up.",
      "(Kavita\u002B) When sourcing descriptions from Kavita\u002B, remove the (Source: X)."
    ],
    "Fixed": [
      "Fixed a bug where a signature on an API was wrong",
      "(Kavita\u002B) Fixed a length issue for reviews from Kavita\u002B that could break metadata matching",
      "(Kavita\u002B) Fixed some edge case handling of want to read scrobbling and potentially some issues around events that never get processed.",
      "Fixed unable to start Kavita for the first time on DD/MM/YYYY locales (Thanks @Fesaa )",
      "Fixed a bug where multi-root libraries would delete and recreate series in one of non-first folders",
      "Fixed reading list not respecting age restrictions (Thanks @Fesaa )"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [
      "Updated the ReadHistoryEvent to expose ReadDateUtc instead of just the server timezone date. (Thanks @0xGingi)"
    ],
    "FeatureRequests": [],
    "KnownIssues": [
      "Docker images aren\u0027t showing Locale names correctly (this will be fixed v0.8.6)"
    ],
    "BlogPart": "\u003Cp\u003EI 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.\u003C/p\u003E\n\u003Cp\u003Ev0.8.6 is still planned to focus on the Scanner and finishing off the Kavita\u002B Polish.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.5.3",
    "UpdateBody": "\u003Cp\u003EA small hotfix is needed due to the Don\u0027t fall behind modal showing incorrectly.\u003C/p\u003E\n\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where the Don\u0027t fall behind modal was opening constantly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a wiki link being wrong\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.5.3 - Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.5.3",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-03-09T17:13:19Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [],
    "Fixed": [
      "Fixed a bug where the Don\u0027t fall behind modal was opening constantly",
      "Fixed a wiki link being wrong"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EA small hotfix is needed due to the Don\u0027t fall behind modal showing incorrectly.\u003C/p\u003E\n\u003Cp\u003EThe 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.5",
    "UpdateBody": "\u003Cp\u003EIt\u0027s been some time since the last release and this one is hefty! The goal of this release is to overhaul Kavita\u002B 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.\u003C/p\u003E\n\u003Ch3\u003EMetadata Downloading (Kavita\u002B)\u003C/h3\u003E\n\u003Cp\u003EWhen 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\u002B 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.\u003C/p\u003E\n\u003Cp\u003EKavita 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.\u003C/p\u003E\n\u003Cp\u003EWith that said, I want to set expectations. I\u0027m not looking to build a komf replacement. This will currently just use metadata from AniList/MAL and Hardcover once I get around to it.\u003C/p\u003E\n\u003Cp\u003ESo how does it work?\u003C/p\u003E\n\u003Ch3\u003EPDF Metadata\u003C/h3\u003E\n\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003Ch3\u003ENew Stats API\u003C/h3\u003E\n\u003Cp\u003EThis 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 \u003Ca href=\u0022https://github.com/Kareadita/KavitaStats/pull/67\u0022\u003Ehere\u003C/a\u003E. Thank you to all that continue to report statistics.\u003C/p\u003E\n\u003Ch3\u003EMisc\u003C/h3\u003E\n\u003Cp\u003EI 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\u0027s not 100%, but a best guess.\u003C/p\u003E\n\u003Cp\u003EAnother new feature is bringing Bionic Reading mode to Kavita\u0027s epub reader via a new font. A few users asked for this and thankfully a font made it possible.\u003C/p\u003E\n\u003Ch3\u003EDocker Fix\u003C/h3\u003E\n\u003Cp\u003EIn the last release, docker users reported the scanner breaking. You can fix this with the following. The wiki reflects this as well.\u003C/p\u003E\n\u003Cblockquote\u003E\n\u003Cp\u003EAdd \u003Ccode\u003EDOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true\u003C/code\u003E to your docker compose\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Ch3\u003EThis Year\u003C/h3\u003E\n\u003Cp\u003EWith that said, let\u0027s 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\u0027ve scaled down my goals to 2 main features:\u003C/p\u003E\n\u003Col\u003E\n\u003Cli\u003E\u003Cp\u003E\u003Cstrong\u003EJournal-style Progress\u003C/strong\u003E will allow for a much richer stats experience and allow for some new functionalities in reading history. I\u0027ve already validated this architecture in another project so it shouldn\u0027t be too complex porting back to Kavita.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003E\u003Cstrong\u003EKobo Sync\u003C/strong\u003E 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ol\u003E\n\u003Cp\u003EThese two features are a blend of user wants and my own wants to enable much richer statistics in the application. I\u0027m sure I\u0027ll 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\u0027m really grateful that I have a great community, looking forward to working with you this year.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote: AniList API is currently degraded and stuck at 30 requests / min. I\u0027ve 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\u002B to work around these API limits.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EWith 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\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/942d0640-eb36-4523-93bc-d3f882ae29cc\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/7b6ade48-8036-4d0b-b473-bddaf6b10bc2\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/419955c1-9557-44e2-b329-dba43fb2b050\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/4133c843-cc74-4cb6-96b0-5d1c43fa1d61\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added Fast Font to Book Reader. Fast Font is an open source Bionic Font alternative (FR #1268)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to read embedded metadata from PDFs that conform to Calibre\u0027s embedding. (FR #3103)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new stat for if the server uses metadata matching\u003C/li\u003E\n\u003Cli\u003EAdded: (Manga Reader) When most of the file dimensions look like webtoon images, switch into the Webtoon reader on behalf of the user.\u003C/li\u003E\n\u003Cli\u003EAdded: Series related tab will now show if there are bookmarks\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to see release notes of nightly releases in the changelog/announcements screens.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new long term cache directory (cache-long). Currently storing Github release history information.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Complete overhaul to the Kavita\u002B 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\u0027re 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added long term caching for Publisher/Favicon fallback so CoversDb doesn\u0027t have to service more requests than needed.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) 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 \u0027Do Not Match\u0027 which will delete any previously matched data, drop all scrobble events, and prevent matching/scrobbling in the future.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Removed the previous error/matched bar from license screen and broke into it\u0027s own page called Matched Metadata. You can now filter by matched state (either not yet matched, needs manual match, don\u0027t match) and perform said flows from this screen. This should result in a much easier time navigating your metadata.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) New screen to see your users and if their AniList tokens are set or expired.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita now has an email history table for admins to see which emails were sent out\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Kavita now implements the feature request to sync your \u0027planned\u0027 read lists from AniList/MAL into Kavita\u0027s Want to Read (FR #3153)\u003C/li\u003E\n\u003Cli\u003EAdded: New button to download a person\u0027s image from CoverDB. I am still working out how to approach an automated solution. CoverDB is open for new entries.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added the ability for individual users to turn on/off scrobbling to anilist and the want to read sync.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) 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.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) New Library setting to opt a whole library out of being matched.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Ability to override locked fields when performing a match to update metadata\u003C/li\u003E\n\u003Cli\u003EAdded: Users can now press enter to close (and save) the setting items that are text inputs\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Changed the maximum line length of text inside of expandable blocks of text to a readable value (Thanks @heyhippari)\u003C/li\u003E\n\u003Cli\u003EChanged: Allow admins to change non-admin\u0027s email accounts on file. Will automatically assume it\u0027s valid.\u003C/li\u003E\n\u003Cli\u003EChanged: Docker builds will now have extra metadata (Thanks @halkeye)\u003C/li\u003E\n\u003Cli\u003EChanged:  Cleaned up the person image components to be a better experience in different states (Thanks @heyhippari )\u003C/li\u003E\n\u003Cli\u003EChanged: Known for on person page shouldn\u0027t show for Translator/Team/Location.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated docker build scripts to include docker labels\u003C/li\u003E\n\u003Cli\u003EChanged: Massive overhaul to the data collection aspect of Kavita to ship more helpful information that is more up to date with the functionalities of Kavita. Stat collection can still be disabled and will still run after the first 12 hours to give time to opt-out.\u003C/li\u003E\n\u003Cli\u003EChanged: ReadOnly role is now more inline with the name. Any user with this role will only be able to rate series and update their want to read.\u003C/li\u003E\n\u003Cli\u003EChanged: Added a new mix mode for Colorscape to darken the colors\u003C/li\u003E\n\u003Cli\u003EChanged: Reworked handling of an exception for there being 2 progress entries for a given chapter. This previously would take the first and set as the new progress, but now it will take the newest and also take the highest page.\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t show the number of images under a chapter card for images.\u003C/li\u003E\n\u003Cli\u003EChanged: Rewrote the changelog/announcement to now be limited to 10 releases and have a better rendering experience.\u003C/li\u003E\n\u003Cli\u003EChanged: [TIME] profiling logs from last release is now on Trace as it\u0027s no longer needed anymore.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated to .NET 9 which brings performance improvements and patches some security vulnerabilities\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) When registering a license that was previously bound to another instance, Kavita will now prompt you to override that old binding. This is usually the case and thus Kavita can perform the reset and registration in one flow for you (rather than you using Reset button then Saving again).\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) After registering your license a popup will open to inform you of how Scrobbling works and the next steps you should take.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) After adding your Anilist token, Kavita now prompts you if you want to backfill scrobble events now or later (from Scrobbling page). This first time generation is important to sync your history/want to read/ratings from before you added the token. Giving the user time to setup Series Holds will ensure only data they want exposed is.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Scrobbling window is decreased from 4 hours to 1 hour\u003C/li\u003E\n\u003Cli\u003EChanged: If anilist id is set, will add an AL weblink on person page\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Age Rating mappings from Kavita\u002B Metadata settings will apply when scanning in series.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) When using edit series modal, also recalculate age rating based on tags/genres\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Characters are now ordered based on their role in the Series (Main, Supporting, Background)\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Sleep a little longer for background fetching to respect AL\u0027s new rate limit.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Reset all blacklisted external series metadata to allow fresh start with the much upgraded code.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed the way the sidebar closes (both on large screens and on mobile) to prevent text and icons jumping around during the animation. (Thanks @heyhippari)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where if an age restricted user tried to load a person that they have partial access to, the backend would restrict the load\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where double tap on an image in manga reader no longer triggers the bookmark flow.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the UI using the wrong localization key for On Deck descriptions\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where updating Team, it would actually write to Characters for edit series modal.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a typo in the event widget error message that shows up when the scan returns an empty root folder for the particular library. (Thanks @midhun3301 )\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a long standing bug where background series processing (fetching metadata for K\u002B) wasn\u0027t pulling anything more than the first 25 series over and over.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed add device button being broken\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where an admin editing a user was unable to save the form without a valid email, even though non-valid emails are allowed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where person links wouldn\u0027t be url encoded\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where characters weren\u0027t being saved on the backend\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where progress tooltips would be behind the card title overlay\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where when the filename and the series name/localized name are the same, Kavita would get confused and skip the file.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where reading a pdf on Kavita then switching to reading over OPDS, the cache wouldn\u0027t work as the images weren\u0027t cached, only the pdf. (Thanks @m-amazirh for the help)\u003C/li\u003E\n\u003Cli\u003EFixed: When downloading image series/chapters, zip them up and use the folder names on disk for inside the archive\u003C/li\u003E\n\u003Cli\u003EFixed: (Manga Reader) Fixed up/down arrow key not scrolling on manga reader with original layout\u003C/li\u003E\n\u003Cli\u003EFixed: Sanitize OPDS feeds in case the user has characters that are invalid\u003C/li\u003E\n\u003Cli\u003EFixed: (Epub Reader) White book theme was unnecessarily overriding some book styles (Thanks @Redst0neFlux)\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t darken images on white/paper book themes\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when bulk selecting cards, the read button overlay shouldn\u0027t be present\u003C/li\u003E\n\u003Cli\u003EFixed: Confirmation modals didn\u0027t have localized strings.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where want to read was scrobbling from libraries where AllowScrobbling is off.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where Want to Read scrobbling was not respecting library rules\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Characters field not being wired up in the Save API.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed location locked field not being wired up in the Save API.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a weird issue where Host name would eat keys when typing on General settings.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where clicking a person from Volume/Chapter detail pages wouldn\u0027t load the person profile\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug that was calling unneeded checks on Kavita\u002B license validation each refresh\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed spacing issue on the edit chapter modal (and aligned all modals to have the same spacing)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where a progress check on the DB was being handled which logged a warning to logger.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the overlay title on cards extending past the card boundary when in a carousel (Thanks @Zeoic)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the background job to fill out metadata was constantly pulling the same blacklisted series over and over again, thus making no progress.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where epub images that were hotlinked weren\u0027t loading correctly in the reader.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed removing web links behaving wrongly when removing links in a specific order  (Thanks @Fesaa)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed default cache being 50MB when it should be 75MB\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when a metadata refresh event comes int, the active tab could get stuck on series detail\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed not being able to update general server settings\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) New migration to cleanup super old scrobble events that might be side-effects of version updates.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFeature Requests\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded Fast Font to Book Reader. Fast Font is an open source Bionic Font alternative (FR #1268)\u003C/li\u003E\n\u003Cli\u003EAdded the ability to read embedded metadata from PDFs that conform to Calibre\u0027s embedding. (FR #3103)\u003C/li\u003E\n\u003Cli\u003E(Kavita\u002B) Kavita now implements the feature request to sync your \u0027planned\u0027 read lists from AniList/MAL into Kavita\u0027s Want to Read (FR #3153)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EKnown Issues\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ESome covers will disappear after being added to Kavita (rare). If I can reproduce, I will hotfix.\u003C/li\u003E\n\u003Cli\u003EMatch modal may sometimes appear like there are no results but there should be. This is due to rate issues, this will be addressed in v0.8.6. You just need to wait a few minutes for it to be searchable again.\u003C/li\u003E\n\u003Cli\u003EDon\u0027t fall behind (Out of date)  modal is popping when it shouldn\u0027t (a hotfix will be issued in a few days)\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.5 - Metadata Downloading \u0026 PDF Metadata!",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.5",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2025-03-07T19:36:21Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added Fast Font to Book Reader. Fast Font is an open source Bionic Font alternative (FR #1268)",
      "Added the ability to read embedded metadata from PDFs that conform to Calibre\u0027s embedding. (FR #3103)",
      "Added a new stat for if the server uses metadata matching",
      "(Manga Reader) When most of the file dimensions look like webtoon images, switch into the Webtoon reader on behalf of the user.",
      "Series related tab will now show if there are bookmarks",
      "Added the ability to see release notes of nightly releases in the changelog/announcements screens.",
      "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 a new long term cache directory (cache-long). Currently storing Github release history information.",
      "(Kavita\u002B) Complete overhaul to the Kavita\u002B 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\u0027re 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 long term caching for Publisher/Favicon fallback so CoversDb doesn\u0027t have to service more requests than needed.",
      "(Kavita\u002B) 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 \u0027Do Not Match\u0027 which will delete any previously matched data, drop all scrobble events, and prevent matching/scrobbling in the future.",
      "(Kavita\u002B) Removed the previous error/matched bar from license screen and broke into it\u0027s own page called Matched Metadata. You can now filter by matched state (either not yet matched, needs manual match, don\u0027t match) and perform said flows from this screen. This should result in a much easier time navigating your metadata.",
      "(Kavita\u002B) New screen to see your users and if their AniList tokens are set or expired.",
      "(Kavita\u002B) 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.",
      "Kavita now has an email history table for admins to see which emails were sent out",
      "(Kavita\u002B) Kavita now implements the feature request to sync your \u0027planned\u0027 read lists from AniList/MAL into Kavita\u0027s Want to Read (FR #3153)",
      "New button to download a person\u0027s image from CoverDB. I am still working out how to approach an automated solution. CoverDB is open for new entries.",
      "(Kavita\u002B) Added the ability for individual users to turn on/off scrobbling to anilist and the want to read sync.",
      "(Kavita\u002B) 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.",
      "(Kavita\u002B) New Library setting to opt a whole library out of being matched.",
      "(Kavita\u002B) Ability to override locked fields when performing a match to update metadata",
      "Users can now press enter to close (and save) the setting items that are text inputs"
    ],
    "Removed": [],
    "Changed": [
      "Changed the maximum line length of text inside of expandable blocks of text to a readable value (Thanks @heyhippari)",
      "Allow admins to change non-admin\u0027s email accounts on file. Will automatically assume it\u0027s valid.",
      "Docker builds will now have extra metadata (Thanks @halkeye)",
      "Cleaned up the person image components to be a better experience in different states (Thanks @heyhippari )",
      "Known for on person page shouldn\u0027t show for Translator/Team/Location.",
      "Updated docker build scripts to include docker labels",
      "Massive overhaul to the data collection aspect of Kavita to ship more helpful information that is more up to date with the functionalities of Kavita. Stat collection can still be disabled and will still run after the first 12 hours to give time to opt-out.",
      "ReadOnly role is now more inline with the name. Any user with this role will only be able to rate series and update their want to read.",
      "Added a new mix mode for Colorscape to darken the colors",
      "Reworked handling of an exception for there being 2 progress entries for a given chapter. This previously would take the first and set as the new progress, but now it will take the newest and also take the highest page.",
      "Don\u0027t show the number of images under a chapter card for images.",
      "Rewrote the changelog/announcement to now be limited to 10 releases and have a better rendering experience.",
      "[TIME] profiling logs from last release is now on Trace as it\u0027s no longer needed anymore.",
      "Updated to .NET 9 which brings performance improvements and patches some security vulnerabilities",
      "(Kavita\u002B) When registering a license that was previously bound to another instance, Kavita will now prompt you to override that old binding. This is usually the case and thus Kavita can perform the reset and registration in one flow for you (rather than you using Reset button then Saving again).",
      "(Kavita\u002B) After registering your license a popup will open to inform you of how Scrobbling works and the next steps you should take.",
      "(Kavita\u002B) After adding your Anilist token, Kavita now prompts you if you want to backfill scrobble events now or later (from Scrobbling page). This first time generation is important to sync your history/want to read/ratings from before you added the token. Giving the user time to setup Series Holds will ensure only data they want exposed is.",
      "(Kavita\u002B) Scrobbling window is decreased from 4 hours to 1 hour",
      "If anilist id is set, will add an AL weblink on person page",
      "(Kavita\u002B) Age Rating mappings from Kavita\u002B Metadata settings will apply when scanning in series.",
      "(Kavita\u002B) When using edit series modal, also recalculate age rating based on tags/genres",
      "(Kavita\u002B) Characters are now ordered based on their role in the Series (Main, Supporting, Background)",
      "(Kavita\u002B) Sleep a little longer for background fetching to respect AL\u0027s new rate limit.",
      "(Kavita\u002B) Reset all blacklisted external series metadata to allow fresh start with the much upgraded code."
    ],
    "Fixed": [
      "Fixed the way the sidebar closes (both on large screens and on mobile) to prevent text and icons jumping around during the animation. (Thanks @heyhippari)",
      "Fixed a bug where if an age restricted user tried to load a person that they have partial access to, the backend would restrict the load",
      "Fixed a bug where double tap on an image in manga reader no longer triggers the bookmark flow.",
      "Fixed the UI using the wrong localization key for On Deck descriptions",
      "Fixed a bug where updating Team, it would actually write to Characters for edit series modal.",
      "Fixed a typo in the event widget error message that shows up when the scan returns an empty root folder for the particular library. (Thanks @midhun3301 )",
      "(Kavita\u002B) Fixed a long standing bug where background series processing (fetching metadata for K\u002B) wasn\u0027t pulling anything more than the first 25 series over and over.",
      "Fixed add device button being broken",
      "Fixed a bug where an admin editing a user was unable to save the form without a valid email, even though non-valid emails are allowed.",
      "Fixed a bug where person links wouldn\u0027t be url encoded",
      "Fixed a bug where characters weren\u0027t being saved on the backend",
      "Fixed a bug where progress tooltips would be behind the card title overlay",
      "Fixed a bug where when the filename and the series name/localized name are the same, Kavita would get confused and skip the file.",
      "Fixed a bug where reading a pdf on Kavita then switching to reading over OPDS, the cache wouldn\u0027t work as the images weren\u0027t cached, only the pdf. (Thanks @m-amazirh for the help)",
      "When downloading image series/chapters, zip them up and use the folder names on disk for inside the archive",
      "(Manga Reader) Fixed up/down arrow key not scrolling on manga reader with original layout",
      "Sanitize OPDS feeds in case the user has characters that are invalid",
      "(Epub Reader) White book theme was unnecessarily overriding some book styles (Thanks @Redst0neFlux)",
      "Don\u0027t darken images on white/paper book themes",
      "Fixed a bug when bulk selecting cards, the read button overlay shouldn\u0027t be present",
      "Confirmation modals didn\u0027t have localized strings.",
      "(Kavita\u002B) Fixed a bug where want to read was scrobbling from libraries where AllowScrobbling is off.",
      "(Kavita\u002B) Fixed a bug where Want to Read scrobbling was not respecting library rules",
      "Fixed Characters field not being wired up in the Save API.",
      "Fixed location locked field not being wired up in the Save API.",
      "Fixed a weird issue where Host name would eat keys when typing on General settings.",
      "Fixed a bug where clicking a person from Volume/Chapter detail pages wouldn\u0027t load the person profile",
      "Fixed a bug that was calling unneeded checks on Kavita\u002B license validation each refresh",
      "Fixed spacing issue on the edit chapter modal (and aligned all modals to have the same spacing)",
      "Fixed a bug where a progress check on the DB was being handled which logged a warning to logger.",
      "Fixed the overlay title on cards extending past the card boundary when in a carousel (Thanks @Zeoic)",
      "Fixed a bug where the background job to fill out metadata was constantly pulling the same blacklisted series over and over again, thus making no progress.",
      "Fixed a bug where epub images that were hotlinked weren\u0027t loading correctly in the reader.",
      "Fixed removing web links behaving wrongly when removing links in a specific order  (Thanks @Fesaa)",
      "Fixed default cache being 50MB when it should be 75MB",
      "Fixed a bug when a metadata refresh event comes int, the active tab could get stuck on series detail",
      "Fixed not being able to update general server settings",
      "(Kavita\u002B) New migration to cleanup super old scrobble events that might be side-effects of version updates."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [
      "Added Fast Font to Book Reader. Fast Font is an open source Bionic Font alternative (FR #1268)",
      "Added the ability to read embedded metadata from PDFs that conform to Calibre\u0027s embedding. (FR #3103)",
      "(Kavita\u002B) Kavita now implements the feature request to sync your \u0027planned\u0027 read lists from AniList/MAL into Kavita\u0027s Want to Read (FR #3153)"
    ],
    "KnownIssues": [
      "Some covers will disappear after being added to Kavita (rare). If I can reproduce, I will hotfix.",
      "Match modal may sometimes appear like there are no results but there should be. This is due to rate issues, this will be addressed in v0.8.6. You just need to wait a few minutes for it to be searchable again.",
      "Don\u0027t fall behind (Out of date)  modal is popping when it shouldn\u0027t (a hotfix will be issued in a few days)"
    ],
    "BlogPart": "\u003Cp\u003EIt\u0027s been some time since the last release and this one is hefty! The goal of this release is to overhaul Kavita\u002B 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.\u003C/p\u003E\n\u003Ch3\u003EMetadata Downloading (Kavita\u002B)\u003C/h3\u003E\n\u003Cp\u003EWhen 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\u002B 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.\u003C/p\u003E\n\u003Cp\u003EKavita 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.\u003C/p\u003E\n\u003Cp\u003EWith that said, I want to set expectations. I\u0027m not looking to build a komf replacement. This will currently just use metadata from AniList/MAL and Hardcover once I get around to it.\u003C/p\u003E\n\u003Cp\u003ESo how does it work?\u003C/p\u003E\n\u003Ch3\u003EPDF Metadata\u003C/h3\u003E\n\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003Ch3\u003ENew Stats API\u003C/h3\u003E\n\u003Cp\u003EThis 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 \u003Ca href=\u0022https://github.com/Kareadita/KavitaStats/pull/67\u0022\u003Ehere\u003C/a\u003E. Thank you to all that continue to report statistics.\u003C/p\u003E\n\u003Ch3\u003EMisc\u003C/h3\u003E\n\u003Cp\u003EI 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\u0027s not 100%, but a best guess.\u003C/p\u003E\n\u003Cp\u003EAnother new feature is bringing Bionic Reading mode to Kavita\u0027s epub reader via a new font. A few users asked for this and thankfully a font made it possible.\u003C/p\u003E\n\u003Ch3\u003EDocker Fix\u003C/h3\u003E\n\u003Cp\u003EIn the last release, docker users reported the scanner breaking. You can fix this with the following. The wiki reflects this as well.\u003C/p\u003E\n\u003Cblockquote\u003E\n\u003Cp\u003EAdd \u003Ccode\u003EDOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true\u003C/code\u003E to your docker compose\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Ch3\u003EThis Year\u003C/h3\u003E\n\u003Cp\u003EWith that said, let\u0027s 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\u0027ve scaled down my goals to 2 main features:\u003C/p\u003E\n\u003Col\u003E\n\u003Cli\u003E\u003Cp\u003E\u003Cstrong\u003EJournal-style Progress\u003C/strong\u003E will allow for a much richer stats experience and allow for some new functionalities in reading history. I\u0027ve already validated this architecture in another project so it shouldn\u0027t be too complex porting back to Kavita.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003E\u003Cstrong\u003EKobo Sync\u003C/strong\u003E 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ol\u003E\n\u003Cp\u003EThese two features are a blend of user wants and my own wants to enable much richer statistics in the application. I\u0027m sure I\u0027ll 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\u0027m really grateful that I have a great community, looking forward to working with you this year.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote: AniList API is currently degraded and stuck at 30 requests / min. I\u0027ve 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\u002B to work around these API limits.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EWith 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\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/942d0640-eb36-4523-93bc-d3f882ae29cc\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/7b6ade48-8036-4d0b-b473-bddaf6b10bc2\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/419955c1-9557-44e2-b329-dba43fb2b050\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/4133c843-cc74-4cb6-96b0-5d1c43fa1d61\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.4.2",
    "UpdateBody": "\u003Cp\u003EA few small things slipped past.\u003C/p\u003E\n\u003Cp\u003EI 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\u0027t easy to preserve data. I will take it on myself to strive for excellence and do what is feasible to preserve data. I don\u0027t foresee many major refactors like this happening in the near future.\u003C/p\u003E\n\u003Cp\u003EOn 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 \u003Ca href=\u0022https://metron-project.github.io/blog/metroninfo-v1\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003Cp\u003EIf you have a lot of metadata that was tagged just via the UI, you can try this \u003Ca href=\u0022https://pastebin.com/RPmfSSYq\u0022\u003Escript\u003C/a\u003E a user wrote to migrate the data. Grab a backup from v0.8.3 and run this against it. You need to update \u003Ccode\u003EoldDb\u003C/code\u003E and \u003Ccode\u003EnewDb\u003C/code\u003E. I cannot offer support for this script.\u003C/p\u003E\n\u003Cp\u003EI 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 \u003Ca href=\u0022https://pastebin.com/BR0GxaXB\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Send to on mobile was still broken\u003C/li\u003E\n\u003Cli\u003EFixed: Changed On Deck to use a workaround as a temp fix\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where on non-English locales parsing numbers would throw an exception and cause files to not be ingested.\u003C/li\u003E\n\u003Cli\u003EFixed: Bulk library delete wasn\u0027t hooked up\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where updating chapter metadata with a new person, the normalized name was saved\u003C/li\u003E\n\u003Cli\u003EFixed: 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)\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.4.2 - Hotfix \u002B Migration Script",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.4.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-11-27T20:11:39Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [],
    "Fixed": [
      "Send to on mobile was still broken",
      "Changed On Deck to use a workaround as a temp fix",
      "Fixed a bug where on non-English locales parsing numbers would throw an exception and cause files to not be ingested.",
      "Bulk library delete wasn\u0027t hooked up",
      "Fixed a bug where updating chapter metadata with a new person, the normalized name was saved",
      "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)"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EA few small things slipped past.\u003C/p\u003E\n\u003Cp\u003EI 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\u0027t easy to preserve data. I will take it on myself to strive for excellence and do what is feasible to preserve data. I don\u0027t foresee many major refactors like this happening in the near future.\u003C/p\u003E\n\u003Cp\u003EOn 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 \u003Ca href=\u0022https://metron-project.github.io/blog/metroninfo-v1\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003Cp\u003EIf you have a lot of metadata that was tagged just via the UI, you can try this \u003Ca href=\u0022https://pastebin.com/RPmfSSYq\u0022\u003Escript\u003C/a\u003E a user wrote to migrate the data. Grab a backup from v0.8.3 and run this against it. You need to update \u003Ccode\u003EoldDb\u003C/code\u003E and \u003Ccode\u003EnewDb\u003C/code\u003E. I cannot offer support for this script.\u003C/p\u003E\n\u003Cp\u003EI 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 \u003Ca href=\u0022https://pastebin.com/BR0GxaXB\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.4",
    "UpdateBody": "\u003Cp\u003EAfter 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.\u003C/p\u003E\n\u003Ch3\u003EScanner\u003C/h3\u003E\n\u003Cp\u003EOne 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.\u003C/p\u003E\n\u003Cp\u003ETo 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. \u003Cstrong\u003EThe new scanner will be slower than the old one.\u003C/strong\u003E As of now, I feel that once the main slow first scan is done, it\u0027s actually performing much better. With this new scanner, there were some other major changes.\u003C/p\u003E\n\u003Ch3\u003EPeople Re-architecture\u003C/h3\u003E\n\u003Cp\u003EIn order to reduce the FK issue in the scanner, I also needed to tackle the 80\u002B 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.\u003C/p\u003E\n\u003Cp\u003EWith 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. \u003Cstrong\u003ENote: Any Smart Filters that relied on people will need manual intervention to correct. A force scan will be required to regenerate writer information.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/992c5451-08c3-45c5-81ce-4426967d3127\u0022 alt=\u0022image\u0022 /\u003E\n\u003Cimg src=\u0022https://github.com/user-attachments/assets/b1a06eb8-ddde-44f6-98c2-98315b252494\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ESpecial Keyword Removal\u003C/h3\u003E\n\u003Cp\u003EThe last thing with the scanner was removing Kavita\u0027s ability to detect and classify certain keywords as Special. Like \u003Ccode\u003EOmake\u003C/code\u003E  or \u003Ccode\u003EAnnual\u003C/code\u003E 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. \u003Cstrong\u003ESpecials going forward will need the SP marker on the filename (or tagged internally).\u003C/strong\u003E\u003C/p\u003E\n\u003Ch3\u003ECoversDB\u003C/h3\u003E\n\u003Cp\u003EKavita 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\u0027ve moved all that functionality and those images over to a new CoversDB \u003Ca href=\u0022https://github.com/Kareadita/CoversDB\u0022\u003Erepo\u003C/a\u003E. 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.\u003C/p\u003E\n\u003Ch3\u003ESmall QoL Features\u003C/h3\u003E\n\u003Cp\u003E\u003Cstrong\u003ELast Read Filter\u003C/strong\u003E 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 \u0026quot;Haven\u0027t read in a month\u0026quot;.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EColorscape Polish\u003C/strong\u003E 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\u0027s not perfect, but it\u0027s a step in the right direction. If you\u0027re passionate about the colorscape system, I welcome collaboration.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EBulk Library Actions\u003C/strong\u003E 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\u002B), sometimes it\u0027s 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).\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/2517e6f1-4548-4d30-ae23-17dc80688771\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ERecap\u003C/h3\u003E\n\u003Cp\u003EThis 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\u002B. With the holidays coming up, it is expected that this will take longer than most releases.\u003C/p\u003E\n\u003Cp\u003EFor those that have seen, we have hit over 65K active installs. It\u0027s 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\u002B, the translators, and of course my wife that helps support me pouring so much time into the project. \u003Cstrong\u003EI\u0027m excited to continue building Kavita and bring about more of our visions into the software and see what is possible.\u003C/strong\u003E\u003C/p\u003E\n\u003Ch3\u003EPeople 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.\u003C/h3\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: 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\u002Bselect works as well.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new page for all People within Kavita. From this page, you can see their works across Kavita.\u003C/li\u003E\n\u003Cli\u003EAdded: Ability to see individual chapters/issues (limited to 20) a person has.\u003C/li\u003E\n\u003Cli\u003EAdded: Ability to add images to the person via UI/API. A more automated method is planned in the future.\u003C/li\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to trigger the general cleanup (which normally runs at midnight) manually in case you need to clear unlinked people, covers, etc.\u003C/li\u003E\n\u003Cli\u003EAdded: Reading List and Collection cards now show a badge showing the number of series/items underneath.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: 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\u003C/li\u003E\n\u003Cli\u003EAdded: Added Details tab to volume details page\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) New Sync Details button on smart collections that shows an easier to digest view of Series and missing series.\u003C/li\u003E\n\u003Cli\u003EAdded: Bulk send to is now available for chapters/volumes\u003C/li\u003E\n\u003Cli\u003EAdded: Added bulk deletion for chapters/volumes\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Optimized a number of methods within the Scanner to reduce memory and CPU time\u003C/li\u003E\n\u003Cli\u003EChanged: Moved a lot of the chapter scanner logging to Trace.\u003C/li\u003E\n\u003Cli\u003EChanged: Scanner can now choose to parallel parse files when there are over 100 in a directory\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: LocalizedSeries merging with Series is now done at a higher level and performs much better (in terms of reliability)\u003C/li\u003E\n\u003Cli\u003EChanged: People are now entity based which allows for a richer experience in Kavita.\u003C/li\u003E\n\u003Cli\u003EChanged: Clicking on any person in Kavita will now open their dedicated page which showcases their different works.\u003C/li\u003E\n\u003Cli\u003EChanged: (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.\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Changed logging level on some of the loggers that could become noisy\u003C/li\u003E\n\u003Cli\u003EChanged: Refactored some of the post-series work to a separate thread.\u003C/li\u003E\n\u003Cli\u003EChanged: Ensure mobile actionable modal is fullscreen and centered vertically\u003C/li\u003E\n\u003Cli\u003EChanged: Update to Angular 18 and other backend dependencies\u003C/li\u003E\n\u003Cli\u003EChanged: When a setting is invalid, clicking outside the setting item will not close and edit is disabled.\u003C/li\u003E\n\u003Cli\u003EChanged: Changed the smart filters page to open in the same window (but still available to open in new tab)\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Made the pipe that turns the language codes into full names use a dedicated API which is faster\u003C/li\u003E\n\u003Cli\u003EChanged: Improved the wording for Single Volume chapters on Series detail page (and person detail page)\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita now uses a different repo for publisher images and favicons (https://github.com/Kareadita/CoversDB). Any changes should be made here.\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Significantly improved the feel of the colorscape experience. When transitioning between colorscapes, locations of accent points will randomize. Lighter colors will try to avoid the bottom right where there could be bad contrast.\u003C/li\u003E\n\u003Cli\u003EChanged: Changed Colorscape to use non-linear animation for transitioning between 2 colorscapes.\u003C/li\u003E\n\u003Cli\u003EChanged: If the user somehow wrote bad cron notation for custom jobs, on startup, Kavita will detect and default to daily\u003C/li\u003E\n\u003Cli\u003EChanged: Changed the overall look and feel of the preference side nav and main side nav (Thanks @MrRobotjs)\u003C/li\u003E\n\u003Cli\u003EChanged: Moved Test email settings to the top to align with the UX patterns\u003C/li\u003E\n\u003Cli\u003EChanged: Moved Reset to Defaults to the top to align with UX patterns and removed a few instances since it resets everything.\u003C/li\u003E\n\u003Cli\u003EChanged: Changed a lot of modals to be more consistent in how they open and their size to be slightly larger.\u003C/li\u003E\n\u003Cli\u003EChanged: When failing to get a page count on an archive, report it in media issues\u003C/li\u003E\n\u003Cli\u003EChanged: Improved memory consumption on some filtering conditions\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked some logging messages to be more clear when using logs to debug\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where the UnauthorizedAccessException is not correctly ignored when using the docker container as non-root. (Thanks @Fesaa)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where any media that was less than an hour in length wouldn\u0027t be included in stats. This requires Analyze Files to be ran on all libraries to retroactively fix\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where chapter order wasn\u0027t properly sorting on Volume Detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where bookmarking wouldn\u0027t check if the source file was already in the target encoding and thus had issue when trying to convert. Also added another check to not do anything if target encoding is PNG (aka Kavita doesn\u0027t convert webp -\u0026gt; png).\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Series Cover image could choose a Volume 0 instead of Volume 1\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where teams and locations wouldn\u0027t trigger updating people on update series metadata api\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where calculating the Lowest Folder for a Series could be incorrect when there are nested folders. This includes a migration to clear out existing entries to avoid scan series not seeing files.\nExample:\n/ \u0026lt;- Lib root assume\n/love hina/love hina/v01.cbz\n/love hina/specials/sp01.cbz\nThe lowest series folder was /love hina/love hina/ for some reason, meaning series scan wasn\u0027t getting the full series (all folders) scanned in.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up a check for using lowest folder path to lookup from a Folder Watcher task. This should find series much better from a lower file path.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where teams and locations wouldn\u0027t trigger updating people on update series metadata api\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where users could change their age rating when they didn\u0027t have the permission\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where download wasn\u0027t functioning from the on deck cards\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a typo on the localization string for Create Multiple Reading List/Collection pages\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Promote/Unpromote not working from reading list detail page and collection detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure we show details page when weblinks are present, including chapter detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed related tab not having enough bottom padding\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a few different combinations where IsEmpty was not working\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed broken Send To on mobile and Send To not actually functioning for chapter/volume cards.\u003C/li\u003E\n\u003Cli\u003EFixed: Tweaked read-time-left pipe to have better control on how we present the now decimal number.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where continue from was choosing ch instead of vol\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed read-more text not displaying newlines correctly in some situations (Thanks @Fesaa)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the search bar closing when toggling show chapters and files toggle (Thanks @Fesaa)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where validation wasn\u0027t showing on Hostname\u003C/li\u003E\n\u003Cli\u003EFixed: Next expected card had layout issues and missing localization\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t close a modal when a typeahead is open and pressing Escape key\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed tooltips not rendering on some cards, like reading list/collection cards\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a missing case to show storyline tab on Light Novel libraries when users use chapters (not common)\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure the edit series modal is showing the localized publication status\u003C/li\u003E\n\u003Cli\u003EFixed: Updated a lot of missing localization keys\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the fade between colorscape so there isn\u0027t a reset to default anymore\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue with how specials render on reading list detail page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the duplicate Dark theme issue once and for all\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed custom tasks not being possible\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Irish not working when selected as locale\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed edit chapter modal failing to save when setting Age Rating\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where when a card doesn\u0027t have a format, 22px was still beating taken up.\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure More In Genre doesn\u0027t choose from a Genre that\u0027s not exposed to the dashboard\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where bulk mode on customize side nav wasn\u0027t laying out the bulk update well.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed delete chapter not being hooked up from Volume details page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed user rating filter not working at all. It was accepting a percentage, but should have been a number 0-5 for the star rating.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the bulk actions bar laying out in the wrong position\u003C/li\u003E\n\u003Cli\u003EFixed: In the rare occasion someone turns off all the file types for a library, the scanner will now respect that.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Delete and Analyze Files on the library detail actionables not being hooked up\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue with doujin filenames causing series to all parse as (\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where old Book libraries could be stuck in Scrobbling On state\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed age rating icon not updating upon series metadata changes\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure Jumpkeys are grouped non-case sensitive\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where want to read page was using a custom query passed through the filtering pipeline, thus breaking some combos.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where manage email settings was spamming the backend due to an infinite loop\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed select all on edit user modal affecting the role/library control as well.\u003C/li\u003E\n\u003Cli\u003EFixed: On Age Rating filter, the comparisons could be duplicated\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with bulk selection not pruning submenu actions when there are no children left. (aka empty send to)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ESearch now returns a list of PersonDto instead of strings for People results.\u003C/li\u003E\n\u003Cli\u003ERemoved metadata/chapter-summary api since it hasn\u0027t been used in years\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ETheme\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ESide nav selected tab now uses --side-nav-item-active-text-color on the text instead of just being white\u003C/li\u003E\n\u003Cli\u003EAdded --side-nav-width variable to control side nav bar width\u003C/li\u003E\n\u003Cli\u003EAdded --navbar-header-margin, set it to 8px and --nav-offset to 56px to get the Plex floating navbar.\u003C/li\u003E\n\u003Cli\u003EAdded --navbar-border-radius to fix the navbar but let users customize for that Plex look.\u003C/li\u003E\n\u003Cli\u003EAdded --navbar-header-mobile-x-margin and --navbar-header-mobile-y-margin to allow for the Plex navbar on mobile\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFeature Requests\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded the ability to browse all Writers and Artists (cover artist) in one page. This should help book users that like to browse by author. (FR #2556 - 23 votes)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EKnown Issues\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003E(Kavita\u002B) MAL Stack imports/Smart Collection total series count is not correct. This will be fixed with v0.8.5.\u003C/li\u003E\n\u003Cli\u003EUploading some dimensions for person cover can cause the image to be squished. This will be fixed with v0.8.5.\u003C/li\u003E\n\u003Cli\u003EWhen using multiple reading progress filters, some series with 100% reading progress will show (clicking On Deck). After 14 hours, I can\u0027t solve it. I will loop around in v0.8.5.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.4 - New Scanner \u002B Browse Authors/Artists \u002B Tons of Bugfixes",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.4",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-11-23T00:12:26Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "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\u002Bselect works as well.",
      "Added a new page for all People within Kavita. From this page, you can see their works across Kavita.",
      "Ability to see individual chapters/issues (limited to 20) a person has.",
      "Ability to add images to the person via UI/API. A more automated method is planned in the future.",
      "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 the ability to trigger the general cleanup (which normally runs at midnight) manually in case you need to clear unlinked people, covers, etc.",
      "Reading List and Collection cards now show a badge showing the number of series/items underneath.",
      "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 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 Details tab to volume details page",
      "(Kavita\u002B) New Sync Details button on smart collections that shows an easier to digest view of Series and missing series.",
      "Bulk send to is now available for chapters/volumes",
      "Added bulk deletion for chapters/volumes"
    ],
    "Removed": [],
    "Changed": [
      "Optimized a number of methods within the Scanner to reduce memory and CPU time",
      "Moved a lot of the chapter scanner logging to Trace.",
      "Scanner can now choose to parallel parse files when there are over 100 in a directory",
      "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.",
      "LocalizedSeries merging with Series is now done at a higher level and performs much better (in terms of reliability)",
      "People are now entity based which allows for a richer experience in Kavita.",
      "Clicking on any person in Kavita will now open their dedicated page which showcases their different works.",
      "(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.",
      "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 logging level on some of the loggers that could become noisy",
      "Refactored some of the post-series work to a separate thread.",
      "Ensure mobile actionable modal is fullscreen and centered vertically",
      "Update to Angular 18 and other backend dependencies",
      "When a setting is invalid, clicking outside the setting item will not close and edit is disabled.",
      "Changed the smart filters page to open in the same window (but still available to open in new tab)",
      "(Performance) Made the pipe that turns the language codes into full names use a dedicated API which is faster",
      "Improved the wording for Single Volume chapters on Series detail page (and person detail page)",
      "Kavita now uses a different repo for publisher images and favicons (https://github.com/Kareadita/CoversDB). Any changes should be made here.",
      "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.",
      "Significantly improved the feel of the colorscape experience. When transitioning between colorscapes, locations of accent points will randomize. Lighter colors will try to avoid the bottom right where there could be bad contrast.",
      "Changed Colorscape to use non-linear animation for transitioning between 2 colorscapes.",
      "If the user somehow wrote bad cron notation for custom jobs, on startup, Kavita will detect and default to daily",
      "Changed the overall look and feel of the preference side nav and main side nav (Thanks @MrRobotjs)",
      "Moved Test email settings to the top to align with the UX patterns",
      "Moved Reset to Defaults to the top to align with UX patterns and removed a few instances since it resets everything.",
      "Changed a lot of modals to be more consistent in how they open and their size to be slightly larger.",
      "When failing to get a page count on an archive, report it in media issues",
      "Improved memory consumption on some filtering conditions",
      "Tweaked some logging messages to be more clear when using logs to debug"
    ],
    "Fixed": [
      "Fixed a bug where the UnauthorizedAccessException is not correctly ignored when using the docker container as non-root. (Thanks @Fesaa)",
      "Fixed a bug where any media that was less than an hour in length wouldn\u0027t be included in stats. This requires Analyze Files to be ran on all libraries to retroactively fix",
      "Fixed a bug where chapter order wasn\u0027t properly sorting on Volume Detail page",
      "Fixed an issue where bookmarking wouldn\u0027t check if the source file was already in the target encoding and thus had issue when trying to convert. Also added another check to not do anything if target encoding is PNG (aka Kavita doesn\u0027t convert webp -\u003E png).",
      "Fixed a bug where Series Cover image could choose a Volume 0 instead of Volume 1",
      "Fixed a bug where teams and locations wouldn\u0027t trigger updating people on update series metadata api",
      "Fixed a bug where calculating the Lowest Folder for a Series could be incorrect when there are nested folders. This includes a migration to clear out existing entries to avoid scan series not seeing files.",
      "Fixed up a check for using lowest folder path to lookup from a Folder Watcher task. This should find series much better from a lower file path.",
      "Fixed a bug where teams and locations wouldn\u0027t trigger updating people on update series metadata api",
      "Fixed a bug where users could change their age rating when they didn\u0027t have the permission",
      "Fixed a bug where download wasn\u0027t functioning from the on deck cards",
      "Fixed a typo on the localization string for Create Multiple Reading List/Collection pages",
      "Fixed Promote/Unpromote not working from reading list detail page and collection detail page",
      "Ensure we show details page when weblinks are present, including chapter detail page",
      "Fixed related tab not having enough bottom padding",
      "Fixed a few different combinations where IsEmpty was not working",
      "Fixed broken Send To on mobile and Send To not actually functioning for chapter/volume cards.",
      "Tweaked read-time-left pipe to have better control on how we present the now decimal number.",
      "Fixed a bug where continue from was choosing ch instead of vol",
      "Fixed read-more text not displaying newlines correctly in some situations (Thanks @Fesaa)",
      "Fixed the search bar closing when toggling show chapters and files toggle (Thanks @Fesaa)",
      "Fixed a bug where validation wasn\u0027t showing on Hostname",
      "Next expected card had layout issues and missing localization",
      "Don\u0027t close a modal when a typeahead is open and pressing Escape key",
      "Fixed tooltips not rendering on some cards, like reading list/collection cards",
      "Fixed a missing case to show storyline tab on Light Novel libraries when users use chapters (not common)",
      "Ensure the edit series modal is showing the localized publication status",
      "Updated a lot of missing localization keys",
      "Fixed the fade between colorscape so there isn\u0027t a reset to default anymore",
      "Fixed an issue with how specials render on reading list detail page",
      "Fixed the duplicate Dark theme issue once and for all",
      "Fixed custom tasks not being possible",
      "Fixed Irish not working when selected as locale",
      "Fixed edit chapter modal failing to save when setting Age Rating",
      "Fixed a bug where when a card doesn\u0027t have a format, 22px was still beating taken up.",
      "Ensure More In Genre doesn\u0027t choose from a Genre that\u0027s not exposed to the dashboard",
      "Fixed a bug where bulk mode on customize side nav wasn\u0027t laying out the bulk update well.",
      "Fixed delete chapter not being hooked up from Volume details page",
      "Fixed user rating filter not working at all. It was accepting a percentage, but should have been a number 0-5 for the star rating.",
      "Fixed the bulk actions bar laying out in the wrong position",
      "In the rare occasion someone turns off all the file types for a library, the scanner will now respect that.",
      "Fixed Delete and Analyze Files on the library detail actionables not being hooked up",
      "Fixed an issue with doujin filenames causing series to all parse as (",
      "(Kavita\u002B) Fixed a bug where old Book libraries could be stuck in Scrobbling On state",
      "Fixed age rating icon not updating upon series metadata changes",
      "Ensure Jumpkeys are grouped non-case sensitive",
      "Fixed a bug where want to read page was using a custom query passed through the filtering pipeline, thus breaking some combos.",
      "Fixed a bug where manage email settings was spamming the backend due to an infinite loop",
      "Fixed select all on edit user modal affecting the role/library control as well.",
      "On Age Rating filter, the comparisons could be duplicated",
      "Fixed a bug with bulk selection not pruning submenu actions when there are no children left. (aka empty send to)"
    ],
    "Theme": [
      "Side nav selected tab now uses --side-nav-item-active-text-color on the text instead of just being white",
      "Added --side-nav-width variable to control side nav bar width",
      "Added --navbar-header-margin, set it to 8px and --nav-offset to 56px to get the Plex floating navbar.",
      "Added --navbar-border-radius to fix the navbar but let users customize for that Plex look.",
      "Added --navbar-header-mobile-x-margin and --navbar-header-mobile-y-margin to allow for the Plex navbar on mobile"
    ],
    "Developer": [],
    "Api": [
      "Search now returns a list of PersonDto instead of strings for People results.",
      "Removed metadata/chapter-summary api since it hasn\u0027t been used in years"
    ],
    "FeatureRequests": [
      "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. (FR #2556 - 23 votes)"
    ],
    "KnownIssues": [
      "(Kavita\u002B) MAL Stack imports/Smart Collection total series count is not correct. This will be fixed with v0.8.5.",
      "Uploading some dimensions for person cover can cause the image to be squished. This will be fixed with v0.8.5.",
      "When using multiple reading progress filters, some series with 100% reading progress will show (clicking On Deck). After 14 hours, I can\u0027t solve it. I will loop around in v0.8.5."
    ],
    "BlogPart": "\u003Cp\u003EAfter 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.\u003C/p\u003E\n\u003Ch3\u003EScanner\u003C/h3\u003E\n\u003Cp\u003EOne 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.\u003C/p\u003E\n\u003Cp\u003ETo 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. \u003Cstrong\u003EThe new scanner will be slower than the old one.\u003C/strong\u003E As of now, I feel that once the main slow first scan is done, it\u0027s actually performing much better. With this new scanner, there were some other major changes.\u003C/p\u003E\n\u003Ch3\u003EPeople Re-architecture\u003C/h3\u003E\n\u003Cp\u003EIn order to reduce the FK issue in the scanner, I also needed to tackle the 80\u002B 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.\u003C/p\u003E\n\u003Cp\u003EWith 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. \u003Cstrong\u003ENote: Any Smart Filters that relied on people will need manual intervention to correct. A force scan will be required to regenerate writer information.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/992c5451-08c3-45c5-81ce-4426967d3127\u0022 alt=\u0022image\u0022 /\u003E\n\u003Cimg src=\u0022https://github.com/user-attachments/assets/b1a06eb8-ddde-44f6-98c2-98315b252494\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ESpecial Keyword Removal\u003C/h3\u003E\n\u003Cp\u003EThe last thing with the scanner was removing Kavita\u0027s ability to detect and classify certain keywords as Special. Like \u003Ccode\u003EOmake\u003C/code\u003E  or \u003Ccode\u003EAnnual\u003C/code\u003E 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. \u003Cstrong\u003ESpecials going forward will need the SP marker on the filename (or tagged internally).\u003C/strong\u003E\u003C/p\u003E\n\u003Ch3\u003ECoversDB\u003C/h3\u003E\n\u003Cp\u003EKavita 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\u0027ve moved all that functionality and those images over to a new CoversDB \u003Ca href=\u0022https://github.com/Kareadita/CoversDB\u0022\u003Erepo\u003C/a\u003E. 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.\u003C/p\u003E\n\u003Ch3\u003ESmall QoL Features\u003C/h3\u003E\n\u003Cp\u003E\u003Cstrong\u003ELast Read Filter\u003C/strong\u003E 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 \u0026quot;Haven\u0027t read in a month\u0026quot;.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EColorscape Polish\u003C/strong\u003E 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\u0027s not perfect, but it\u0027s a step in the right direction. If you\u0027re passionate about the colorscape system, I welcome collaboration.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EBulk Library Actions\u003C/strong\u003E 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\u002B), sometimes it\u0027s 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).\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/2517e6f1-4548-4d30-ae23-17dc80688771\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ERecap\u003C/h3\u003E\n\u003Cp\u003EThis 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\u002B. With the holidays coming up, it is expected that this will take longer than most releases.\u003C/p\u003E\n\u003Cp\u003EFor those that have seen, we have hit over 65K active installs. It\u0027s 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\u002B, the translators, and of course my wife that helps support me pouring so much time into the project. \u003Cstrong\u003EI\u0027m excited to continue building Kavita and bring about more of our visions into the software and see what is possible.\u003C/strong\u003E\u003C/p\u003E\n\u003Ch3\u003EPeople 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.\u003C/h3\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.3.2",
    "UpdateBody": "\u003Cp\u003EThe 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\u0027t 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.\u003C/p\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Instead of showing \u0027Special\u0027 on chapter cards that aren\u0027t real, show a dash instead\u003C/li\u003E\n\u003Cli\u003EChanged: Changed how the warning about Email settings and the Test flow worked to be less intrusive\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Small memory improvement when returning reading list items over OPDS\u003C/li\u003E\n\u003Cli\u003EChanged: Changed \u0027Edit Series Information\u0027 tooltip to \u0027Edit Information\u0027 as it\u0027s now generic for other entities\u003C/li\u003E\n\u003Cli\u003EChanged: Adjusted the logic for displaying chapter information when the chapter belongs to a single volume.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where all chapter cards would always say chapter, instead of issue\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some edge case styling issues on cards\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the wording for the edit tooltip to be more generic since used on other pages, not just series\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Cover Artists still showing instead of Artist in Search\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where task settings weren\u0027t saving\u003C/li\u003E\n\u003Cli\u003EFixed: 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.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where validators would reject payload when password was over 32 characters\u003C/li\u003E\n\u003Cli\u003EFixed: Genres/Tags margins on details tab wasn\u0027t aligned well with People information\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where Cover Image Size wasn\u0027t displaying on the UI\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when changing the bookmark directory would throw an error and not function\u003C/li\u003E\n\u003Cli\u003EFixed: 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)\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.3.2 - A Small Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.3.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-09-20T21:24:03Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [
      "Instead of showing \u0027Special\u0027 on chapter cards that aren\u0027t real, show a dash instead",
      "Changed how the warning about Email settings and the Test flow worked to be less intrusive",
      "(Performance) Small memory improvement when returning reading list items over OPDS",
      "Changed \u0027Edit Series Information\u0027 tooltip to \u0027Edit Information\u0027 as it\u0027s now generic for other entities",
      "Adjusted the logic for displaying chapter information when the chapter belongs to a single volume."
    ],
    "Fixed": [
      "Fixed a bug where all chapter cards would always say chapter, instead of issue",
      "Fixed some edge case styling issues on cards",
      "Fixed the wording for the edit tooltip to be more generic since used on other pages, not just series",
      "Fixed Cover Artists still showing instead of Artist in Search",
      "Fixed a bug where task settings weren\u0027t saving",
      "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 an issue where validators would reject payload when password was over 32 characters",
      "Genres/Tags margins on details tab wasn\u0027t aligned well with People information",
      "Fixed an issue where Cover Image Size wasn\u0027t displaying on the UI",
      "Fixed a bug when changing the bookmark directory would throw an error and not function",
      "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)"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EThe 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\u0027t 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.3",
    "UpdateBody": "\u003Cp\u003EIt\u0027s finally here, the UX Refresh. Robbie and I have been dreaming and planning this for over a year now and we\u0027ve 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\u0027m trying to make Kavita the Plex for reading. So let\u0027s get into the nitty gritty of what makes this release.\u003C/p\u003E\n\u003Ch3\u003EColorscape\u003C/h3\u003E\n\u003Cp\u003EWhen I browse Plex, I\u0027m 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\u0027s 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\u0027m most proud of with this release.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/25b81beb-1333-4e82-b22f-8f41e3c9c72d\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003EIndividual Pages\u003C/h3\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/954050d9-184e-46b6-8cbf-1985844aef8d\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ESettings Overhaul\u003C/h3\u003E\n\u003Cp\u003EAgain 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/aa330cb2-ae1b-442a-a109-3c568104e8e8\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003EPublisher Images\u003C/h3\u003E\n\u003Cp\u003ELastly, 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 \u003Ca href=\u0022https://github.com/Kareadita/kareadita.github.io?tab=readme-ov-file#publishers\u0022\u003Ekavita repo\u003C/a\u003E 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/21791599-0956-49fb-b817-f3117e4defba\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003EAll in all, I\u0027m really proud of this release. Next up is an overhaul to the UX surrounding Kavita\u002B 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ERefresh your browser after updating\u003C/strong\u003E\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added ability to upload a volume cover for Komf users\u003C/li\u003E\n\u003Cli\u003EAdded: Added a lot of ability to theme the login screen, including the background image.\u003C/li\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new actionable for Library to generate colorscapes (which is a soft refresh covers)\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a Volume/Chapter detail page. From any card you can click and open the detail page.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to directly read a card/volume/series/readinglist from the card or open their details page.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to have publisher images (that are managed on Kavita\u0027s site, like favicons). There is no extra styling, this is pretty rough but I want to see from users if there is any interest.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new metadata filter called \u0027is empty\u0027. This will check against fields like Writers, Tags, Genres, etc to explicitly see if there are no links. (Feature Request)\u003C/li\u003E\n\u003Cli\u003EAdded: .yacreaderlibrary directories will be ignored by the scanner\u003C/li\u003E\n\u003Cli\u003EAdded: Made it so when a new version of Kavita is released, the UI will automatically refresh and bust locale cache since non-admins can\u0027t actually run the bust cache task.\u003C/li\u003E\n\u003Cli\u003EAdded: Admins can now trigger Sync Theme job from Tasks page\u003C/li\u003E\n\u003Cli\u003EAdded: Added a link to the CBL Repo from CBL Import for those that are unaware of the project\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Passwords can now be up to 256 characters long\u003C/li\u003E\n\u003Cli\u003EChanged: Changed some headers, spacing, and positioning to make things more uniform across the app.\u003C/li\u003E\n\u003Cli\u003EChanged: Revamped how settings/preferences work in the app. Following Plex\u0027 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)\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Jump keys now show an animation instead of a tooltip to show number of series\u003C/li\u003E\n\u003Cli\u003EChanged: Filter icon now shows an animation when actively configuring it\u003C/li\u003E\n\u003Cli\u003EChanged: Moved some screens around to dedicated sections and most of Kavita\u002B screens are now on a new Scrobbling page\u003C/li\u003E\n\u003Cli\u003EChanged: Moved the customize modal into a dedicated settings item to make discovery of the feature easier.\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Cast and Reviews are in their own tab\u003C/li\u003E\n\u003Cli\u003EChanged: Tabs on Series Detail now report card count\u003C/li\u003E\n\u003Cli\u003EChanged: All preferences (except those in account) now just save automatically after interaction\u003C/li\u003E\n\u003Cli\u003EChanged: Removed library setting \u0027Include in Recommendations\u0027 as Kavita no longer has those flows\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Added a customize button on the Side nav when you move into \u0027More\u0027, so you know you can tweak it if you haven\u0027t visited settings yet.\u003C/li\u003E\n\u003Cli\u003EChanged: Series cards will now show the localized name on hover if present\u003C/li\u003E\n\u003Cli\u003EChanged: Chapter cards will now show the title on hover if present.\u003C/li\u003E\n\u003Cli\u003EChanged: Cover Artists is now Artists in the application.\u003C/li\u003E\n\u003Cli\u003EChanged: After selecting a tab, a refresh of the browser will resume you back on the same tab on series/volume/chapter detail pages.\u003C/li\u003E\n\u003Cli\u003EChanged: Folder watching is now moved to a separate background thread so it doesn\u0027t block startup for users with massive libraries\u003C/li\u003E\n\u003Cli\u003EChanged: After we update a metadata filter, rescroll to the top as results change\u003C/li\u003E\n\u003Cli\u003EChanged: Cleaned up some registration error output to look nicer\u003C/li\u003E\n\u003Cli\u003EChanged: Reorganized edit user modal to better handle users with large amounts of libraries.\u003C/li\u003E\n\u003Cli\u003EChanged: When mass creating libraries, ensure we enqueue the scans. Also don\u0027t restart folder watching if folder watching isn\u0027t on.\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked some backend code around when we restart library watching and make sure it\u0027s always done in a background thread.\u003C/li\u003E\n\u003Cli\u003EChanged: Sync Themes job now runs daily instead of weekly\u003C/li\u003E\n\u003Cli\u003EChanged: Lots of small improvements to the UX of theme manager\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed an issue where long passwords would truncate on autofill.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a side-nav css var that was inappropriately assigned.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug in theme manager where the active pill wouldn\u0027t have the correct color for non-dark themes\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where reading list cards wouldn\u0027t promote/unpromote from actionables\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where OPDS reading list feeds were missing pagination\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case where busting Kavita\u002B cache in edit series then hitting close wasn\u0027t refreshing screen.\u003C/li\u003E\n\u003Cli\u003EFixed: A ton of localization changes across the board (Thank you to the Translators for promptly updating language support to 100%)\u003C/li\u003E\n\u003Cli\u003EFixed a bug where busting locale cache wouldn\u0027t refresh the new translations\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some logic around disabling scrobbling on the UI side for library type selections\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where pinned smart filters on the side nav would all show an active highlight (Thanks @Fesaa for the help fixing)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where there could be a duplicate key in OPDS for some unique configurations.\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t allow users to add series to smart collections\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed CBL Import flow and a bad localization string when the reading list already exists\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) MAL Interest stacks didn\u0027t handle pagination correctly, but now it does. You can now import all your stacks.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed duplicate Dark theme issue\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with utc to local time not respecting null date\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where user was unable to save manga reader preferences due to a missing field\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure that any smart filter bound to the dashboard load in the correct Context and respect libraries that have opted out of showing on the Dashboard. (FR #3149)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed duplicate Dark theme issue\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where user was unable to save manga reader preferences due to a missing field\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure that any smart filter bound to the dashboard load in the correct Context and respect libraries that have opted out of showing on the Dashboard.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where user rating was using a float (0-1) but users were expecting to put in a percentage given that\u0027s always how the UI shows it. Now, Kavita will translate from percentage to float behind the scenes.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed CBL import breaking again due to swagger\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where a user with no reading progress would throw an exception on loading stats page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where after downloading a theme, the theme would be unselected.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some exceptions being thrown when downloading or fetching themes.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an error when trying to save settings from the manga reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the manga reader could prefetch all files in the archive\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a weird state where a book series with a volume 0 and being marked as special would trick series detail into rendering 0 out on card title instead of title.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ETheme\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ETables are now themeable\u003C/li\u003E\n\u003Cli\u003EThere were a ton of changes and new css variables. Wiki has been updated with extra documentation around colorscape system.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EUpdated how resetting cover image field works on the API. All update APIs now accept a LockCover field which will force the lock or not. Defaults to true. Can still reset the cover by passing an empty string and false. In addition, the code is more streamlined to ensure after a reset, a regeneration task is queued.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.3 - The UX Refresh",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.3",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-09-18T13:25:09Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added ability to upload a volume cover for Komf users",
      "Added a lot of ability to theme the login screen, including the background image.",
      "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 a new actionable for Library to generate colorscapes (which is a soft refresh covers)",
      "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 a Volume/Chapter detail page. From any card you can click and open the detail page.",
      "Added the ability to directly read a card/volume/series/readinglist from the card or open their details page.",
      "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 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 the ability to have publisher images (that are managed on Kavita\u0027s 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 a new metadata filter called \u0027is empty\u0027. This will check against fields like Writers, Tags, Genres, etc to explicitly see if there are no links. (Feature Request)",
      ".yacreaderlibrary directories will be ignored by the scanner",
      "Made it so when a new version of Kavita is released, the UI will automatically refresh and bust locale cache since non-admins can\u0027t actually run the bust cache task.",
      "Admins can now trigger Sync Theme job from Tasks page",
      "Added a link to the CBL Repo from CBL Import for those that are unaware of the project"
    ],
    "Removed": [],
    "Changed": [
      "Passwords can now be up to 256 characters long",
      "Changed some headers, spacing, and positioning to make things more uniform across the app.",
      "Revamped how settings/preferences work in the app. Following Plex\u0027 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)",
      "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.",
      "Jump keys now show an animation instead of a tooltip to show number of series",
      "Filter icon now shows an animation when actively configuring it",
      "Moved some screens around to dedicated sections and most of Kavita\u002B screens are now on a new Scrobbling page",
      "Moved the customize modal into a dedicated settings item to make discovery of the feature easier.",
      "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.",
      "Cast and Reviews are in their own tab",
      "Tabs on Series Detail now report card count",
      "All preferences (except those in account) now just save automatically after interaction",
      "Removed library setting \u0027Include in Recommendations\u0027 as Kavita no longer has those flows",
      "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.",
      "Added a customize button on the Side nav when you move into \u0027More\u0027, so you know you can tweak it if you haven\u0027t visited settings yet.",
      "Series cards will now show the localized name on hover if present",
      "Chapter cards will now show the title on hover if present.",
      "Cover Artists is now Artists in the application.",
      "After selecting a tab, a refresh of the browser will resume you back on the same tab on series/volume/chapter detail pages.",
      "Folder watching is now moved to a separate background thread so it doesn\u0027t block startup for users with massive libraries",
      "After we update a metadata filter, rescroll to the top as results change",
      "Cleaned up some registration error output to look nicer",
      "Reorganized edit user modal to better handle users with large amounts of libraries.",
      "When mass creating libraries, ensure we enqueue the scans. Also don\u0027t restart folder watching if folder watching isn\u0027t on.",
      "Tweaked some backend code around when we restart library watching and make sure it\u0027s always done in a background thread.",
      "Sync Themes job now runs daily instead of weekly",
      "Lots of small improvements to the UX of theme manager",
      "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 an issue where long passwords would truncate on autofill.",
      "Fixed a side-nav css var that was inappropriately assigned.",
      "Fixed a bug in theme manager where the active pill wouldn\u0027t have the correct color for non-dark themes",
      "Fixed a bug where reading list cards wouldn\u0027t promote/unpromote from actionables",
      "Fixed a bug where OPDS reading list feeds were missing pagination",
      "Fixed an edge case where busting Kavita\u002B cache in edit series then hitting close wasn\u0027t refreshing screen.",
      "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\u0027t refresh the new translations",
      "Fixed some logic around disabling scrobbling on the UI side for library type selections",
      "Fixed a bug where pinned smart filters on the side nav would all show an active highlight (Thanks @Fesaa for the help fixing)",
      "Fixed a bug where there could be a duplicate key in OPDS for some unique configurations.",
      "Don\u0027t allow users to add series to smart collections",
      "Fixed CBL Import flow and a bad localization string when the reading list already exists",
      "(Kavita\u002B) MAL Interest stacks didn\u0027t handle pagination correctly, but now it does. You can now import all your stacks.",
      "Fixed duplicate Dark theme issue",
      "Fixed a bug with utc to local time not respecting null date",
      "Fixed a bug where user was unable to save manga reader preferences due to a missing field",
      "Ensure that any smart filter bound to the dashboard load in the correct Context and respect libraries that have opted out of showing on the Dashboard. (FR #3149)",
      "Fixed duplicate Dark theme issue",
      "Fixed a bug where user was unable to save manga reader preferences due to a missing field",
      "Ensure that any smart filter bound to the dashboard load in the correct Context and respect libraries that have opted out of showing on the Dashboard.",
      "Fixed an issue where user rating was using a float (0-1) but users were expecting to put in a percentage given that\u0027s always how the UI shows it. Now, Kavita will translate from percentage to float behind the scenes.",
      "Fixed CBL import breaking again due to swagger",
      "Fixed an issue where a user with no reading progress would throw an exception on loading stats page",
      "Fixed an issue where after downloading a theme, the theme would be unselected.",
      "Fixed some exceptions being thrown when downloading or fetching themes.",
      "Fixed an error when trying to save settings from the manga reader",
      "Fixed a bug where the manga reader could prefetch all files in the archive",
      "Fixed a weird state where a book series with a volume 0 and being marked as special would trick series detail into rendering 0 out on card title instead of title."
    ],
    "Theme": [
      "Tables are now themeable",
      "There were a ton of changes and new css variables. Wiki has been updated with extra documentation around colorscape system."
    ],
    "Developer": [],
    "Api": [
      "Updated how resetting cover image field works on the API. All update APIs now accept a LockCover field which will force the lock or not. Defaults to true. Can still reset the cover by passing an empty string and false. In addition, the code is more streamlined to ensure after a reset, a regeneration task is queued."
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EIt\u0027s finally here, the UX Refresh. Robbie and I have been dreaming and planning this for over a year now and we\u0027ve 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\u0027m trying to make Kavita the Plex for reading. So let\u0027s get into the nitty gritty of what makes this release.\u003C/p\u003E\n\u003Ch3\u003EColorscape\u003C/h3\u003E\n\u003Cp\u003EWhen I browse Plex, I\u0027m 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\u0027s 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\u0027m most proud of with this release.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/25b81beb-1333-4e82-b22f-8f41e3c9c72d\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003EIndividual Pages\u003C/h3\u003E\n\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/954050d9-184e-46b6-8cbf-1985844aef8d\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ESettings Overhaul\u003C/h3\u003E\n\u003Cp\u003EAgain 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/aa330cb2-ae1b-442a-a109-3c568104e8e8\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003EPublisher Images\u003C/h3\u003E\n\u003Cp\u003ELastly, 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 \u003Ca href=\u0022https://github.com/Kareadita/kareadita.github.io?tab=readme-ov-file#publishers\u0022\u003Ekavita repo\u003C/a\u003E 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/user-attachments/assets/21791599-0956-49fb-b817-f3117e4defba\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003EAll in all, I\u0027m really proud of this release. Next up is an overhaul to the UX surrounding Kavita\u002B 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ERefresh your browser after updating\u003C/strong\u003E\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.2",
    "UpdateBody": "\u003Cp\u003EA 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\u0027s get into it.\u003C/p\u003E\n\u003Ch3\u003EBuilt-in Theme Explorer\u003C/h3\u003E\n\u003Cp\u003EOne 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\u0027s 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\u0027t hear much from nightly users thinking it\u0027s needed. If you feel otherwise, raise a discussion. If you don\u0027t 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).\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/Kareadita/Kavita/assets/735851/b40e1284-8c30-4f3b-968c-73227abb65f3\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ESmart Collections for Kavita\u002B\u003C/h3\u003E\n\u003Cp\u003EThis is another one I\u0027ve 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.\u003C/p\u003E\n\u003Ch3\u003EScanner Changes\u003C/h3\u003E\n\u003Cp\u003EI\u0027ve 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\u0027s 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\u0027t 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\u0027t finding good results after this update, please do reach out.\u003C/p\u003E\n\u003Ch3\u003EMisc Changes\u003C/h3\u003E\n\u003Cp\u003EA 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 \u003Ccode\u003Edatabase is locked\u003C/code\u003E 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\u0027s not easy to put into words, but I find the fitting to be MUCH better.\u003C/p\u003E\n\u003Cp\u003EI 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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\u0027s very active in most of the reading and comic discords as well as being a core member in the CBL Reading Order group. He\u0027s 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.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Kavita\u002B 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.\u003C/li\u003E\n\u003Cli\u003EAdded: 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).\u003C/li\u003E\n\u003Cli\u003EAdded: 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 \u003Ccode\u003Ecalibre:series_index\u003C/code\u003E must be 0. (Feature Request: 3 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: OPDS-PS on PDF files is now possible. Kavita will convert to images.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a create link to create a new smart filter in case it\u0027s not clear for first time users exploring the software.\u003C/li\u003E\n\u003Cli\u003EAdded: Added first install version and date to the DB so admin\u0027s can look back at it. This data is available in System tab.\u003C/li\u003E\n\u003Cli\u003EAdded: Added new Random sort option to allow a stream like \u0027Top Unread in X\u0027 (Thanks @Fesaa)\u003C/li\u003E\n\u003Cli\u003EAdded: Added the following css variables --event-widget-activity-bg-color, --event-widget-update-bg-color, --event-widget-error-bg-color\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to manually override the width in the manga/webtoon reader when using Width scaling (Thanks @Marsimplodation) (Feature Request: 19 upvotes)\u003C/li\u003E\n\u003Cli\u003EAdded: Added bulk promote/demote/delete for reading lists to align with collections.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: On forgot password, even if email isn\u0027t setup or user doesn\u0027t have email setup, still allow the reset link to log.\u003C/li\u003E\n\u003Cli\u003EChanged: Reduced memory for adding a set of series to a collection.\u003C/li\u003E\n\u003Cli\u003EChanged: Scan button no longer exists on themes tab. Now, admin\u0027s can upload their custom css files via the UI.\u003C/li\u003E\n\u003Cli\u003EChanged: Admin\u0027s can no longer delete themes and force users with that theme active off.\u003C/li\u003E\n\u003Cli\u003EChanged: 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\u0027s original dimensions. Width will scale to viewport width even if it is beyond the image\u0027s original dimensions. Original will show the image at its intrinsic dimensions, no scaling is applied (Thanks @therobbiedavis)\u003C/li\u003E\n\u003Cli\u003EChanged: Enable WAL journal mode by default in all Kavita installs. Users can turn it off after the first run if needed.\u003C/li\u003E\n\u003Cli\u003EChanged: Show a warning on dirty email setting form to inform the user they need to save before testing settings.\u003C/li\u003E\n\u003Cli\u003EChanged: Ensure users know that Scrobbling providers will always keep the highest number from kavita.\u003C/li\u003E\n\u003Cli\u003EChanged: On \u0026lt; tablet viewports, reading list page should use order numbers rather than drag and drop, as there isn\u0027t enough real estate.\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: (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.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Applied some performance optimizations on Series OPDS route which should help speed up heavier Series.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Small optimization to image reader to make finding the next/prev page faster.\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Kavita\u002B scrobbling will now take AniList/Mal ids from External metadata (which is prefetched from Kavita\u002B for the external metadata) whenever possible. This can help with matching when there are no weblinks.\u003C/li\u003E\n\u003Cli\u003EChanged: Updates dependencies which includes a fix for nav items in epub toc that are more loose.\u003C/li\u003E\n\u003Cli\u003EChanged: Added a few full-wdith characters for normalization: \uFF0A\uFF01\uFF0B\u003C/li\u003E\n\u003Cli\u003EChanged: All smart filters page now uses the same design as the flow from Customize modal.\u003C/li\u003E\n\u003Cli\u003EChanged: Disable the first remove button for weblinks/exclude pattern component as it isn\u0027t removable\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Cleaned up some extra db calls that aren\u0027t needed in the OPDS apis.\u003C/li\u003E\n\u003Cli\u003EChanged: Reading Lists in both OPDS/UI now have the underlying issue\u0027s summary.\u003C/li\u003E\n\u003Cli\u003EChanged: Smart Filter OPDS feeds are now smart-filters/ instead of smart-filter/\u003C/li\u003E\n\u003Cli\u003EChanged: 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 \u003Ca href=\u0022https://github.com/Kareadita/Kavita/pull/2612\u0022\u003Einitial PR\u003C/a\u003E)\u003C/li\u003E\n\u003Cli\u003EChanged: For OPDS Reading Lists, when there is only one underlying file (common), send an acquisition link rather than a subsection. This allows the removal of one of the clicks for nearly all users.\u003C/li\u003E\n\u003Cli\u003EChanged: When a scan is enqueued or in progress, have the scanner aware and reschedule tasks mins into the future (except scan series which is 1 min)\u003C/li\u003E\n\u003Cli\u003EChanged: Added more logging into scanner service and ensure folder watching isn\u0027t over triggering the scan loop.\u003C/li\u003E\n\u003Cli\u003EChanged: Redesigned the loading indicators on the events widget to be cleaner and more expressive. Added the online user count to the nav bar like Plex has. Added an update icon like error/info to help users know when there are updates.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Converted series detail to control flow syntax to hopefully speed up change detection when there is a large amount of chapters.\u003C/li\u003E\n\u003Cli\u003EChanged: (Performance) Don\u0027t render all tabs by default on series detail. When switching tabs, it will destroy the DOM. This helps a lot with change detection on first load and later changes. First load on big series can take over 30 seconds to process. This means you will incur the long load when activating the tab with a lot of cards.\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked how jobs are queued and what messages we send to the UI. First, Scan tasks invoked via the UI will now send reschedule alerts when a scan is in progress and another is about to be kicked off. Scan Series now will retry 200 times instead of 3 given new rescheduling code.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where Hangfire could be accessible when it wasn\u0027t supposed to. (Thanks @theGEBIRGE)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Update Preferences API was taking SiteTheme instead of SiteThemeDto\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where multiple extractions of the same archive would start concurrently and create file system problems. This caused out of order reading in Mihon (Thanks @SamuelBMartins)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where one some screens images would stack instead of being side by side while using the double setting in the manga reader. (Thanks @therobbiedavis)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where the cover and last page would not be positioned correctly when using the double (Manga) setting in the manga reader. (Thanks @therobbiedavis)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed the issue with review cards provider and score extending outside it\u0027s card boundary. (Thanks @therobbiedavis)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue with double scrollbar when viewing saved smart filters (Thanks @therobbiedavis)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up the info icon cards on series detail to be better with responsiveness on some breakpoints.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where one-shot/specials in Scrobble History would show internal encoding\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with Image series where caching the images for reading could create a ton of folders with the same files inside.\u003C/li\u003E\n\u003Cli\u003EFixed: Word count analysis will now handle missing manifest items gracefully and report media errors around said file.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bcmap files not loading in the pdf reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when adding items to a reading list in bulk, sorting order of those chapters was not being respected.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug when a file of Chapter 0.2 first scanned in, Kavita would render the card as \u0027Chapter 0.2 - .2\u0027 then on another scan, Kavita would correctly render out \u0027Chapter 0.2\u0027.\u003C/li\u003E\n\u003Cli\u003EFixed: Loading indicator wasn\u0027t properly wired up in the search component\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case bug when performing a series scan, it wouldn\u0027t respect the exclude patterns of the library.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where specials in the manga reader weren\u0027t giving the special name\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where there could be no storyline chapters but just normal chapters and OPDS feed wouldn\u0027t render correctly.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where content type could fail, for example with avif. Now a failsafe is in place.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some OPDS feeds where author (writer) wasn\u0027t being sent.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a parser case where a file was marked as special but also had an issue number, the issue number would un-specialize it.\u003C/li\u003E\n\u003Cli\u003EFixed: Added a migration to nullify LowestFolderPaths that did not start with a library root. This was caused by an old bug likely that has hence been fixed, yet old records break the new scan loop.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where LowestSeriesFolder was not a full rooted path on linux\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where metadata apis could return genres/tags/people coming from libraries a user doesn\u0027t have access to.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with publication status when there is a set number of volumes but that series also has a special in it.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where OPDS urls could have api/opds//api/opds instead of just api/opds/\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up the code in the system tab where users may be on a revision of 0 but the Github release doesn\u0027t have a revision, causing the page to always show as nightly, even though it\u0027s a stable.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixes the pdf search button not displaying (Thanks @Zackaree)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed double scrollbar\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where continue from title was not taking library type into consideration nor was localized\u003C/li\u003E\n\u003Cli\u003EFixed: Cleaned up the event widget showing nothing going on here when it shouldn\u0027t. Fixed a missing localization.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where some events weren\u0027t sending their name and event widget wasn\u0027t clearing them after opening their detail modal.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where when mass deleting series from library detail page, the page could refresh a lot more than needed. Now, each call is debounced by 100ms.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where on mobile devices the continuous scroller wouldn\u0027t trigger when scrolling on webtoon mode (Thanks @Zackareee)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an annoying parse case for \u0027Giant Ojou-sama - Ch. 33.5 - Volume 04 Bonus Chapter\u0027 parsing as \u0027Giant Ojou-sama - Ch. 33.5\u0027 instead of \u0027Giant Ojou-sama\u0027\u003C/li\u003E\n\u003Cli\u003EFixed: Updated some rendering of tags to not be people tags, like teams\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where series-level imprint tags weren\u0027t showing\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.2 - Theme Overhaul, Smart Collections, \u0026 a lot of Scanner work",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-07-07T12:38:32Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Kavita\u002B 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 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).",
      "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 \u0060calibre:series_index\u0060 must be 0. (Feature Request: 3 upvotes)",
      "OPDS-PS on PDF files is now possible. Kavita will convert to images.",
      "Added a create link to create a new smart filter in case it\u0027s not clear for first time users exploring the software.",
      "Added first install version and date to the DB so admin\u0027s can look back at it. This data is available in System tab.",
      "Added new Random sort option to allow a stream like \u0027Top Unread in X\u0027 (Thanks @Fesaa)",
      "Added the following css variables --event-widget-activity-bg-color, --event-widget-update-bg-color, --event-widget-error-bg-color",
      "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 the ability to manually override the width in the manga/webtoon reader when using Width scaling (Thanks @Marsimplodation) (Feature Request: 19 upvotes)",
      "Added bulk promote/demote/delete for reading lists to align with collections."
    ],
    "Removed": [],
    "Changed": [
      "On forgot password, even if email isn\u0027t setup or user doesn\u0027t have email setup, still allow the reset link to log.",
      "Reduced memory for adding a set of series to a collection.",
      "Scan button no longer exists on themes tab. Now, admin\u0027s can upload their custom css files via the UI.",
      "Admin\u0027s can no longer delete themes and force users with that theme active off.",
      "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\u0027s original dimensions. Width will scale to viewport width even if it is beyond the image\u0027s original dimensions. Original will show the image at its intrinsic dimensions, no scaling is applied (Thanks @therobbiedavis)",
      "Enable WAL journal mode by default in all Kavita installs. Users can turn it off after the first run if needed.",
      "Show a warning on dirty email setting form to inform the user they need to save before testing settings.",
      "Ensure users know that Scrobbling providers will always keep the highest number from kavita.",
      "On \u003C tablet viewports, reading list page should use order numbers rather than drag and drop, as there isn\u0027t enough real estate.",
      "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.",
      "(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.",
      "(Performance) Applied some performance optimizations on Series OPDS route which should help speed up heavier Series.",
      "(Performance) Small optimization to image reader to make finding the next/prev page faster.",
      "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.",
      "(Kavita\u002B) Kavita\u002B scrobbling will now take AniList/Mal ids from External metadata (which is prefetched from Kavita\u002B for the external metadata) whenever possible. This can help with matching when there are no weblinks.",
      "Updates dependencies which includes a fix for nav items in epub toc that are more loose.",
      "Added a few full-wdith characters for normalization: \uFF0A\uFF01\uFF0B",
      "All smart filters page now uses the same design as the flow from Customize modal.",
      "Disable the first remove button for weblinks/exclude pattern component as it isn\u0027t removable",
      "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.",
      "(Performance) Cleaned up some extra db calls that aren\u0027t needed in the OPDS apis.",
      "Reading Lists in both OPDS/UI now have the underlying issue\u0027s summary.",
      "Smart Filter OPDS feeds are now smart-filters/{id} instead of smart-filter/{id}",
      "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](https://github.com/Kareadita/Kavita/pull/2612))",
      "For OPDS Reading Lists, when there is only one underlying file (common), send an acquisition link rather than a subsection. This allows the removal of one of the clicks for nearly all users.",
      "When a scan is enqueued or in progress, have the scanner aware and reschedule tasks mins into the future (except scan series which is 1 min)",
      "Added more logging into scanner service and ensure folder watching isn\u0027t over triggering the scan loop.",
      "Redesigned the loading indicators on the events widget to be cleaner and more expressive. Added the online user count to the nav bar like Plex has. Added an update icon like error/info to help users know when there are updates.",
      "(Performance) Converted series detail to control flow syntax to hopefully speed up change detection when there is a large amount of chapters.",
      "(Performance) Don\u0027t render all tabs by default on series detail. When switching tabs, it will destroy the DOM. This helps a lot with change detection on first load and later changes. First load on big series can take over 30 seconds to process. This means you will incur the long load when activating the tab with a lot of cards.",
      "Tweaked how jobs are queued and what messages we send to the UI. First, Scan tasks invoked via the UI will now send reschedule alerts when a scan is in progress and another is about to be kicked off. Scan Series now will retry 200 times instead of 3 given new rescheduling code."
    ],
    "Fixed": [
      "Fixed a bug where Hangfire could be accessible when it wasn\u0027t supposed to. (Thanks @theGEBIRGE)",
      "Fixed a bug where Update Preferences API was taking SiteTheme instead of SiteThemeDto",
      "Fixed a bug where multiple extractions of the same archive would start concurrently and create file system problems. This caused out of order reading in Mihon (Thanks @SamuelBMartins)",
      "Fixed an issue where one some screens images would stack instead of being side by side while using the double setting in the manga reader. (Thanks @therobbiedavis)",
      "Fixed an issue where the cover and last page would not be positioned correctly when using the double (Manga) setting in the manga reader. (Thanks @therobbiedavis)",
      "Fixed the issue with review cards provider and score extending outside it\u0027s card boundary. (Thanks @therobbiedavis)",
      "Fixed an issue with double scrollbar when viewing saved smart filters (Thanks @therobbiedavis)",
      "Fixed up the info icon cards on series detail to be better with responsiveness on some breakpoints.",
      "Fixed an issue where one-shot/specials in Scrobble History would show internal encoding",
      "Fixed a bug with Image series where caching the images for reading could create a ton of folders with the same files inside.",
      "Word count analysis will now handle missing manifest items gracefully and report media errors around said file.",
      "Fixed bcmap files not loading in the pdf reader",
      "Fixed a bug when adding items to a reading list in bulk, sorting order of those chapters was not being respected.",
      "Fixed a bug when a file of Chapter 0.2 first scanned in, Kavita would render the card as \u0027Chapter 0.2 - .2\u0027 then on another scan, Kavita would correctly render out \u0027Chapter 0.2\u0027.",
      "Loading indicator wasn\u0027t properly wired up in the search component",
      "Fixed an edge case bug when performing a series scan, it wouldn\u0027t respect the exclude patterns of the library.",
      "Fixed a case where specials in the manga reader weren\u0027t giving the special name",
      "Fixed a case where there could be no storyline chapters but just normal chapters and OPDS feed wouldn\u0027t render correctly.",
      "Fixed a case where content type could fail, for example with avif. Now a failsafe is in place.",
      "Fixed some OPDS feeds where author (writer) wasn\u0027t being sent.",
      "Fixed a parser case where a file was marked as special but also had an issue number, the issue number would un-specialize it.",
      "Added a migration to nullify LowestFolderPaths that did not start with a library root. This was caused by an old bug likely that has hence been fixed, yet old records break the new scan loop.",
      "Fixed a bug where LowestSeriesFolder was not a full rooted path on linux",
      "Fixed an issue where metadata apis could return genres/tags/people coming from libraries a user doesn\u0027t have access to.",
      "Fixed a bug with publication status when there is a set number of volumes but that series also has a special in it.",
      "Fixed a bug where OPDS urls could have api/opds//api/opds instead of just api/opds/",
      "Fixed up the code in the system tab where users may be on a revision of 0 but the Github release doesn\u0027t have a revision, causing the page to always show as nightly, even though it\u0027s a stable.",
      "Fixes the pdf search button not displaying (Thanks @Zackaree)",
      "Fixed double scrollbar",
      "Fixed a bug where continue from title was not taking library type into consideration nor was localized",
      "Cleaned up the event widget showing nothing going on here when it shouldn\u0027t. Fixed a missing localization.",
      "Fixed a bug where some events weren\u0027t sending their name and event widget wasn\u0027t clearing them after opening their detail modal.",
      "Fixed a case where when mass deleting series from library detail page, the page could refresh a lot more than needed. Now, each call is debounced by 100ms.",
      "Fixed a bug where on mobile devices the continuous scroller wouldn\u0027t trigger when scrolling on webtoon mode (Thanks @Zackareee)",
      "Fixed an annoying parse case for \u0027Giant Ojou-sama - Ch. 33.5 - Volume 04 Bonus Chapter\u0027 parsing as \u0027Giant Ojou-sama - Ch. 33.5\u0027 instead of \u0027Giant Ojou-sama\u0027",
      "Updated some rendering of tags to not be people tags, like teams",
      "Fixed a bug where series-level imprint tags weren\u0027t showing"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EA 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\u0027s get into it.\u003C/p\u003E\n\u003Ch3\u003EBuilt-in Theme Explorer\u003C/h3\u003E\n\u003Cp\u003EOne 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\u0027s 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\u0027t hear much from nightly users thinking it\u0027s needed. If you feel otherwise, raise a discussion. If you don\u0027t 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).\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/Kareadita/Kavita/assets/735851/b40e1284-8c30-4f3b-968c-73227abb65f3\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch3\u003ESmart Collections for Kavita\u002B\u003C/h3\u003E\n\u003Cp\u003EThis is another one I\u0027ve 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.\u003C/p\u003E\n\u003Ch3\u003EScanner Changes\u003C/h3\u003E\n\u003Cp\u003EI\u0027ve 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\u0027s 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\u0027t 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\u0027t finding good results after this update, please do reach out.\u003C/p\u003E\n\u003Ch3\u003EMisc Changes\u003C/h3\u003E\n\u003Cp\u003EA 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 \u003Ccode\u003Edatabase is locked\u003C/code\u003E 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\u0027s not easy to put into words, but I find the fitting to be MUCH better.\u003C/p\u003E\n\u003Cp\u003EI 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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\u0027s very active in most of the reading and comic discords as well as being a core member in the CBL Reading Order group. He\u0027s 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.1",
    "UpdateBody": "\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003EI would also like to remind users that you can upvote and comment (or create your own) feature requests on out \u003Ca href=\u0022https://github.com/Kareadita/Kavita/discussions\u0022\u003EGithub Discussions\u003C/a\u003E page.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: 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)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Changed how often the 1 version out of date check occurs to be every 4-6 hours instead of 1-2 hours.\u003C/li\u003E\n\u003Cli\u003EChanged: Allow jumpbar to function on pages as long as there is no custom sort\u003C/li\u003E\n\u003Cli\u003EChanged: When refusing OPDS download due to lack of role, use 403 Forbid.\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t show any of the internal information on publication status tooltip when the total items is set to 0 (or unset)\u003C/li\u003E\n\u003Cli\u003EChanged: Updated Comic Vine library when falling back to taking Series name from directory because no Volume tag exists, don\u0027t clean specials from the directory name.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where some series detail pages have a ton of extra space\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where series folders with nested specials would get a bad LowestSeriesFolder meaning series scans wouldn\u0027t do anything important.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with default ordering failing when a series has a special\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the very out of date modal wouldn\u0027t have the correct number of version out of date.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where stacked image chapters wouldn\u0027t move all the files over to cache\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an oversight where brightness control in manga reader wasn\u0027t applying to webtoon reader\u003C/li\u003E\n\u003Cli\u003EFixed: Drastically sped up switching between card/list mode on series detail for large series\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed Continue -100000 when a series is read on series detail page\u003C/li\u003E\n\u003Cli\u003EFixed: When parsing from fallback libraries, use comic parsing only for Comic/Comic Vine library types.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where weblinks remove would not work well. Now it works more like you would assume.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where active tab wouldn\u0027t default to volumes on comic libraries when there were no issues or specials.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where progress bar on kavita\u002B metadata progress wasn\u0027t showing red.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where on Chrome bootstrap sliders were blue and not the primary color.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where chapters could duplicate due to some regions using \u0027,\u0027 as a decimal separator. Now in Kavita, whenever we stringify any numbers, it will always choose English\u0027s way as that is how it was designed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where non-English locales wouldn\u0027t parse floats correctly for x.x chapters.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an exception being thrown on startup for fresh users\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EDeprecated series/chapter-metadata API in favor of just including the metadata with all chapter entities.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.1 - A bit more than a Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.1",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-04-22T20:20:48Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "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)"
    ],
    "Removed": [],
    "Changed": [
      "Changed how often the 1 version out of date check occurs to be every 4-6 hours instead of 1-2 hours.",
      "Allow jumpbar to function on pages as long as there is no custom sort",
      "When refusing OPDS download due to lack of role, use 403 Forbid.",
      "Don\u0027t show any of the internal information on publication status tooltip when the total items is set to 0 (or unset)",
      "Updated Comic Vine library when falling back to taking Series name from directory because no Volume tag exists, don\u0027t clean specials from the directory name."
    ],
    "Fixed": [
      "Fixed a bug where some series detail pages have a ton of extra space",
      "Fixed a bug where series folders with nested specials would get a bad LowestSeriesFolder meaning series scans wouldn\u0027t do anything important.",
      "Fixed a bug with default ordering failing when a series has a special",
      "Fixed a bug where the very out of date modal wouldn\u0027t have the correct number of version out of date.",
      "Fixed a bug where stacked image chapters wouldn\u0027t move all the files over to cache",
      "Fixed an oversight where brightness control in manga reader wasn\u0027t applying to webtoon reader",
      "Drastically sped up switching between card/list mode on series detail for large series",
      "Fixed Continue -100000 when a series is read on series detail page",
      "When parsing from fallback libraries, use comic parsing only for Comic/Comic Vine library types.",
      "Fixed a bug where weblinks remove would not work well. Now it works more like you would assume.",
      "Fixed a bug where active tab wouldn\u0027t default to volumes on comic libraries when there were no issues or specials.",
      "Fixed a bug where progress bar on kavita\u002B metadata progress wasn\u0027t showing red.",
      "Fixed a bug where on Chrome bootstrap sliders were blue and not the primary color.",
      "Fixed a bug where chapters could duplicate due to some regions using \u0027,\u0027 as a decimal separator. Now in Kavita, whenever we stringify any numbers, it will always choose English\u0027s way as that is how it was designed.",
      "Fixed a case where non-English locales wouldn\u0027t parse floats correctly for x.x chapters.",
      "Fixed an exception being thrown on startup for fresh users"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [
      "Deprecated series/chapter-metadata API in favor of just including the metadata with all chapter entities."
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003Cp\u003EI would also like to remind users that you can upvote and comment (or create your own) feature requests on out \u003Ca href=\u0022https://github.com/Kareadita/Kavita/discussions\u0022\u003EGithub Discussions\u003C/a\u003E page.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.8.0",
    "UpdateBody": "\u003Cp\u003EHave you ever thought to yourself that you\u0027d like to switch the foundation of your house from slab to pier and beam? Well, that\u0027s essentially what I\u0027ve 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.\u003C/p\u003E\n\u003Cp\u003EIn 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\u0027t 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).\u003C/p\u003E\n\u003Cp\u003ENow, let\u0027s get into the meat and potatoes. What is new in this release?\u003C/p\u003E\n\u003Ch3\u003EComic Overhaul\u003C/h3\u003E\n\u003Cp\u003EIn 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 \u0027Comic\u0027 library and the new \u0027Comic Vine\u0027 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.\u003C/p\u003E\n\u003Cp\u003EBut that\u0027s not all. Comics are unique; they can have Issue \u03A9, which should be between Issues 8 and 9, or how about issue 18.HU? These are unique situations that didn\u0027t particularly go well with Kavita\u0027s 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.\u003C/p\u003E\n\u003Cp\u003EFrom 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).\u003C/p\u003E\n\u003Ch3\u003ECollection Overhaul\u003C/h3\u003E\n\u003Cp\u003EWhile we are on the topic of reworking major code, let\u0027s 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\u0027t really needed now, it will be with a future update.\u003C/p\u003E\n\u003Cp\u003ESo, 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.\u003C/p\u003E\n\u003Ch3\u003EMisc\u003C/h3\u003E\n\u003Cp\u003EFinally, 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\u0027s right, I finally got around to it and added PDF settings, along with also adding tap-to-paginate to the PDF reader.\u003C/p\u003E\n\u003Cp\u003EAnother 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\u0027s really easy to build your own, so if you have an interest, I highly encourage you to give it a go.\u003C/p\u003E\n\u003Cp\u003EAnother thing you might have noticed is Kavita\u002B enhancements. Quite a few small things were updated, but the most important is that Kavita\u002B 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\u002B, 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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.\u003C/p\u003E\n\u003Ch3\u003EImportant\u003C/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cp\u003E\u003Cstrong\u003EImportant!\u003C/strong\u003E 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EKavita\u002B users: As mentioned last release, you are expected to stay up to date - 2 releases. Old Kavita\u002B APIs will be shutdown shortly after v0.8. You can update to v0.7.14 as the minimum.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: 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\u002B metadata/scrobbling. The regular book library no longer is Kavita\u002B eligible.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a label on Library settings modal to help admins know which libraries are eligible for Kavita\u002B scrobbling/metadata pull.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Implemented a background prefetch task that will slowly refresh series from Kavita\u002B (reviews, recs, ratings).\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Kavita will now prefetch data from Kavita\u002B 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.\u003C/li\u003E\n\u003Cli\u003EAdded: 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\u0027t purely numerical. SortOrder will handle cases like 19, 19.HU, 19.BD, 20 without any user intervention.\u003C/li\u003E\n\u003Cli\u003EAdded: You can now have Chapter 0, -1, etc.\u003C/li\u003E\n\u003Cli\u003EAdded: This fully supports chapters with non-numeric issue numbers, like Alpha, 19.HU, etc.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: New Series Relationship of Annual.\u003C/li\u003E\n\u003Cli\u003EAdded: Imprints are now read from ComicInfo, will display on the UI and can be filtered.\u003C/li\u003E\n\u003Cli\u003EAdded: (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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added support for Locations and Teams, including the filtering for them\u003C/li\u003E\n\u003Cli\u003EAdded: There is a one-time progress export to config/progress_export.csv in case of data loss.\u003C/li\u003E\n\u003Cli\u003EAdded: Added Sort order to be visible on chapter detail drawer.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added Mal Username/ClientId integration into Kavita for upcoming Kavita\u002B integrations.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to view (your) or all users (if admin) progress for that given chapter via the chapter detail drawer.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added a pie chart to Server Stats that shows how many eligible series have metadata fetched from Kavita\u002B. This pairs well with the background job that fills out your server over time. (This will be expanded upon in a future update)\u003C/li\u003E\n\u003Cli\u003EAdded: (Parser) Added parser support for Thai language volume and chapters (Thanks @gozilla-paradise)\u003C/li\u003E\n\u003Cli\u003EAdded: Finally added PDF Reader Settings\u003C/li\u003E\n\u003Cli\u003EAdded: (PDF Reader) Added tap to paginate to the pdf reader.\u003C/li\u003E\n\u003Cli\u003EAdded: Collections can now be created by non-admins\u003C/li\u003E\n\u003Cli\u003EAdded: Collections can now be promoted by non-admins (given they have the Promote role).\u003C/li\u003E\n\u003Cli\u003EAdded: Added bulk flows for Promotion and Deletion. If you select cards that are not owned by you, nothing will happen to those cards.\u003C/li\u003E\n\u003Cli\u003EAdded: OPDS feeds will now send description information when applicable for underlying volume/chapters.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Allow users to send files to their devices without having host name set for Email settings\u003C/li\u003E\n\u003Cli\u003EChanged: (Theme) side-nav-color is now side-nav-text-color\u003C/li\u003E\n\u003Cli\u003EChanged: (Theme) Added carousel-btn-color (for carousel buttons) and badge-text-color (for badge text)\u003C/li\u003E\n\u003Cli\u003EChanged: When iOS users are trying to download files greater than 200MB, they will be given an additional warning that iOS may fail to download due to arbitrary limits each device has.\u003C/li\u003E\n\u003Cli\u003EChanged: Specials will now order by SP marker numbers, else fallback to natural sort\u003C/li\u003E\n\u003Cli\u003EChanged: Loose Leaf volumes are now encoded with the number -100000 instead of 0. This now means users can have a Volume 0 without issue.\u003C/li\u003E\n\u003Cli\u003EChanged: Search will now search against a chapter range and will also fallback if there is no title (comicinfo title) to the range.\u003C/li\u003E\n\u003Cli\u003EChanged: Clean up a log message when no files found, to ensure the admin checks the Library settings as well.\u003C/li\u003E\n\u003Cli\u003EChanged: Image Library is now more aligned to reported usage\u003C/li\u003E\n\u003Cli\u003EChanged: Changed chapter title format to Chapter  -  (assuming title exists), else Chapter . For Books, nothing has changed.\u003C/li\u003E\n\u003Cli\u003EChanged: Series Detail metadata area will collapse automatically on desktop if there are too many tags.\u003C/li\u003E\n\u003Cli\u003EChanged: Comic/Comic Vine libraries will never show Storyline or Volumes (unless there are no issues/specials or multiple volumes exist)\u003C/li\u003E\n\u003Cli\u003EChanged: Minor changes to how PDFs parse to make them a tad more smart. Nothing major, will do the overhaul later.\u003C/li\u003E\n\u003Cli\u003EChanged: Trim strings from ComicInfo more aggressively to prevent weird parsing for things like Number.\u003C/li\u003E\n\u003Cli\u003EChanged: Optimized a lot of the scanner and cleaned up the code deeply.\u003C/li\u003E\n\u003Cli\u003EChanged: (Parser) Adjusted the special parsing for Annuals to account for \u0027Series Annual \\d\u0027\u003C/li\u003E\n\u003Cli\u003EChanged: Dependency and security updates\u003C/li\u003E\n\u003Cli\u003EChanged: Added a flag to the CBL import to use Comic Vine parsing for CBL Import (and set to true as all CBLs to my knowledge are using this new library).\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita now handles non-float numbers from CBL Imports (including special cases for comics)\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) During library setting modal, changing type will now automatically change the Allow Scrobbling control, if the underlying library type is not Kavita\u002B applicable.\u003C/li\u003E\n\u003Cli\u003EChanged: Normalize all paths during the scanner to ensure everything is always the same.\u003C/li\u003E\n\u003Cli\u003EChanged: Added the csv files to the backup as those are used in manual migrations and likely good to have.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) When a rate limit error comes in after the pre-check, retry after the wait window instead of waiting for the next scrobble window.\u003C/li\u003E\n\u003Cli\u003EChanged: Some epubs have incorrect metadata where the series is parsing with a volume. To help users, Kavita will override this on Light Novel library type to merge into the correct series.\u003C/li\u003E\n\u003Cli\u003EChanged: Added a bit of a loader when deleting a lot of series with bulk actions.\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked some wording about the changelog component to better indicate to nightly users that are not on the latest stable-based nightlies.\u003C/li\u003E\n\u003Cli\u003EChanged: When using Force Scan on library settings, automatically close the modal.\u003C/li\u003E\n\u003Cli\u003EChanged: (Scanner) Change pdf parser so if it\u0027s a library type book, we override chapters as chapter number is RARELY used and mainly results in false positives.\u003C/li\u003E\n\u003Cli\u003EChanged: (Scanner) Fixed up the parsing so that book parser will coerced when the series in the metadata is wrong but there is a volume tag in said series, it will override.\u003C/li\u003E\n\u003Cli\u003EChanged: Added a fallback to the series detail page to handle bad pdf parses (until the upcoming pdf parser rewrite comes) to avoid no cards showing.\u003C/li\u003E\n\u003Cli\u003EChanged: Turned down the amount of debug logging from the library watcher and moved them to trace.\u003C/li\u003E\n\u003Cli\u003EChanged: Added some code so that while the device is offline, the UI wont try to refresh JWT and likewise, when turned back online, a JWT Refresh will be called to hopefully extend the session.\u003C/li\u003E\n\u003Cli\u003EChanged: Collections will show who created them under the card. For the time being, actionables (...) will show for all cards. This system will be getting an overhaul in the future. You still wont be able to interact with another user\u0027s collections.\u003C/li\u003E\n\u003Cli\u003EChanged: Changed some of the format icons to some better looking icons\u003C/li\u003E\n\u003Cli\u003EChanged: Added a filter in Edit Collections \u0026gt; Series tab to quickly find series to remove in large collections\u003C/li\u003E\n\u003Cli\u003EChanged: Updated all email templates to have rel noopener noreferrer\u003C/li\u003E\n\u003Cli\u003EChanged: When checking Kavita\u002B license, show a loading spinner first.\u003C/li\u003E\n\u003Cli\u003EChanged: Reduced amount of Kavita\u002B license checks\u003C/li\u003E\n\u003Cli\u003EChanged: Send to Device now works without Hostname set.\u003C/li\u003E\n\u003Cli\u003EChanged: Switched all links over to the new wiki\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a security bug from .NET (CVE-2024-21409)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue around being able to delete series with external recommendations.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up the delete series flow so that the boolean returned is used in the UI to pop the correct toaster.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an oversight where emailers without authentication wouldn\u0027t work\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with looping around to volume 1 at the end of a reading session when it shouldn\u0027t\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a case where an exception was thrown, scanner wasn\u0027t existing and instead invoked metadata service with bad entities\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some bad styling on Chapter metadata (drawer)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bad localization on edit reading list modal.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed another check around rescheduling Kavita\u002B tasks once a valid check came through. There was a lack of a checking mechanism and Kavita was doing more than needed.\u003C/li\u003E\n\u003Cli\u003EFixed: I believe the Foreign Key constraint issue is solved once and for all\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a rendering bug on CBL validation where the UI reports success but also a warning message appears\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Translators couldn\u0027t be updated in Edit Series Modal.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a manual migration that had to run before the db was migrated and it didn\u0027t check if the db even existed yet.\u003C/li\u003E\n\u003Cli\u003EFixed: Scanner was clearing temp directory when it shouldn\u0027t have been, which could replace db migration backup.\u003C/li\u003E\n\u003Cli\u003EFixed: Added an argument exception when reording a list has a number that\u0027s less than 0, throw. This usually happens with bad metadata in ComicInfo\u0027s. Perhaps when there is a -1 chapter, it\u0027s using number instead of order.\u003C/li\u003E\n\u003Cli\u003EFixed: Stats and Tasks were missing localization\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where the new downloading code would unzip epubs on volume/series download\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where opening library settings from ... on library detail page wouldn\u0027t have library type.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the UI wasn\u0027t properly sending the custom cron data to the backend.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where weblink\u0027s in a card detail drawer wasn\u0027t rendering the favicon\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where progress bar css variable was being overridden by bootstrap\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where selecting bulk mode on in customize side nav wouldn\u0027t allow you to ever enable order numbers again.\u003C/li\u003E\n\u003Cli\u003EFixed: (Parser) Fixed a parsing case for \u0027Cynthia The Mission - c000 - c006 (v06)\u0027\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where uploading a custom cover wasn\u0027t respecting Cover Size setting (Thanks Elry)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where an epub with an empty link element could break Kavita\u0027s epub reader (Thanks @YodaDaCoda)\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed External reviews not showing the Go to Review due to an API change.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where applying a custom theme was not working immediately or consistently\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bad messaging around test email failing\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue when changing email address, after validating, it wouldn\u0027t mark as confirmed.\u003C/li\u003E\n\u003Cli\u003EFixed: Panels wasn\u0027t properly showing images on Series due to a bug on their app (Thanks Dani)\u003C/li\u003E\n\u003Cli\u003EFixed: Panels wasn\u0027t properly syncing read status with Kavita (Thanks Dani)\u003C/li\u003E\n\u003Cli\u003EFixed: Avoid possible username enumeration in login or reset-password endpoints due to message translations (Thanks @YodaDaCoda)\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure we cannot create multiple collections in bulk flow if we use ENTER Key\u003C/li\u003E\n\u003Cli\u003EFixed: When clicking Gmail/Outlook buttons on email form, the form wasn\u0027t allowing saving even though fields changed.\u003C/li\u003E\n\u003Cli\u003EFixed: (Panels) Panels has fixed a few bugs with Kavita. v3.4.1 (beta) and above should be used\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ERemoved\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ERemoved: Removed .kavitaignore file support as Library Exclude patterns are much easier to use and flexible enough.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003ENOTE\u003C/strong\u003E CDisplayEx, Panels, Tachiyomi, and Komf have all been tested with v0.8. Aidoku and Kavya (Paperback) are in progress.\u003C/li\u003E\n\u003Cli\u003EVolumeDto reverted the float on Number field back to int\u003C/li\u003E\n\u003Cli\u003EChapterDto Range will be the chapter number. If a special, will be the special name. MinNumber can always be checked for the special encoding\u003C/li\u003E\n\u003Cli\u003EEncoding: Special (100000), Loose Leaf Volume (-100000).\u003C/li\u003E\n\u003Cli\u003Estats/user/reading-history has a dto change, making ChapterNumber a float instead of a string.\u003C/li\u003E\n\u003Cli\u003ETachiyomi routes now use their own Dto to avoid having to break apis there.\u003C/li\u003E\n\u003Cli\u003EAdded SortOrder on the ChapterDto. This is a float that can be used to order the chapters within the Volume. By default, all APIs will already order by this.\u003C/li\u003E\n\u003Cli\u003ESeriesMetadataDto (for updating series metadata) now has Teams, Locations, Imprints and their lock fields: teamLocked, locationLocked, imprintLocked.\u003C/li\u003E\n\u003Cli\u003EChanged library/ -\u0026gt; library/libraries for getting all libraries\u003C/li\u003E\n\u003Cli\u003EAll Collection apis were updated, however most of the underlying DTO is the same.\u003C/li\u003E\n\u003Cli\u003ESeriesMetadata DTO no longer has Collections or needs them for the POST (as they are no longer tied with this entity)\u003C/li\u003E\n\u003Cli\u003Eseries/ (deprecated) no longer handles filtering for collections. Use v2 api.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.8.0 - Comic \u0026 Collection Overhaul and PDF Settings Finally!",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.8.0",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-04-12T22:26:31Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "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\u002B metadata/scrobbling. The regular book library no longer is Kavita\u002B eligible.",
      "Added a label on Library settings modal to help admins know which libraries are eligible for Kavita\u002B scrobbling/metadata pull.",
      "(Kavita\u002B) Implemented a background prefetch task that will slowly refresh series from Kavita\u002B (reviews, recs, ratings).",
      "(Kavita\u002B) Kavita will now prefetch data from Kavita\u002B 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.",
      "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\u0027t purely numerical. SortOrder will handle cases like 19, 19.HU, 19.BD, 20 without any user intervention.",
      "You can now have Chapter 0, -1, etc.",
      "This fully supports chapters with non-numeric issue numbers, like Alpha, 19.HU, etc.",
      "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.",
      "New Series Relationship of Annual.",
      "Imprints are now read from ComicInfo, will display on the UI and can be filtered.",
      "(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 support for Locations and Teams, including the filtering for them",
      "There is a one-time progress export to config/progress_export.csv in case of data loss.",
      "Added Sort order to be visible on chapter detail drawer.",
      "(Kavita\u002B) Added Mal Username/ClientId integration into Kavita for upcoming Kavita\u002B integrations.",
      "Added the ability to view (your) or all users (if admin) progress for that given chapter via the chapter detail drawer.",
      "(Kavita\u002B) Added a pie chart to Server Stats that shows how many eligible series have metadata fetched from Kavita\u002B. This pairs well with the background job that fills out your server over time. (This will be expanded upon in a future update)",
      "(Parser) Added parser support for Thai language volume and chapters (Thanks @gozilla-paradise)",
      "Finally added PDF Reader Settings",
      "(PDF Reader) Added tap to paginate to the pdf reader.",
      "Collections can now be created by non-admins",
      "Collections can now be promoted by non-admins (given they have the Promote role).",
      "Added bulk flows for Promotion and Deletion. If you select cards that are not owned by you, nothing will happen to those cards.",
      "OPDS feeds will now send description information when applicable for underlying volume/chapters."
    ],
    "Removed": [
      "Removed .kavitaignore file support as Library Exclude patterns are much easier to use and flexible enough."
    ],
    "Changed": [
      "(Kavita\u002B) 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.",
      "Allow users to send files to their devices without having host name set for Email settings",
      "(Theme) side-nav-color is now side-nav-text-color",
      "(Theme) Added carousel-btn-color (for carousel buttons) and badge-text-color (for badge text)",
      "When iOS users are trying to download files greater than 200MB, they will be given an additional warning that iOS may fail to download due to arbitrary limits each device has.",
      "Specials will now order by SP marker numbers, else fallback to natural sort",
      "Loose Leaf volumes are now encoded with the number -100000 instead of 0. This now means users can have a Volume 0 without issue.",
      "Search will now search against a chapter range and will also fallback if there is no title (comicinfo title) to the range.",
      "Clean up a log message when no files found, to ensure the admin checks the Library settings as well.",
      "Image Library is now more aligned to reported usage",
      "Changed chapter title format to Chapter {number} - {title} (assuming title exists), else Chapter {number}. For Books, nothing has changed.",
      "Series Detail metadata area will collapse automatically on desktop if there are too many tags.",
      "Comic/Comic Vine libraries will never show Storyline or Volumes (unless there are no issues/specials or multiple volumes exist)",
      "Minor changes to how PDFs parse to make them a tad more smart. Nothing major, will do the overhaul later.",
      "Trim strings from ComicInfo more aggressively to prevent weird parsing for things like Number.",
      "Optimized a lot of the scanner and cleaned up the code deeply.",
      "(Parser) Adjusted the special parsing for Annuals to account for \u0027Series Annual \\d\u0027",
      "Dependency and security updates",
      "Added a flag to the CBL import to use Comic Vine parsing for CBL Import (and set to true as all CBLs to my knowledge are using this new library).",
      "Kavita now handles non-float numbers from CBL Imports (including special cases for comics)",
      "(Kavita\u002B) During library setting modal, changing type will now automatically change the Allow Scrobbling control, if the underlying library type is not Kavita\u002B applicable.",
      "Normalize all paths during the scanner to ensure everything is always the same.",
      "Added the csv files to the backup as those are used in manual migrations and likely good to have.",
      "(Kavita\u002B) When a rate limit error comes in after the pre-check, retry after the wait window instead of waiting for the next scrobble window.",
      "Some epubs have incorrect metadata where the series is parsing with a volume. To help users, Kavita will override this on Light Novel library type to merge into the correct series.",
      "Added a bit of a loader when deleting a lot of series with bulk actions.",
      "Tweaked some wording about the changelog component to better indicate to nightly users that are not on the latest stable-based nightlies.",
      "When using Force Scan on library settings, automatically close the modal.",
      "(Scanner) Change pdf parser so if it\u0027s a library type book, we override chapters as chapter number is RARELY used and mainly results in false positives.",
      "(Scanner) Fixed up the parsing so that book parser will coerced when the series in the metadata is wrong but there is a volume tag in said series, it will override.",
      "Added a fallback to the series detail page to handle bad pdf parses (until the upcoming pdf parser rewrite comes) to avoid no cards showing.",
      "Turned down the amount of debug logging from the library watcher and moved them to trace.",
      "Added some code so that while the device is offline, the UI wont try to refresh JWT and likewise, when turned back online, a JWT Refresh will be called to hopefully extend the session.",
      "Collections will show who created them under the card. For the time being, actionables (...) will show for all cards. This system will be getting an overhaul in the future. You still wont be able to interact with another user\u0027s collections.",
      "Changed some of the format icons to some better looking icons",
      "Added a filter in Edit Collections \u003E Series tab to quickly find series to remove in large collections",
      "Updated all email templates to have rel noopener noreferrer",
      "When checking Kavita\u002B license, show a loading spinner first.",
      "Reduced amount of Kavita\u002B license checks",
      "Send to Device now works without Hostname set.",
      "Switched all links over to the new wiki"
    ],
    "Fixed": [
      "Fixed a security bug from .NET (CVE-2024-21409)",
      "Fixed an issue around being able to delete series with external recommendations.",
      "Fixed up the delete series flow so that the boolean returned is used in the UI to pop the correct toaster.",
      "Fixed an oversight where emailers without authentication wouldn\u0027t work",
      "Fixed a bug with looping around to volume 1 at the end of a reading session when it shouldn\u0027t",
      "Fixed a case where an exception was thrown, scanner wasn\u0027t existing and instead invoked metadata service with bad entities",
      "Fixed some bad styling on Chapter metadata (drawer)",
      "Fixed a bad localization on edit reading list modal.",
      "Fixed another check around rescheduling Kavita\u002B tasks once a valid check came through. There was a lack of a checking mechanism and Kavita was doing more than needed.",
      "I believe the Foreign Key constraint issue is solved once and for all",
      "Fixed a rendering bug on CBL validation where the UI reports success but also a warning message appears",
      "Fixed a bug where Translators couldn\u0027t be updated in Edit Series Modal.",
      "Fixed a manual migration that had to run before the db was migrated and it didn\u0027t check if the db even existed yet.",
      "Scanner was clearing temp directory when it shouldn\u0027t have been, which could replace db migration backup.",
      "Added an argument exception when reording a list has a number that\u0027s less than 0, throw. This usually happens with bad metadata in ComicInfo\u0027s. Perhaps when there is a -1 chapter, it\u0027s using number instead of order.",
      "Stats and Tasks were missing localization",
      "Fixed an issue where the new downloading code would unzip epubs on volume/series download",
      "Fixed a bug where opening library settings from ... on library detail page wouldn\u0027t have library type.",
      "Fixed a bug where the UI wasn\u0027t properly sending the custom cron data to the backend.",
      "Fixed a bug where weblink\u0027s in a card detail drawer wasn\u0027t rendering the favicon",
      "Fixed an issue where progress bar css variable was being overridden by bootstrap",
      "Fixed a bug where selecting bulk mode on in customize side nav wouldn\u0027t allow you to ever enable order numbers again.",
      "(Parser) Fixed a parsing case for \u0027Cynthia The Mission - c000 - c006 (v06)\u0027",
      "Fixed an issue where uploading a custom cover wasn\u0027t respecting Cover Size setting (Thanks Elry)",
      "Fixed a bug where an epub with an empty link element could break Kavita\u0027s epub reader (Thanks @YodaDaCoda)",
      "(Kavita\u002B) Fixed External reviews not showing the Go to Review due to an API change.",
      "Fixed an issue where applying a custom theme was not working immediately or consistently",
      "Fixed bad messaging around test email failing",
      "Fixed an issue when changing email address, after validating, it wouldn\u0027t mark as confirmed.",
      "Panels wasn\u0027t properly showing images on Series due to a bug on their app (Thanks Dani)",
      "Panels wasn\u0027t properly syncing read status with Kavita (Thanks Dani)",
      "Avoid possible username enumeration in login or reset-password endpoints due to message translations (Thanks @YodaDaCoda)",
      "Ensure we cannot create multiple collections in bulk flow if we use ENTER Key",
      "When clicking Gmail/Outlook buttons on email form, the form wasn\u0027t allowing saving even though fields changed.",
      "(Panels) Panels has fixed a few bugs with Kavita. v3.4.1 (beta) and above should be used"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [
      "**NOTE** CDisplayEx, Panels, Tachiyomi, and Komf have all been tested with v0.8. Aidoku and Kavya (Paperback) are in progress.",
      "VolumeDto reverted the float on Number field back to int",
      "ChapterDto Range will be the chapter number. If a special, will be the special name. MinNumber can always be checked for the special encoding",
      "Special (100000), Loose Leaf Volume (-100000).",
      "stats/user/reading-history has a dto change, making ChapterNumber a float instead of a string.",
      "Tachiyomi routes now use their own Dto to avoid having to break apis there.",
      "Added SortOrder on the ChapterDto. This is a float that can be used to order the chapters within the Volume. By default, all APIs will already order by this.",
      "teamLocked, locationLocked, imprintLocked.",
      "Changed library/ -\u003E library/libraries for getting all libraries",
      "All Collection apis were updated, however most of the underlying DTO is the same.",
      "SeriesMetadata DTO no longer has Collections or needs them for the POST (as they are no longer tied with this entity)",
      "series/ (deprecated) no longer handles filtering for collections. Use v2 api."
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EHave you ever thought to yourself that you\u0027d like to switch the foundation of your house from slab to pier and beam? Well, that\u0027s essentially what I\u0027ve 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.\u003C/p\u003E\n\u003Cp\u003EIn 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\u0027t 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).\u003C/p\u003E\n\u003Cp\u003ENow, let\u0027s get into the meat and potatoes. What is new in this release?\u003C/p\u003E\n\u003Ch3\u003EComic Overhaul\u003C/h3\u003E\n\u003Cp\u003EIn 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 \u0027Comic\u0027 library and the new \u0027Comic Vine\u0027 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.\u003C/p\u003E\n\u003Cp\u003EBut that\u0027s not all. Comics are unique; they can have Issue \u03A9, which should be between Issues 8 and 9, or how about issue 18.HU? These are unique situations that didn\u0027t particularly go well with Kavita\u0027s 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.\u003C/p\u003E\n\u003Cp\u003EFrom 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).\u003C/p\u003E\n\u003Ch3\u003ECollection Overhaul\u003C/h3\u003E\n\u003Cp\u003EWhile we are on the topic of reworking major code, let\u0027s 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\u0027t really needed now, it will be with a future update.\u003C/p\u003E\n\u003Cp\u003ESo, 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.\u003C/p\u003E\n\u003Ch3\u003EMisc\u003C/h3\u003E\n\u003Cp\u003EFinally, 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\u0027s right, I finally got around to it and added PDF settings, along with also adding tap-to-paginate to the PDF reader.\u003C/p\u003E\n\u003Cp\u003EAnother 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\u0027s really easy to build your own, so if you have an interest, I highly encourage you to give it a go.\u003C/p\u003E\n\u003Cp\u003EAnother thing you might have noticed is Kavita\u002B enhancements. Quite a few small things were updated, but the most important is that Kavita\u002B 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\u002B, 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.\u003C/p\u003E\n\u003Cp\u003ELastly, 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.\u003C/p\u003E\n\u003Ch3\u003EImportant\u003C/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cp\u003E\u003Cstrong\u003EImportant!\u003C/strong\u003E 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EKavita\u002B users: As mentioned last release, you are expected to stay up to date - 2 releases. Old Kavita\u002B APIs will be shutdown shortly after v0.8. You can update to v0.7.14 as the minimum.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003Cli\u003E\u003Cp\u003EThis 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.\u003C/p\u003E\n\u003C/li\u003E\n\u003C/ul\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.14",
    "UpdateBody": "\u003Cp\u003EA 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\u002B 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.\u003C/p\u003E\n\u003Cp\u003EAnother 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.\u003C/p\u003E\n\u003Cp\u003ELastly, while it looks so small, it was over 3K lines of code, but volume numbers are now float-based, meaning if a volume is \u0026lt; 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\u002B will get Volume 2 when you read an Omnibus vs Volume 1 previously.\u003C/p\u003E\n\u003Cp\u003EThat 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.\u003C/p\u003E\n\u003Ch3\u003ENew Wiki\u003C/h3\u003E\n\u003Cp\u003ELastly 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\u0027t 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 \u003Ca href=\u0022https://wiki2.kavitareader.com\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003Ch3\u003EOld Email Service\u003C/h3\u003E\n\u003Cp\u003EAs 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.\u003C/p\u003E\n\u003Ch3\u003EKavita\u002B\u003C/h3\u003E\n\u003Cp\u003EKavita\u002B 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.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added limited parsing support for c01-c04. Normally, c01-04 is used.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) 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\u002B.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Kavita will now store Kavita\u002B external ratings, reviews, and recommendations in your Database. This will increase performance and lays the foundation for the upcoming basic metadata from Kavita\u002B. Data is refreshed ad-hoc after 2 weeks and cached in memory for 48 hours.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) New button in Edit Series modal that allows the series to be invalidated (or removed from blocklist) and force refresh from Kavita\u002B on next series detail page view.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) User\u0027s can now see error messages and a different icon on Scrobbling History when a series fails to scrobble.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Sort by Average Rating\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a popup that will tell users that are over 3 releases behind to update.\u003C/li\u003E\n\u003Cli\u003EAdded: 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.\u003C/li\u003E\n\u003Cli\u003EAdded: Added back the ability to delete your own review\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to delete collection tags via actionables on collection detail page.\u003C/li\u003E\n\u003Cli\u003EAdded: Added buttons that allows users to quickly autofill gmail/outlook email settings\u003C/li\u003E\n\u003Cli\u003EAdded: Added the changelog to the Admin System tab (in case users don\u0027t see it in the announcements page).\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Changed how Series Detail api works to drastically reduce memory needs\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Removed Bust Kavita\u002B cache button from Admin -\u0026gt; Tasks screen as it\u0027s no longer needed.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Series that don\u0027t match against Kavita\u002B will now be stored in a table and not be retried again.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) 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\u0027t waste time trying when it will never match)\u003C/li\u003E\n\u003Cli\u003EChanged: Updated system tab with a link to localization and new feature request site\u003C/li\u003E\n\u003Cli\u003EChanged: Massive refactor to change how Volume numbers are represented within Kavita to support volumes that are \u0026lt; 1 on the UI. This means 0.5 books will now work going forward.\u003C/li\u003E\n\u003Cli\u003EChanged: Lots of autocomplete hints added to help password managers and browsers autofill login/registration/passwords.\u003C/li\u003E\n\u003Cli\u003EChanged: Adjusted OPDS-PS lastReadDate to adhere to ISO 8061 as per the spec and what Panels expects for proper sync.\u003C/li\u003E\n\u003Cli\u003EChanged: Supressed image requests on the logs as they are quite noisy\u003C/li\u003E\n\u003Cli\u003EChanged: Hostname setting is in general admin settings as well as email, as it\u0027s not 100% tied to email functionality\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita will now confirm before you delete a device\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Series detail title (series title) now shows a loading indicator showcasing all the important apis that are loading\u003C/li\u003E\n\u003Cli\u003EChanged: If Kavita\u002B license check throws an exception, just assume license is invalid and let the scheduled task check again (or the user manually)\u003C/li\u003E\n\u003Cli\u003EChanged: Changelog now shows if you\u0027re on a nightly and which stable it\u0027s based off.\u003C/li\u003E\n\u003Cli\u003EChanged: Split the main email template into base.html and fixed some bad closing tags. This should make customizing email templates easier.\u003C/li\u003E\n\u003Cli\u003EChanged: 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.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated the Kavita templates to be more modern (in terms of the code) and easier to customize.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed UI not being able to render search for non-admin users\u003C/li\u003E\n\u003Cli\u003EFixed: Remove from On Deck wasn\u0027t refreshing the dashboard\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up the display and logic around when there is a series collision, to help the user understand more\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the UI filter could send out of date information to the backend which threw an error.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where external reviews would show as local\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed webtoon reader being unusable on iOS (Thanks @thundernerd for the help)\u003C/li\u003E\n\u003Cli\u003EFixed: Series detail page was making a ton of api calls that weren\u0027t needed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where scrobbling tab could duplicate\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bunch of warnings about ordering and take with search queries\u003C/li\u003E\n\u003Cli\u003EFixed: Want to Read had a critical issue where a user could undo your want to read.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bulk select of chapters leaving the last one off.\u003C/li\u003E\n\u003Cli\u003EFixed: On non-authenticated flows, the nav bar will no longer flash on refresh.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed inability to right click highlighted text in the book reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading activity graphic not taking the full width like it should\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some spacing on the Continue/Read button on reading list page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where download indicators on cards would should on different series\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t have validations on the login screen\u003C/li\u003E\n\u003Cli\u003EFixed: Support for the \u0027pageNumber\u0027 parameter in OPDS API smart-filter/.  (Thanks @charles7668 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed and polished a lot of the email flows.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where send to device didn\u0027t properly send the correct end event\u003C/li\u003E\n\u003Cli\u003EFixed: LSIO dockers weren\u0027t properly recognized as Docker, Kavita now checks for LSIO_FIRST_PARTY environment variable\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue with // being generated for some invite links (\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where a new library could render as blank in the UI\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue when creating a new library, that new library wouldn\u0027t be included in folder watching\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bad encoding of dates for lastReadDate on OPDS-PS streams. Panels has already updated implemenation to help progress sync work more smoothly.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where non Kavita\u002B users wouldn\u0027t see reviews.\u003C/li\u003E\n\u003Cli\u003EFixed: Handled a rare case where a cover image wouldn\u0027t exist when creating a merged image for a reading list/collection.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bad comparison on code that pushes update notification users to admins.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where continue point for a totally unread series would start on the special and not chapter 1.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue in webtoon reader where it would load the next chapter and be all black.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EVolume Number field is deprecated in favor of MinNumber and MaxNumber (if the volume is a range). You can switch to MinNumber and ignore MaxNumber. (Volume Number will not be removed for at least 6 months to give time for apps to update)\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.14 - iOS Webtoon Fixes, Built-in Email, and a new Wiki!",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.14",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-02-08T13:52:31Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added limited parsing support for c01-c04. Normally, c01-04 is used.",
      "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.",
      "(Kavita\u002B) 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\u002B.",
      "(Kavita\u002B) Kavita will now store Kavita\u002B external ratings, reviews, and recommendations in your Database. This will increase performance and lays the foundation for the upcoming basic metadata from Kavita\u002B. Data is refreshed ad-hoc after 2 weeks and cached in memory for 48 hours.",
      "(Kavita\u002B) New button in Edit Series modal that allows the series to be invalidated (or removed from blocklist) and force refresh from Kavita\u002B on next series detail page view.",
      "(Kavita\u002B) User\u0027s can now see error messages and a different icon on Scrobbling History when a series fails to scrobble.",
      "(Kavita\u002B) Sort by Average Rating",
      "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 a popup that will tell users that are over 3 releases behind to update.",
      "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 back the ability to delete your own review",
      "Added the ability to delete collection tags via actionables on collection detail page.",
      "Added buttons that allows users to quickly autofill gmail/outlook email settings",
      "Added the changelog to the Admin System tab (in case users don\u0027t see it in the announcements page)."
    ],
    "Removed": [],
    "Changed": [
      "(Kavita\u002B) Changed how Series Detail api works to drastically reduce memory needs",
      "(Kavita\u002B) Removed Bust Kavita\u002B cache button from Admin -\u003E Tasks screen as it\u0027s no longer needed.",
      "(Kavita\u002B) Series that don\u0027t match against Kavita\u002B will now be stored in a table and not be retried again.",
      "(Kavita\u002B) 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\u0027t waste time trying when it will never match)",
      "Updated system tab with a link to localization and new feature request site",
      "Massive refactor to change how Volume numbers are represented within Kavita to support volumes that are \u003C 1 on the UI. This means 0.5 books will now work going forward.",
      "Lots of autocomplete hints added to help password managers and browsers autofill login/registration/passwords.",
      "Adjusted OPDS-PS lastReadDate to adhere to ISO 8061 as per the spec and what Panels expects for proper sync.",
      "Supressed image requests on the logs as they are quite noisy",
      "Hostname setting is in general admin settings as well as email, as it\u0027s not 100% tied to email functionality",
      "Kavita will now confirm before you delete a device",
      "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.",
      "Series detail title (series title) now shows a loading indicator showcasing all the important apis that are loading",
      "If Kavita\u002B license check throws an exception, just assume license is invalid and let the scheduled task check again (or the user manually)",
      "Changelog now shows if you\u0027re on a nightly and which stable it\u0027s based off.",
      "Split the main email template into base.html and fixed some bad closing tags. This should make customizing email templates easier.",
      "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.",
      "Updated the Kavita templates to be more modern (in terms of the code) and easier to customize."
    ],
    "Fixed": [
      "Fixed UI not being able to render search for non-admin users",
      "Remove from On Deck wasn\u0027t refreshing the dashboard",
      "Fixed up the display and logic around when there is a series collision, to help the user understand more",
      "Fixed a bug where the UI filter could send out of date information to the backend which threw an error.",
      "(Kavita\u002B) Fixed a bug where external reviews would show as local",
      "Fixed webtoon reader being unusable on iOS (Thanks @thundernerd for the help)",
      "Series detail page was making a ton of api calls that weren\u0027t needed.",
      "Fixed a bug where scrobbling tab could duplicate",
      "Fixed a bunch of warnings about ordering and take with search queries",
      "Want to Read had a critical issue where a user could undo your want to read.",
      "Fixed bulk select of chapters leaving the last one off.",
      "On non-authenticated flows, the nav bar will no longer flash on refresh.",
      "Fixed inability to right click highlighted text in the book reader",
      "Fixed reading activity graphic not taking the full width like it should",
      "Fixed some spacing on the Continue/Read button on reading list page",
      "Fixed an issue where download indicators on cards would should on different series",
      "Don\u0027t have validations on the login screen",
      "Support for the \u0027pageNumber\u0027 parameter in OPDS API smart-filter/{Id}.  (Thanks @charles7668 )",
      "Fixed and polished a lot of the email flows.",
      "Fixed a bug where send to device didn\u0027t properly send the correct end event",
      "LSIO dockers weren\u0027t properly recognized as Docker, Kavita now checks for LSIO_FIRST_PARTY environment variable",
      "Fixed an issue with // being generated for some invite links (",
      "Fixed an issue where a new library could render as blank in the UI",
      "Fixed an issue when creating a new library, that new library wouldn\u0027t be included in folder watching",
      "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 a bug where non Kavita\u002B users wouldn\u0027t see reviews.",
      "Handled a rare case where a cover image wouldn\u0027t exist when creating a merged image for a reading list/collection.",
      "Fixed a bad comparison on code that pushes update notification users to admins.",
      "Fixed an issue where continue point for a totally unread series would start on the special and not chapter 1.",
      "Fixed an issue in webtoon reader where it would load the next chapter and be all black."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [
      "Volume Number field is deprecated in favor of MinNumber and MaxNumber (if the volume is a range). You can switch to MinNumber and ignore MaxNumber. (Volume Number will not be removed for at least 6 months to give time for apps to update)"
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EA 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\u002B 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.\u003C/p\u003E\n\u003Cp\u003EAnother 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.\u003C/p\u003E\n\u003Cp\u003ELastly, while it looks so small, it was over 3K lines of code, but volume numbers are now float-based, meaning if a volume is \u0026lt; 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\u002B will get Volume 2 when you read an Omnibus vs Volume 1 previously.\u003C/p\u003E\n\u003Cp\u003EThat 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.\u003C/p\u003E\n\u003Ch3\u003ENew Wiki\u003C/h3\u003E\n\u003Cp\u003ELastly 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\u0027t 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 \u003Ca href=\u0022https://wiki2.kavitareader.com\u0022\u003Ehere\u003C/a\u003E.\u003C/p\u003E\n\u003Ch3\u003EOld Email Service\u003C/h3\u003E\n\u003Cp\u003EAs 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.\u003C/p\u003E\n\u003Ch3\u003EKavita\u002B\u003C/h3\u003E\n\u003Cp\u003EKavita\u002B 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.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.13",
    "UpdateBody": "\u003Cp\u003EA quick and small update for you all with a focus on Kavita\u002B and a regression that appeared from NetVips, which is responsible for generating cover images, causing black and white covers.\u003C/p\u003E\n\u003Cp\u003EA word to all Kavita\u002B users, many of you have user\u0027s with AniList tokens that have expired. Your users need to go to \u003Ccode\u003EUser settings \u0026gt; Account\u003C/code\u003E and generate a new one to continue scrobbling. Also don\u0027t 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.\u003C/p\u003E\n\u003Cp\u003EWe have over 10K active installs on old versions. If you\u0027re running Kavita, please update! You\u0027re missing out on the good stuff.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EMake sure you know that the docker repo has CHANGED.\u003C/strong\u003E\nNew repo here: https://hub.docker.com/r/jvmilazz0/kavita - You just need to switch your image to jvmilazz0/kavita:latest\u003C/p\u003E\n\u003Cp\u003EIf you are on 0.7.6\u002B you can update directly to 0.7.13 otherwise you need to update incrementally to prevent data loss (v0.5.6 \u0026gt; v0.7.1.4 \u0026gt; v0.7.3.1 \u0026gt; v0.7.6 \u0026gt; v0.7.13)\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added the ability to delete a library from side nav menu\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Kavita now alerts the user on visiting their homepage that their AniList token needs rotating to continue scrobbling\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Kavita will now clear out existing, non-processed scrobbling events when a Series is put on hold.\u003C/li\u003E\n\u003Cli\u003EChanged: Lots of dependency updates\u003C/li\u003E\n\u003Cli\u003EChanged: Downloading a Volume (consisting of multiple chapter archives) or a Full Series will not auto extract and re-zip for you.\u003C/li\u003E\n\u003Cli\u003EChanged: Enhanced the messaging around events widget for downloading/preparing a download.\u003C/li\u003E\n\u003Cli\u003EChanged: Min length for a user review is now only 5 characters\u003C/li\u003E\n\u003Cli\u003EChanged: Downloads will download as cbz\u003C/li\u003E\n\u003Cli\u003EChanged: Under User settings \u0026gt; 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)\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Kavita will quit faster during scrobbling events whenever rate limit is hit or token is expired.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) 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.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) If a license is still on disk, but the subscription is not active, Kavita will not schedule Kavita\u002B tasks at all.\u003C/li\u003E\n\u003Cli\u003EChanged: Streamlined some code around downloading for upcoming enhancements\u003C/li\u003E\n\u003Cli\u003EChanged: Updated dependencies, including NetVips for some regressions around cover generation.\u003C/li\u003E\n\u003Cli\u003EChanged: Major improvement to messaging when a series collides with another series in a parallel folder to library root. Explicitly give more information.\u003C/li\u003E\n\u003Cli\u003EChanged: Localization files now have cache busting to help on new releases not reflecting all keys\u003C/li\u003E\n\u003Cli\u003EChanged: Removed XFrameOptions and replaced with AllowIFraming as true/false. This will control multiple headers for Organizer\u003C/li\u003E\n\u003Cli\u003EChanged: 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\u0027t updated.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: On non-authenticated flows, the nav bar will no longer flash on refresh.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed inablity to right click highlighted text in the book reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed reading activity graphic not taking the full width like it should\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some spacing on the Continue/Read button on reading list page\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where download indicators on cards would should on different series\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t have validations on the login screen\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed More in Genre not using a localized string for title\u003C/li\u003E\n\u003Cli\u003EFixed: When a series updates to completed and there was a next estimated chapter card, make sure it gets cleared.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bookmarks having \u002B in the filename when not needed\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bookmarks not showing the download indicator\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bookmarks not showing page count in card\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bad localization string for chapter actions from within the card detail drawer\u003C/li\u003E\n\u003Cli\u003EFixed: Restore PDF layout menu (Thanks @tjarls)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where tab could flash on user preferences due to some delay waiting for a license check.\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure only admins can see files when searching\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Edit Series Modal made it look like the language tag was set, but it wasn\u0027t\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.13 - Downloading Improvments",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.13",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-01-18T23:08:32Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added the ability to delete a library from side nav menu",
      "(Kavita\u002B) Kavita now alerts the user on visiting their homepage that their AniList token needs rotating to continue scrobbling"
    ],
    "Removed": [],
    "Changed": [
      "(Kavita\u002B) Kavita will now clear out existing, non-processed scrobbling events when a Series is put on hold.",
      "Lots of dependency updates",
      "Downloading a Volume (consisting of multiple chapter archives) or a Full Series will not auto extract and re-zip for you.",
      "Enhanced the messaging around events widget for downloading/preparing a download.",
      "Min length for a user review is now only 5 characters",
      "Downloads will download as cbz",
      "Under User settings \u003E 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)",
      "(Kavita\u002B) Kavita will quit faster during scrobbling events whenever rate limit is hit or token is expired.",
      "(Kavita\u002B) 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.",
      "(Kavita\u002B) If a license is still on disk, but the subscription is not active, Kavita will not schedule Kavita\u002B tasks at all.",
      "Streamlined some code around downloading for upcoming enhancements",
      "Updated dependencies, including NetVips for some regressions around cover generation.",
      "Major improvement to messaging when a series collides with another series in a parallel folder to library root. Explicitly give more information.",
      "Localization files now have cache busting to help on new releases not reflecting all keys",
      "Removed XFrameOptions and replaced with AllowIFraming as true/false. This will control multiple headers for Organizer",
      "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\u0027t updated."
    ],
    "Fixed": [
      "On non-authenticated flows, the nav bar will no longer flash on refresh.",
      "Fixed inablity to right click highlighted text in the book reader",
      "Fixed reading activity graphic not taking the full width like it should",
      "Fixed some spacing on the Continue/Read button on reading list page",
      "Fixed an issue where download indicators on cards would should on different series",
      "Don\u0027t have validations on the login screen",
      "Fixed More in Genre not using a localized string for title",
      "When a series updates to completed and there was a next estimated chapter card, make sure it gets cleared.",
      "Fixed bookmarks having \u002B in the filename when not needed",
      "Fixed bookmarks not showing the download indicator",
      "Fixed bookmarks not showing page count in card",
      "Fixed a bad localization string for chapter actions from within the card detail drawer",
      "Restore PDF layout menu (Thanks @tjarls)",
      "Fixed an issue where tab could flash on user preferences due to some delay waiting for a license check.",
      "Ensure only admins can see files when searching",
      "Fixed a bug where Edit Series Modal made it look like the language tag was set, but it wasn\u0027t"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EA quick and small update for you all with a focus on Kavita\u002B and a regression that appeared from NetVips, which is responsible for generating cover images, causing black and white covers.\u003C/p\u003E\n\u003Cp\u003EA word to all Kavita\u002B users, many of you have user\u0027s with AniList tokens that have expired. Your users need to go to \u003Ccode\u003EUser settings \u0026gt; Account\u003C/code\u003E and generate a new one to continue scrobbling. Also don\u0027t 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.\u003C/p\u003E\n\u003Cp\u003EWe have over 10K active installs on old versions. If you\u0027re running Kavita, please update! You\u0027re missing out on the good stuff.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EMake sure you know that the docker repo has CHANGED.\u003C/strong\u003E\nNew repo here: https://hub.docker.com/r/jvmilazz0/kavita - You just need to switch your image to jvmilazz0/kavita:latest\u003C/p\u003E\n\u003Cp\u003EIf you are on 0.7.6\u002B you can update directly to 0.7.13 otherwise you need to update incrementally to prevent data loss (v0.5.6 \u0026gt; v0.7.1.4 \u0026gt; v0.7.3.1 \u0026gt; v0.7.6 \u0026gt; v0.7.13)\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.12",
    "UpdateBody": "\u003Cp\u003EHappy 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\u0027m 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\u0027s talk about Kavita this year.\u003C/p\u003E\n\u003Ch3\u003EProcess Change\u003C/h3\u003E\n\u003Cp\u003EFirst off, I will be changing how feature requests are handled. Going forward, Kavita will solely use \u003Ca href=\u0022https://github.com/Kareadita/Kavita/discussions/2529\u0022\u003EGithub Discussions\u003C/a\u003E 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\u0027t send alerts to users, leaving me without a means to communicate when I\u0027m 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.\u003C/p\u003E\n\u003Cp\u003ENext, let\u0027s talk about shaping features. Once a feature is on discussions and I agree, I will be taking this feature to my Kavita\u002B discord users to help shape the feature into the final solution. I usually rely on a few users for advice, but going forward, Kavita\u002B users (which many would consider power users) will have a strong say in shaping features going forward. Feedback is always welcome from non-Kavita\u002B users, but I want to utilize power users to drive features going forward. You can go to Kavita\u002B tab to link your Discord User Id with your Kavita\u002B license, which will grant you access to the hidden channels.\u003C/p\u003E\n\u003Cp\u003ELastly, 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.\u003C/p\u003E\n\u003Ch3\u003EWebsite/Wiki\u003C/h3\u003E\n\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003Cp\u003EIn 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.\u003C/p\u003E\n\u003Cp\u003EThe wiki is also in need of some love. It\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EThe Features\u003C/h3\u003E\n\u003Ch4\u003EKavita\u002B\u003C/h4\u003E\n\u003Cp\u003EI have a few key features for Kavita\u002B that I want to test and if successful, deliver to you all. The first up is \u003Cstrong\u003EMetadata\u003C/strong\u003E. Komf is a great tool that already exists, but some users want something a bit simpler and that is where Kavita\u002B 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\u002B already has metadata from AniList, I see an opportunity to trial metadata integration.\u003C/p\u003E\n\u003Cp\u003EAt the end of 2023, Robbie mentioned to me Hardcover, a potential integration point for Kavita\u002B 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\u002B. This also means if metadata support is built out, it will benefit from Hardcover.\u003C/p\u003E\n\u003Cp\u003ELastly, as mentioned above, Kavita\u002B 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.\u003C/p\u003E\n\u003Ch4\u003EPDF\u003C/h4\u003E\n\u003Cp\u003EPDF as many of you know has always been Kavita\u0027s 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\u0027ve been using a reader that doesn\u0027t 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\u002B users to help shape this feature and deliver a good experience.\u003C/p\u003E\n\u003Cp\u003EMany users also collect magazines and I think it\u0027s 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.\u003C/p\u003E\n\u003Ch4\u003EComics\u003C/h4\u003E\n\u003Cp\u003EComics 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\u0027s format, which is the standard for Mylar and comics in general. As is the theme, my Kavita\u002B users, including @DieselTech  will be helping me drive the end solution.\u003C/p\u003E\n\u003Ch4\u003EKobo Sync\u003C/h4\u003E\n\u003Cp\u003EThe 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\u002B feature, but after looking more into it, Kavita can service it without problem.\u003C/p\u003E\n\u003Cp\u003EThere are more items on my list as well, but let\u0027s leave a bit to surprise. I\u0027m sure everyone can tell these are huge items with that will take tons of time. I\u0027m really excited for this year and what I can achieve.\u003C/p\u003E\n\u003Ch2\u003ERemember to use the new \u003Ca href=\u0022https://hub.docker.com/r/jvmilazz0/kavita\u0022\u003EDocker Central Repo\u003C/a\u003E!\u003C/h2\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added the ability to view the provider of a recommendation on the card itself and in the preview drawer.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added the ability to reset your Kavita\u002B license key without having to reach out to me.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added the ability to add your Discord UserId during Kavita\u002B license registration which will grant access to hidden channels for feature curtailing.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: When opening up an external series review, show the source of the review.\u003C/li\u003E\n\u003Cli\u003EChanged: Streamlined the design slightly for a user\u0027s personal review\u003C/li\u003E\n\u003Cli\u003EChanged: There is now inline form validation on the User Review Modal\u003C/li\u003E\n\u003Cli\u003EChanged: Removed the tagline from user/external reviews.\u003C/li\u003E\n\u003Cli\u003EChanged: (Scanner) When a series has a single special and a total count of 1 or less, assume it\u0027s completed\u003C/li\u003E\n\u003Cli\u003EChanged: Lots of love around the messaging when interacting with users that do not use real emails.\u003C/li\u003E\n\u003Cli\u003EChanged: Enhanced the messaging around users without valid emails interacting with change email flow.\u003C/li\u003E\n\u003Cli\u003EChanged: Validation messaging added on change username flow, including showing the valid characters.\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t log apikey in logs\u003C/li\u003E\n\u003Cli\u003EChanged: Updated the donate link to point to a wiki explaining the donation options and that Kavita\u002B is the only way to remove the donate button.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where user reviews wouldn\u0027t be rendered on the UI if they didn\u0027t have a tagline, even though it\u0027s optional.\u003C/li\u003E\n\u003Cli\u003EFixed: Ensure my own review orders in front of other local user reviews\u003C/li\u003E\n\u003Cli\u003EFixed: When a user resets the API key, tell connected clients to refresh their account details\u003C/li\u003E\n\u003Cli\u003EFixed: Moved bulk operations bar back to the top of the page where it belongs on series detail\u003C/li\u003E\n\u003Cli\u003EFixed: When using back on side nav after having a filter applied, clear the filter.\u003C/li\u003E\n\u003Cli\u003EFixed: Cleaned up the error handling around Kavita\u002B registering of a license.\u003C/li\u003E\n\u003Cli\u003EFixed: Fix the issue of an extra space appearing after the end of the series detail page. (Thanks @charles7668 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug with email link generation when using a base url, where too many characters could be trimmed  (Thanks @charles7668 )\u003C/li\u003E\n\u003Cli\u003EFixed: Change username wouldn\u0027t update the correct field which was used in login flow\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where when filtering was disabled (reading list page), the jumpbar also got disabled.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where library watching was trying to be turned on before we had saved the new value from server settings.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the check email button success message was missing a space before the version number.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a delay in the UI after a bookmark is created/deleted (Thanks @charles7668 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed webtoon mode not allowing bookmarking (Thanks @charles7668 )\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a config issue where not all of Weblate\u0027s language codes would show up\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ERemoved\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ERemoved: (Kavita\u002B) Removed the ability to scrobble reviews as the conditions are strict and doesn\u0027t make much sense to do it from Kavita.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.12 - Happy New Year",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.12",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2024-01-07T20:51:59Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "(Kavita\u002B) Added the ability to view the provider of a recommendation on the card itself and in the preview drawer.",
      "(Kavita\u002B) Added the ability to reset your Kavita\u002B license key without having to reach out to me.",
      "(Kavita\u002B) Added the ability to add your Discord UserId during Kavita\u002B license registration which will grant access to hidden channels for feature curtailing."
    ],
    "Removed": [
      "(Kavita\u002B) Removed the ability to scrobble reviews as the conditions are strict and doesn\u0027t make much sense to do it from Kavita."
    ],
    "Changed": [
      "When opening up an external series review, show the source of the review.",
      "Streamlined the design slightly for a user\u0027s personal review",
      "There is now inline form validation on the User Review Modal",
      "Removed the tagline from user/external reviews.",
      "(Scanner) When a series has a single special and a total count of 1 or less, assume it\u0027s completed",
      "Lots of love around the messaging when interacting with users that do not use real emails.",
      "Enhanced the messaging around users without valid emails interacting with change email flow.",
      "Validation messaging added on change username flow, including showing the valid characters.",
      "Don\u0027t log apikey in logs",
      "Updated the donate link to point to a wiki explaining the donation options and that Kavita\u002B is the only way to remove the donate button."
    ],
    "Fixed": [
      "Fixed a bug where user reviews wouldn\u0027t be rendered on the UI if they didn\u0027t have a tagline, even though it\u0027s optional.",
      "Ensure my own review orders in front of other local user reviews",
      "When a user resets the API key, tell connected clients to refresh their account details",
      "Moved bulk operations bar back to the top of the page where it belongs on series detail",
      "When using back on side nav after having a filter applied, clear the filter.",
      "Cleaned up the error handling around Kavita\u002B registering of a license.",
      "Fix the issue of an extra space appearing after the end of the series detail page. (Thanks @charles7668 )",
      "Fixed a bug with email link generation when using a base url, where too many characters could be trimmed  (Thanks @charles7668 )",
      "Change username wouldn\u0027t update the correct field which was used in login flow",
      "Fixed a bug where when filtering was disabled (reading list page), the jumpbar also got disabled.",
      "Fixed a bug where library watching was trying to be turned on before we had saved the new value from server settings.",
      "Fixed a bug where the check email button success message was missing a space before the version number.",
      "Fixed a delay in the UI after a bookmark is created/deleted (Thanks @charles7668 )",
      "Fixed webtoon mode not allowing bookmarking (Thanks @charles7668 )",
      "Fixed a config issue where not all of Weblate\u0027s language codes would show up"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EHappy 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\u0027m 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\u0027s talk about Kavita this year.\u003C/p\u003E\n\u003Ch3\u003EProcess Change\u003C/h3\u003E\n\u003Cp\u003EFirst off, I will be changing how feature requests are handled. Going forward, Kavita will solely use \u003Ca href=\u0022https://github.com/Kareadita/Kavita/discussions/2529\u0022\u003EGithub Discussions\u003C/a\u003E 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\u0027t send alerts to users, leaving me without a means to communicate when I\u0027m 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.\u003C/p\u003E\n\u003Cp\u003ENext, let\u0027s talk about shaping features. Once a feature is on discussions and I agree, I will be taking this feature to my Kavita\u002B discord users to help shape the feature into the final solution. I usually rely on a few users for advice, but going forward, Kavita\u002B users (which many would consider power users) will have a strong say in shaping features going forward. Feedback is always welcome from non-Kavita\u002B users, but I want to utilize power users to drive features going forward. You can go to Kavita\u002B tab to link your Discord User Id with your Kavita\u002B license, which will grant you access to the hidden channels.\u003C/p\u003E\n\u003Cp\u003ELastly, 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.\u003C/p\u003E\n\u003Ch3\u003EWebsite/Wiki\u003C/h3\u003E\n\u003Cp\u003EThe 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.\u003C/p\u003E\n\u003Cp\u003EIn 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.\u003C/p\u003E\n\u003Cp\u003EThe wiki is also in need of some love. It\u0027s 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.\u003C/p\u003E\n\u003Ch3\u003EThe Features\u003C/h3\u003E\n\u003Ch4\u003EKavita\u002B\u003C/h4\u003E\n\u003Cp\u003EI have a few key features for Kavita\u002B that I want to test and if successful, deliver to you all. The first up is \u003Cstrong\u003EMetadata\u003C/strong\u003E. Komf is a great tool that already exists, but some users want something a bit simpler and that is where Kavita\u002B 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\u002B already has metadata from AniList, I see an opportunity to trial metadata integration.\u003C/p\u003E\n\u003Cp\u003EAt the end of 2023, Robbie mentioned to me Hardcover, a potential integration point for Kavita\u002B 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\u002B. This also means if metadata support is built out, it will benefit from Hardcover.\u003C/p\u003E\n\u003Cp\u003ELastly, as mentioned above, Kavita\u002B 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.\u003C/p\u003E\n\u003Ch4\u003EPDF\u003C/h4\u003E\n\u003Cp\u003EPDF as many of you know has always been Kavita\u0027s 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\u0027ve been using a reader that doesn\u0027t 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\u002B users to help shape this feature and deliver a good experience.\u003C/p\u003E\n\u003Cp\u003EMany users also collect magazines and I think it\u0027s 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.\u003C/p\u003E\n\u003Ch4\u003EComics\u003C/h4\u003E\n\u003Cp\u003EComics 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\u0027s format, which is the standard for Mylar and comics in general. As is the theme, my Kavita\u002B users, including @DieselTech  will be helping me drive the end solution.\u003C/p\u003E\n\u003Ch4\u003EKobo Sync\u003C/h4\u003E\n\u003Cp\u003EThe 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\u002B feature, but after looking more into it, Kavita can service it without problem.\u003C/p\u003E\n\u003Cp\u003EThere are more items on my list as well, but let\u0027s leave a bit to surprise. I\u0027m sure everyone can tell these are huge items with that will take tons of time. I\u0027m really excited for this year and what I can achieve.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.11.2",
    "UpdateBody": "\u003Cp\u003EUnfortunately a few more bugs surfaced after the last hotfix, one being a problem with extracting weblink id\u0027s for Kavita\u002B matching along with an annoying bug with side nav being wiped out for fresh install admins. This is the last release for the year.\u003C/p\u003E\n\u003Ch2\u003ERemember to use the new \u003Ca href=\u0022https://hub.docker.com/r/jvmilazz0/kavita\u0022\u003EDocker Central Repo\u003C/a\u003E! Updates are not going to the old one.\u003C/h2\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Backups now show the version of Kavita in the filename\u003C/li\u003E\n\u003Cli\u003EChanged: Moved some cleanup tasks within another task to ensure everything is processed at the same time.\u003C/li\u003E\n\u003Cli\u003EChanged: Changed the readme to point to the correct type of projects.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) When sending requests to Kavita\u002B, MangaDex Ids will be sent as well to prepare for a potential enhancement next year.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed unneeded slowness in the image api as some debug code got left in there\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed invalid date showing on tasks screen\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a long standing parser bug where series would parse as Love Hina Vol. 30 Chapter 22 when the file was Love Hina Vol. 30 Chapter 22 - Vol 30 Omakes\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where Kavita\u002B wasn\u0027t being sent the ids from Weblinks\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a loader showing on the webtoon reader when it shouldn\u0027t have\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a critical issue where fresh installs that invite a user have their own admin account\u0027s side nav and dashboard streams wiped out\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Smart filters would always evaluate to descending sort\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where some progress bars wouldn\u0027t report series progress correctly\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EKnown Issue\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ESome users on iOS are reporting issues with the webtoon reader. I spent a week working with one user but unfortunately unable to reproduce. I will look into buying an iOS device next year.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.11.2 - Hotfix 2",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.11.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-12-11T21:42:59Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [
      "Backups now show the version of Kavita in the filename",
      "Moved some cleanup tasks within another task to ensure everything is processed at the same time.",
      "Changed the readme to point to the correct type of projects.",
      "(Kavita\u002B) When sending requests to Kavita\u002B, MangaDex Ids will be sent as well to prepare for a potential enhancement next year."
    ],
    "Fixed": [
      "Fixed unneeded slowness in the image api as some debug code got left in there",
      "Fixed invalid date showing on tasks screen",
      "Fixed a long standing parser bug where series would parse as Love Hina Vol. 30 Chapter 22 when the file was Love Hina Vol. 30 Chapter 22 - Vol 30 Omakes",
      "(Kavita\u002B) Fixed a bug where Kavita\u002B wasn\u0027t being sent the ids from Weblinks",
      "Fixed a loader showing on the webtoon reader when it shouldn\u0027t have",
      "Fixed a critical issue where fresh installs that invite a user have their own admin account\u0027s side nav and dashboard streams wiped out",
      "Fixed a bug where Smart filters would always evaluate to descending sort",
      "Fixed a bug where some progress bars wouldn\u0027t report series progress correctly"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EUnfortunately a few more bugs surfaced after the last hotfix, one being a problem with extracting weblink id\u0027s for Kavita\u002B matching along with an annoying bug with side nav being wiped out for fresh install admins. This is the last release for the year.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.11.1",
    "UpdateBody": "\u003Cp\u003EAn unfortunate bug slipped in last minute with the release which would cause LastModified fields to be updated at night when a cleanup task ran to cap progress to 100% (in cases where a user reads 10 pages, swaps the file for one with only 8 pages).\u003C/p\u003E\n\u003Cp\u003EThis hotfix will fix that skewing, however, it is likely the task has already ran. You can restore your DB backup from prior to updating (Dec 3rd).\u003C/p\u003E\n\u003Cp\u003EI\u0027m sorry about the data loss.\u003C/p\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a critical bug where the cleanup task would break ordering of progress events. This would cause your On Deck to skew.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.11.1 - Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.11.1",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-12-05T14:05:02Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [],
    "Fixed": [
      "Fixed a critical bug where the cleanup task would break ordering of progress events. This would cause your On Deck to skew."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EAn unfortunate bug slipped in last minute with the release which would cause LastModified fields to be updated at night when a cleanup task ran to cap progress to 100% (in cases where a user reads 10 pages, swaps the file for one with only 8 pages).\u003C/p\u003E\n\u003Cp\u003EThis hotfix will fix that skewing, however, it is likely the task has already ran. You can restore your DB backup from prior to updating (Dec 3rd).\u003C/p\u003E\n\u003Cp\u003EI\u0027m sorry about the data loss.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.11",
    "UpdateBody": "\u003Cp\u003E\u003Cstrong\u003EWarning: There is a bug identified that causes minor data skewing. An update will be published soon (before 8th) with the hotfix. If you have updated, copy one of your backups from config/backups for the day of the update and restore the DB.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003E12/5 - Assets have been swapped\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EWith this release, I\u0027ve hit 3 years of developing Kavita. Originally starting out after using Ubooquity and feeling limited by the lack of metadata and other solutions not aligning with my sense of UX, I started this project as a personal project to not only have a simple reader and organizer like Plex, but also learn .NET. Fast forward to now and Kavita has grown to be a name brand product and my vision has drastically expanded from a simple self project to becoming the Plex of the reading world. After 3 years of building this project solo (with some help from a few users here and there), I would think it would be nearly complete, yet I find myself with more work than ever as the ideas keep flowing.\u003C/p\u003E\n\u003Cp\u003EBefore we jump into this release, let\u0027s take a look back at some of the major features I\u0027ve released this year:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EUser and Server Stats (160 hours)\u003C/li\u003E\n\u003Cli\u003EDouble Page reader (100 hours)\u003C/li\u003E\n\u003Cli\u003ECBL \u0026amp; Reading List Improvements (40 hours)\u003C/li\u003E\n\u003Cli\u003EVertical Reading support in Epub reader\u003C/li\u003E\n\u003Cli\u003EBase URL Support\u003C/li\u003E\n\u003Cli\u003EWebP and AVIF support\u003C/li\u003E\n\u003Cli\u003EKavita\u002B (and the review overhaul that went along with it) (600\u002B hours)\u003C/li\u003E\n\u003Cli\u003EDynamic covers for collections and reading lists (3 hours)\u003C/li\u003E\n\u003Cli\u003EPersonal Bookmarks in the Epub reader (12 hours)\u003C/li\u003E\n\u003Cli\u003EFull app localization (80 hours)\u003C/li\u003E\n\u003Cli\u003EA complete filtering overhaul with deep customization on how you filter (300 hours)\u003C/li\u003E\n\u003Cli\u003ESmart Filters and customization of your side nav and Dashboard with those streams (300 hours)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003EThis year has been huge in terms of delivering features to the users and also the transformation the underlying codebase has undergone to support these features. Overall, I\u0027ve delivered \u003Cstrong\u003E141 new features, 301 changes, and 277 fixes\u003C/strong\u003E. It has been a tremendous year indeed and much appreciation needs to go to @DieselTech and @scare376 who are basically the only nightly testers to test releases before it hits stable and provide a ton of support in the discord.\u003C/p\u003E\n\u003Cp\u003EI\u0027m looking forward to next year where I will finally get to work on some much needed features, like a complete PDF overhaul, kobo sync support, the start of the mobile app, and some really cool Kavita\u002B ideas that I\u0027ve been discussing in the discord (join if you want to give your opinion).\u003C/p\u003E\n\u003Cp\u003EWith that said, this last release I had to take a step back and focus on the polish. There were a few performance issues and styling issues that were starting to nag me and after delivering such a huge update, I needed something a bit easier to relax with. This release is focused on polishing the application and I think this first pass brings a lot of nice smoothing to the edges in the app. I have more planned that I will sprinkle in next year.\u003C/p\u003E\n\u003Cp\u003EFirst up is the .kavitaignore, which is a file you can place within any directory and apply glob syntax patterns which will exclude files and folders. While this is really powerful, it is an advanced feature that many don\u0027t use and requires updating your filesystem. I took a hard look, opened an issue and collected feedback from a few users and decided, let\u0027s bubble up this feature to the UI. .kavitaignore will be removed next year in the v0.8.x series of releases and instead, admins can now use the File Type switches and the Exclude Patterns in the Library Settings modal. I believe this will lead to higher adoption.\u003C/p\u003E\n\u003Cp\u003ENext is a minor feature that has huge feel--image loading. I overhauled the image loading code to be much smoother. Images fade in and the lazy loading is much more performant. You should immediately notice the difference. Along with this image loading, a lot of the readers got bugfixes and attention to close out some of the bugs that were reported.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/Kareadita/Kavita/assets/735851/ca267333-82b1-4292-863a-a2565dfef029\u0022 alt=\u0022284079184-1468a1ad-66ab-48c6-a7dd-a9f8a6fbe696\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003ELastly, let\u0027s talk about Smart Filters. As we all know, I had to do a few hotfixes due to some code around the smart filters and unfortunately, there were still more bugs in the system. This release should have all the bugs worked out. The testers and I really ensured it\u0027s working well. I wrote a migration to try and reduce data loss, but you might find some filters are broken. This is the cost of writing over 10K lines of new code around one feature and only 2 users helping with testing (\u003Cstrong\u003ESeriously, we \u003Cem\u003Eneed\u003C/em\u003E help, please join our nightly testing channel and help out\u003C/strong\u003E).\u003C/p\u003E\n\u003Cp\u003EAside from the encoding issues, I realized that not all Smart filters need to be binded to the side nav or dashboard. I ended up building quite a few utility filters to identify series that have missing metadata, series that I started reading but forgot about, etc. With this release, in the user settings dropdown (top right of screen), you can now view all your Smart Filters and load them quickly.\u003C/p\u003E\n\u003Cp\u003EOne last thing I want to call out for those that read all the changes. I did a ton of polishing on the Publication Status code for a series to make it smarter than before. Books with just one book or series that are just a single special will mark as Completed. Kavita will fallback much better for Series that have a total Count in how it matches against Volumes or Chapters. These will need a force scan to pickup, but I think overall, leads to a much better experience.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: You can now see your total progress in the series from within the manga/image reader.\u003C/li\u003E\n\u003Cli\u003EAdded: Added a Smart Filters page so you can see all your filters and click to load them. The new page is accessed from your user settings (top right dropdown on nav). The smart filter will show red if the filter was not able to be migrated and needs to be recreated by you.\u003C/li\u003E\n\u003Cli\u003EAdded: New Library Type for Image. \u003Cstrong\u003EThis is a placeholder while I gather \u003Ca href=\u0022https://github.com/Kareadita/Kavita/issues/2460\u0022\u003Efeedback\u003C/a\u003E to avoid a bug in non-image types. If you are a primary user of loose leaf image series, please try this out with a test library. This library type may be removed in the future without a data migration. This is exclusively here to gather feedback after solutioning Loose leaf image issues from the open discussion.\u003C/strong\u003E\u003C/li\u003E\n\u003Cli\u003EAdded: Epub\u0027s marc role of creator now maps to writer\u003C/li\u003E\n\u003Cli\u003EAdded: Library Settings now has File types setting which allows you to turn on/off different types of file types from the scanner.\u003C/li\u003E\n\u003Cli\u003EAdded: Library Settings now has an exclude patterns control which allows you to ignore folders or file patterns.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to search for bookmarked series and open up the bookmark reader directly (this is image based bookmarks)\u003C/li\u003E\n\u003Cli\u003EAdded: Added a nightly task (cleanup task) that will ensure all user\u0027s progress on a chapter is at max the chapter\u0027s pages, in the case it was replaced with one that has less pages.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: All filtering encode/decode code is now purely in the backend. There is no noticeable differences when interacting with the filter. This will avoid a lot of headache with the filtering system.\u003C/li\u003E\n\u003Cli\u003EChanged: All Series page will now render out the title of the smart filter if it\u0027s set instead of All Series.\u003C/li\u003E\n\u003Cli\u003EChanged: Manage users page in admin dashboard has a new look and feel\u003C/li\u003E\n\u003Cli\u003EChanged: Added a fade in and changed the way Kavita lazy loads images for a much better experience (large improvement on all series page as well)\u003C/li\u003E\n\u003Cli\u003EChanged: Icon buttons will now longer show an active state when focused\u003C/li\u003E\n\u003Cli\u003EChanged: Replaced the underlying library for Reading Day breakdown chart\u003C/li\u003E\n\u003Cli\u003EChanged: On Desktop, by default all series metadata will show (for series metadata). \u003Cstrong\u003EI\u0027m looking for feedback from users.\u003C/strong\u003E\u003C/li\u003E\n\u003Cli\u003EChanged: Series detail metadata (summary and tags) will now be expanded to a limit by default on desktop. \u003Cstrong\u003EI\u0027m looking for feedback from users.\u003C/strong\u003E\u003C/li\u003E\n\u003Cli\u003EChanged: Metadata filter now animates as it expands/collapses\u003C/li\u003E\n\u003Cli\u003EChanged: Optimized dashboard page to allow better stream loading so there is less jank\u003C/li\u003E\n\u003Cli\u003EChanged: Migrated to using a lighter way of loading lazy loaded modules\u003C/li\u003E\n\u003Cli\u003EChanged: Updated some logs so we can avoid a potential log injection\u003C/li\u003E\n\u003Cli\u003EChanged: Improved the webtoon reader to better find where you are after quickly scrolling.\u003C/li\u003E\n\u003Cli\u003EChanged: Next estimated chapter will not show the time anymore\u003C/li\u003E\n\u003Cli\u003EChanged: Card titles are now center aligned by default\u003C/li\u003E\n\u003Cli\u003EChanged: On cards, don\u0027t show the progress bar unless there is at least one page read\u003C/li\u003E\n\u003Cli\u003EChanged: Cover chooser no longer has an apply button. Upon adding or selecting a cover, it will instantly take effect.\u003C/li\u003E\n\u003Cli\u003EChanged: Made the jump bar transition instant which feels much better with the new image loading.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated Angular to v17\u003C/li\u003E\n\u003Cli\u003EChanged: Next estimated chapter now looks much better\u003C/li\u003E\n\u003Cli\u003EChanged: Changed how loose-leaf images are parsed within Kavita to work much better and fallback to more natural grouping. They will now grab the series name from the folder name, use any in-between folders for extracting volume/chapter numbers and if none found, treat the image as a special. (Thank you to users that commented on the discussion issue)\u003C/li\u003E\n\u003Cli\u003EChanged: Next Estimated Chapter title is now shorthand and localized, in case your locale doesn\u0027t use ~ or it doesn\u0027t go before the date\u003C/li\u003E\n\u003Cli\u003EChanged: User settings tabs now defer load, meaning a probably very slight speed increase on slower networks\u003C/li\u003E\n\u003Cli\u003EChanged: Spruced up the Image Parser to handle more volume and chapter parsing from filenames when it\u0027s needed.\u003C/li\u003E\n\u003Cli\u003EChanged: .kavitaignore files have been deprecated and will log a warning to the logs whenever one is found. They will currently still function but be removed in the v0.8 release.\u003C/li\u003E\n\u003Cli\u003EChanged: On smaller viewports, modals will open in fullscreen.\u003C/li\u003E\n\u003Cli\u003EChanged: Next Chapter is now Upcoming to better indicate what the feature does\u003C/li\u003E\n\u003Cli\u003EChanged: epub reader now has a close book within the settings itself\u003C/li\u003E\n\u003Cli\u003EChanged: Major performance enhancements done to the update series metadata API which should help when Komf hammers the API when Kavita adds a large amount of new series\u003C/li\u003E\n\u003Cli\u003EChanged: (Scanner) If a series has a total count of 1 and there is only a special, consider the publication status completed (good for omnibus releases).\u003C/li\u003E\n\u003Cli\u003EChanged: On smaller viewports, the customize dashboard/sidenav screen has drag\u0027n\u0027drop disabled.\u003C/li\u003E\n\u003Cli\u003EChanged: Improved some image loading code in the Manga reader to help with slow loading images causing the reader to pause or show a black page. This is not fully complete, just a bit better.\u003C/li\u003E\n\u003Cli\u003EChanged: Series relations in the dropdown are now alphabetically sorted\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Want to read wasn\u0027t scrobbling to AniList\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where bookmarks page wasn\u0027t actually getting the series back from the API.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed bad encodings with smart filters across UI/Backend\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug on calculating average reading hours per week. Thanks @duplaja for the help on the math.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed pagination not working consistently in scroll mode due to some changes a few releases ago in Epub reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug that when you had the line overlay in epub reader, when you hit escape it closed the book instead of first closing the overlay.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where directory picker was not listing when no path passed\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Kavita was too aggressive to complete a series. It is back to explicitly needing to match total count.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where publication status was getting set to Ended when it shouldn\u0027t. Ended should only be set when there is at least a Count within any chapter.\u003C/li\u003E\n\u003Cli\u003EFixed: Lots of localization areas were updated with missing keys\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a long standing, difficult bug where on docker, when adding a book to an existing series, the series read time could get set to \u0026lt; 1 hour.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed book-reader skipping the end of chapters in 2 column mode (Thank you @Hobogrammer)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug in nightly where clicking on menu/actionbar could trigger pagination in the epub reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case where the filter didn\u0027t have the correct comparison when switching from a multi-select to a single string type.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a database foreign constraint issue (in most cases, this is fixed. A few edge cases still exist). This fix comes at the cost of the first scan being 50% slower and subsequent scans slightly slower to process.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where directory picker typeahead was not opening correctly\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where email links can have only https:/ instead of https://\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed all people fields in Edit Series not reflecting the locked status. All locked fields are now singular.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where single epubs without a volume or chapter number in their title could get marked as non-special and thus not render on the series detail page (or render twice)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed publication status to have an override for calculation by checking if there is only 1 book and the type is epub/pdf, then setting it to Completed\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where searching for a person and clicking said search result wouldn\u0027t load up the filtered screen.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where scanning a series wouldn\u0027t properly update the cover when applicable\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue when scanning a series, 2 additional tasks would be done (word count and cover gen) when only one of each was needed.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where you could move 2 pages in immersion mode with the action bar menu open\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a ton of bugs in the epub reader around paging when you wouldn\u0027t expect to\u003C/li\u003E\n\u003Cli\u003EFixed: When busting Kavita\u002B cache, also bust recommendations\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case where a logged in user would setup a user account then hit back and their side nav would not restore.\u003C/li\u003E\n\u003Cli\u003EFixed: (Kavita\u002B) Fixed a bug where if you add and remove a series multiple times from want to read, before scrobbling Kavita identifies the correct end state and scrobbles that, but those other events never got marked as processed.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAPI\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EPOST /series/metadata payload has been updated so locked fields for people (writersLocked) are now singular (writerLocked).\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.11 - 3 Years of Development",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.11",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-12-03T21:15:49Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "You can now see your total progress in the series from within the manga/image reader.",
      "Added a Smart Filters page so you can see all your filters and click to load them. The new page is accessed from your user settings (top right dropdown on nav). The smart filter will show red if the filter was not able to be migrated and needs to be recreated by you.",
      "New Library Type for Image. **This is a placeholder while I gather [feedback](https://github.com/Kareadita/Kavita/issues/2460) to avoid a bug in non-image types. If you are a primary user of loose leaf image series, please try this out with a test library. This library type may be removed in the future without a data migration. This is exclusively here to gather feedback after solutioning Loose leaf image issues from the open discussion.**",
      "Epub\u0027s marc role of creator now maps to writer",
      "Library Settings now has File types setting which allows you to turn on/off different types of file types from the scanner.",
      "Library Settings now has an exclude patterns control which allows you to ignore folders or file patterns.",
      "Added the ability to search for bookmarked series and open up the bookmark reader directly (this is image based bookmarks)",
      "Added a nightly task (cleanup task) that will ensure all user\u0027s progress on a chapter is at max the chapter\u0027s pages, in the case it was replaced with one that has less pages."
    ],
    "Removed": [],
    "Changed": [
      "All filtering encode/decode code is now purely in the backend. There is no noticeable differences when interacting with the filter. This will avoid a lot of headache with the filtering system.",
      "All Series page will now render out the title of the smart filter if it\u0027s set instead of All Series.",
      "Manage users page in admin dashboard has a new look and feel",
      "Added a fade in and changed the way Kavita lazy loads images for a much better experience (large improvement on all series page as well)",
      "Icon buttons will now longer show an active state when focused",
      "Replaced the underlying library for Reading Day breakdown chart",
      "On Desktop, by default all series metadata will show (for series metadata). **I\u0027m looking for feedback from users.**",
      "Series detail metadata (summary and tags) will now be expanded to a limit by default on desktop. **I\u0027m looking for feedback from users.**",
      "Metadata filter now animates as it expands/collapses",
      "Optimized dashboard page to allow better stream loading so there is less jank",
      "Migrated to using a lighter way of loading lazy loaded modules",
      "Updated some logs so we can avoid a potential log injection",
      "Improved the webtoon reader to better find where you are after quickly scrolling.",
      "Next estimated chapter will not show the time anymore",
      "Card titles are now center aligned by default",
      "On cards, don\u0027t show the progress bar unless there is at least one page read",
      "Cover chooser no longer has an apply button. Upon adding or selecting a cover, it will instantly take effect.",
      "Made the jump bar transition instant which feels much better with the new image loading.",
      "Updated Angular to v17",
      "Next estimated chapter now looks much better",
      "Changed how loose-leaf images are parsed within Kavita to work much better and fallback to more natural grouping. They will now grab the series name from the folder name, use any in-between folders for extracting volume/chapter numbers and if none found, treat the image as a special. (Thank you to users that commented on the discussion issue)",
      "Next Estimated Chapter title is now shorthand and localized, in case your locale doesn\u0027t use ~ or it doesn\u0027t go before the date",
      "User settings tabs now defer load, meaning a probably very slight speed increase on slower networks",
      "Spruced up the Image Parser to handle more volume and chapter parsing from filenames when it\u0027s needed.",
      ".kavitaignore files have been deprecated and will log a warning to the logs whenever one is found. They will currently still function but be removed in the v0.8 release.",
      "On smaller viewports, modals will open in fullscreen.",
      "Next Chapter is now Upcoming to better indicate what the feature does",
      "epub reader now has a close book within the settings itself",
      "Major performance enhancements done to the update series metadata API which should help when Komf hammers the API when Kavita adds a large amount of new series",
      "(Scanner) If a series has a total count of 1 and there is only a special, consider the publication status completed (good for omnibus releases).",
      "On smaller viewports, the customize dashboard/sidenav screen has drag\u0027n\u0027drop disabled.",
      "Improved some image loading code in the Manga reader to help with slow loading images causing the reader to pause or show a black page. This is not fully complete, just a bit better.",
      "Series relations in the dropdown are now alphabetically sorted"
    ],
    "Fixed": [
      "(Kavita\u002B) Want to read wasn\u0027t scrobbling to AniList",
      "Fixed a bug where bookmarks page wasn\u0027t actually getting the series back from the API.",
      "Fixed bad encodings with smart filters across UI/Backend",
      "Fixed a bug on calculating average reading hours per week. Thanks @duplaja for the help on the math.",
      "Fixed pagination not working consistently in scroll mode due to some changes a few releases ago in Epub reader",
      "Fixed a bug that when you had the line overlay in epub reader, when you hit escape it closed the book instead of first closing the overlay.",
      "Fixed a bug where directory picker was not listing when no path passed",
      "Fixed a bug where Kavita was too aggressive to complete a series. It is back to explicitly needing to match total count.",
      "Fixed a bug where publication status was getting set to Ended when it shouldn\u0027t. Ended should only be set when there is at least a Count within any chapter.",
      "Lots of localization areas were updated with missing keys",
      "Fixed a long standing, difficult bug where on docker, when adding a book to an existing series, the series read time could get set to \u003C 1 hour.",
      "Fixed book-reader skipping the end of chapters in 2 column mode (Thank you @Hobogrammer)",
      "Fixed a bug in nightly where clicking on menu/actionbar could trigger pagination in the epub reader",
      "Fixed an edge case where the filter didn\u0027t have the correct comparison when switching from a multi-select to a single string type.",
      "Fixed a database foreign constraint issue (in most cases, this is fixed. A few edge cases still exist). This fix comes at the cost of the first scan being 50% slower and subsequent scans slightly slower to process.",
      "Fixed a bug where directory picker typeahead was not opening correctly",
      "Fixed an issue where email links can have only https:/ instead of https://",
      "Fixed all people fields in Edit Series not reflecting the locked status. All locked fields are now singular.",
      "Fixed a bug where single epubs without a volume or chapter number in their title could get marked as non-special and thus not render on the series detail page (or render twice)",
      "Fixed publication status to have an override for calculation by checking if there is only 1 book and the type is epub/pdf, then setting it to Completed",
      "Fixed a bug where searching for a person and clicking said search result wouldn\u0027t load up the filtered screen.",
      "Fixed a bug where scanning a series wouldn\u0027t properly update the cover when applicable",
      "Fixed an issue when scanning a series, 2 additional tasks would be done (word count and cover gen) when only one of each was needed.",
      "Fixed a bug where you could move 2 pages in immersion mode with the action bar menu open",
      "Fixed a ton of bugs in the epub reader around paging when you wouldn\u0027t expect to",
      "When busting Kavita\u002B cache, also bust recommendations",
      "Fixed an edge case where a logged in user would setup a user account then hit back and their side nav would not restore.",
      "(Kavita\u002B) Fixed a bug where if you add and remove a series multiple times from want to read, before scrobbling Kavita identifies the correct end state and scrobbles that, but those other events never got marked as processed."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [
      "POST /series/metadata payload has been updated so locked fields for people (writersLocked) are now singular (writerLocked)."
    ],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003E\u003Cstrong\u003EWarning: There is a bug identified that causes minor data skewing. An update will be published soon (before 8th) with the hotfix. If you have updated, copy one of your backups from config/backups for the day of the update and restore the DB.\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003E12/5 - Assets have been swapped\u003C/strong\u003E\u003C/p\u003E\n\u003Cp\u003EWith this release, I\u0027ve hit 3 years of developing Kavita. Originally starting out after using Ubooquity and feeling limited by the lack of metadata and other solutions not aligning with my sense of UX, I started this project as a personal project to not only have a simple reader and organizer like Plex, but also learn .NET. Fast forward to now and Kavita has grown to be a name brand product and my vision has drastically expanded from a simple self project to becoming the Plex of the reading world. After 3 years of building this project solo (with some help from a few users here and there), I would think it would be nearly complete, yet I find myself with more work than ever as the ideas keep flowing.\u003C/p\u003E\n\u003Cp\u003EBefore we jump into this release, let\u0027s take a look back at some of the major features I\u0027ve released this year:\u003C/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EUser and Server Stats (160 hours)\u003C/li\u003E\n\u003Cli\u003EDouble Page reader (100 hours)\u003C/li\u003E\n\u003Cli\u003ECBL \u0026amp; Reading List Improvements (40 hours)\u003C/li\u003E\n\u003Cli\u003EVertical Reading support in Epub reader\u003C/li\u003E\n\u003Cli\u003EBase URL Support\u003C/li\u003E\n\u003Cli\u003EWebP and AVIF support\u003C/li\u003E\n\u003Cli\u003EKavita\u002B (and the review overhaul that went along with it) (600\u002B hours)\u003C/li\u003E\n\u003Cli\u003EDynamic covers for collections and reading lists (3 hours)\u003C/li\u003E\n\u003Cli\u003EPersonal Bookmarks in the Epub reader (12 hours)\u003C/li\u003E\n\u003Cli\u003EFull app localization (80 hours)\u003C/li\u003E\n\u003Cli\u003EA complete filtering overhaul with deep customization on how you filter (300 hours)\u003C/li\u003E\n\u003Cli\u003ESmart Filters and customization of your side nav and Dashboard with those streams (300 hours)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Cp\u003EThis year has been huge in terms of delivering features to the users and also the transformation the underlying codebase has undergone to support these features. Overall, I\u0027ve delivered \u003Cstrong\u003E141 new features, 301 changes, and 277 fixes\u003C/strong\u003E. It has been a tremendous year indeed and much appreciation needs to go to @DieselTech and @scare376 who are basically the only nightly testers to test releases before it hits stable and provide a ton of support in the discord.\u003C/p\u003E\n\u003Cp\u003EI\u0027m looking forward to next year where I will finally get to work on some much needed features, like a complete PDF overhaul, kobo sync support, the start of the mobile app, and some really cool Kavita\u002B ideas that I\u0027ve been discussing in the discord (join if you want to give your opinion).\u003C/p\u003E\n\u003Cp\u003EWith that said, this last release I had to take a step back and focus on the polish. There were a few performance issues and styling issues that were starting to nag me and after delivering such a huge update, I needed something a bit easier to relax with. This release is focused on polishing the application and I think this first pass brings a lot of nice smoothing to the edges in the app. I have more planned that I will sprinkle in next year.\u003C/p\u003E\n\u003Cp\u003EFirst up is the .kavitaignore, which is a file you can place within any directory and apply glob syntax patterns which will exclude files and folders. While this is really powerful, it is an advanced feature that many don\u0027t use and requires updating your filesystem. I took a hard look, opened an issue and collected feedback from a few users and decided, let\u0027s bubble up this feature to the UI. .kavitaignore will be removed next year in the v0.8.x series of releases and instead, admins can now use the File Type switches and the Exclude Patterns in the Library Settings modal. I believe this will lead to higher adoption.\u003C/p\u003E\n\u003Cp\u003ENext is a minor feature that has huge feel--image loading. I overhauled the image loading code to be much smoother. Images fade in and the lazy loading is much more performant. You should immediately notice the difference. Along with this image loading, a lot of the readers got bugfixes and attention to close out some of the bugs that were reported.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/Kareadita/Kavita/assets/735851/ca267333-82b1-4292-863a-a2565dfef029\u0022 alt=\u0022284079184-1468a1ad-66ab-48c6-a7dd-a9f8a6fbe696\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003ELastly, let\u0027s talk about Smart Filters. As we all know, I had to do a few hotfixes due to some code around the smart filters and unfortunately, there were still more bugs in the system. This release should have all the bugs worked out. The testers and I really ensured it\u0027s working well. I wrote a migration to try and reduce data loss, but you might find some filters are broken. This is the cost of writing over 10K lines of new code around one feature and only 2 users helping with testing (\u003Cstrong\u003ESeriously, we \u003Cem\u003Eneed\u003C/em\u003E help, please join our nightly testing channel and help out\u003C/strong\u003E).\u003C/p\u003E\n\u003Cp\u003EAside from the encoding issues, I realized that not all Smart filters need to be binded to the side nav or dashboard. I ended up building quite a few utility filters to identify series that have missing metadata, series that I started reading but forgot about, etc. With this release, in the user settings dropdown (top right of screen), you can now view all your Smart Filters and load them quickly.\u003C/p\u003E\n\u003Cp\u003EOne last thing I want to call out for those that read all the changes. I did a ton of polishing on the Publication Status code for a series to make it smarter than before. Books with just one book or series that are just a single special will mark as Completed. Kavita will fallback much better for Series that have a total Count in how it matches against Volumes or Chapters. These will need a force scan to pickup, but I think overall, leads to a much better experience.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.10.2",
    "UpdateBody": "\u003Cp\u003ESorry for the second hotfix. The first one didn\u0027t take.\u003C/p\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Seriously fixed the invite user flow this time\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a lack of an error being presented to the UI when inviting a user failed\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.10.2 - Hotfix 2",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.10.2",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-10-30T22:13:33Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [],
    "Removed": [],
    "Changed": [],
    "Fixed": [
      "Seriously fixed the invite user flow this time",
      "Fixed a lack of an error being presented to the UI when inviting a user failed"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003ESorry for the second hotfix. The first one didn\u0027t take.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.10.1",
    "UpdateBody": "\u003Cp\u003EUnfortunately in the last release, the fix that I made to smart filters did not take and part of the encoder/decoder broke. This hotfix fixes it, however, you will likely have to manually fix every filter. I really apologize for this, but the underlying issue escaped over a month of testing and the fix was minor but impacting.\u003C/p\u003E\n\u003Cp\u003EIn other news, I worked with Dani this weekend from the Panels team and built a few APIs for them to hook in and report progress to Kavita via the API. This new Panels should be coming in the coming week.\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added APIs for Panels to synchronize progress. This means as of this version, OPDS-PS with Panels explicitly will not automatically track progress.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: Added a saveProgress flag as optional on page streaming links for other apps if they want to suppress the progress saving feature.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed: Fixed a bug from v0.7.10 that caused smart filters to fail to load/save due to encoding issues.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where side nav wasn\u0027t properly using the correct name for rendering\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.10.1 - Hotfix",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.10.1",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-10-29T19:01:08Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added APIs for Panels to synchronize progress. This means as of this version, OPDS-PS with Panels explicitly will not automatically track progress."
    ],
    "Removed": [],
    "Changed": [
      "Added a saveProgress flag as optional on page streaming links for other apps if they want to suppress the progress saving feature."
    ],
    "Fixed": [
      "Fixed: Fixed a bug from v0.7.10 that caused smart filters to fail to load/save due to encoding issues.",
      "Fixed a bug where side nav wasn\u0027t properly using the correct name for rendering"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EUnfortunately in the last release, the fix that I made to smart filters did not take and part of the encoder/decoder broke. This hotfix fixes it, however, you will likely have to manually fix every filter. I really apologize for this, but the underlying issue escaped over a month of testing and the fix was minor but impacting.\u003C/p\u003E\n\u003Cp\u003EIn other news, I worked with Dani this weekend from the Panels team and built a few APIs for them to hook in and report progress to Kavita via the API. This new Panels should be coming in the coming week.\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.10",
    "UpdateBody": "\u003Cp\u003EAnother release so soon? Unfortunately, a critical bug was found from v0.7.9 which prevented inviting new users to Kavita servers which means I had to cut the release short. This release is mainly bug fixes, but there is one new feature for you, which so far from testing is pretty cool.\u003C/p\u003E\n\u003Cp\u003EThis release adds a new feature called Next Estimated Chapter. By using the underlying volumes and chapters in a Series and when Kavita Scanned them, as long as there is enough information and the Series is On Going or Ended, Kavita will calculate when the next chapter/volume should be available to read. The dates are of course estimated and from testing and a lot of math, I believe I\u0027ve accounted for the different acquisition methods to predict a pretty close date. I am also exploring potentially expanding this to provide more accurate dates from external metadata via Kavita\u002B.\u003C/p\u003E\n\u003Cp\u003EThis release also adds some changes to how Kavita talks to the DB to help with some contention. Please raise an issue if you\u0027re suddenly seeing issues in day to day use.\u003C/p\u003E\n\u003Cp\u003EI will likely continue v0.7.11 with more bugfixes, as I\u0027ve let them build up due to building out such big features.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote: There was a build pipeline issue and docker users on the Stable were shipped an early version of the Next Expected Chapter. This release has completely different code\u003C/strong\u003E\u003C/p\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added a button in Tasks to bust locale cache, which can sometimes get stuck\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new chapter/volume card (list view not implemented yet) for Series that are On Going or Ended, that uses the delta times between each chapter being added to estimate when the next chapter should be available on the server.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: When testing email service, when successful, it will return the version number back to you. Email version will not show when using default mailer.\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked the pooling for DB Connections. This should reduce database is locked and other contention issues.\u003C/li\u003E\n\u003Cli\u003EChanged: Don\u0027t create a scrobbling event when there is literally no reading progress\u003C/li\u003E\n\u003Cli\u003EChanged: Favicons on series detail all now have a bit of rounding\u003C/li\u003E\n\u003Cli\u003EChanged: Epub marc:relators will now map illustrator to Inker instead of Letterer\u003C/li\u003E\n\u003Cli\u003EChanged: When you are no longer authenticated in the UI, Kavita no longer pops a toasts and just redirects you\u003C/li\u003E\n\u003Cli\u003EChanged: Email flows will now check the email to see if it\u0027s in a valid format. If not, it will skip any email code and let you know that due to not having a valid-looking email, no email is sent and check the logs.\u003C/li\u003E\n\u003Cli\u003EChanged: Tweaked the wording for invite user modal.\u003C/li\u003E\n\u003Cli\u003EChanged: After inviting a user, the invite modal will hide the instructions from the pre-invite step.\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) If scrobbling a series that is already completed in AniList and Kavita is not completed, Kavita\u002B will no longer update the status to in progress.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated Translations\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed a bug where a Ended series could get flagged as Completed Publication Status\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where sorting by Last Read progress could incorrectly order the series if another user had recently read that Series.\u003C/li\u003E\n\u003Cli\u003Ethat Series.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where Smart Filters that had a value with a space would resume as a Smart Filter with \u002B, thus breaking the filter.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where table of contents in dark mode in the pdf reader wouldn\u0027t be readable\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the filter wouldn\u0027t reflect the correct sorting icon when loading a smart filter\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where email links could generate with // in them\u003C/li\u003E\n\u003Cli\u003EFixed: Don\u0027t allow the scanner to accept any themes with a space in their filename\u003C/li\u003E\n\u003Cli\u003EFixed: When saving an email url, ensure ending / is removed\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a parsing issue on non-English systems where ComicInfo had a , instead of a .\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Series last read date could be updated just by opening a chapter in the reader\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an annoying issue where non-English OS Locale\u0027s could have weird grouping with chapters that are not whole numbers\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where favicons that have a url starting with \u003Ca href=\u0022http://www/\u0022\u003Ewww\u003C/a\u003E. wasn\u0027t properly saving to directory\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where notification in events widget when there was a problem reading epub word count didn\u0027t show the filename like it should have. Same issue with when a Series has an issue, the series name wasn\u0027t being shown.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where side nav wasn\u0027t refreshing automatically when a user renamed a library\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the typeahead in Series Metadata would blank out the field when adding 2 new tags in one go\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue in cover chooser for a volume where the first try it wouldn\u0027t save the cover image\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where the redirection after needing manual authentication wasn\u0027t working\u003C/li\u003E\n\u003Cli\u003EFixed: Some users complained that locale was missing when saving preferences from the reader.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an edge case where a series of only volumes and a special, the special would be chosen for Series Metadata\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a critical issue where new users weren\u0027t able to be created due to a constraint with default streams.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed some bad series name parsing with pure Korean filenames.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up some minor styling issues on the admin dashboard.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ERemoved\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ERemoved: Removed a bunch of migrations from v0.7.2 through v0.7.6\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.10 - Bugfixes",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.10",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-10-28T17:08:02Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added a button in Tasks to bust locale cache, which can sometimes get stuck",
      "Added a new chapter/volume card (list view not implemented yet) for Series that are On Going or Ended, that uses the delta times between each chapter being added to estimate when the next chapter should be available on the server."
    ],
    "Removed": [
      "Removed a bunch of migrations from v0.7.2 through v0.7.6"
    ],
    "Changed": [
      "When testing email service, when successful, it will return the version number back to you. Email version will not show when using default mailer.",
      "Tweaked the pooling for DB Connections. This should reduce database is locked and other contention issues.",
      "Don\u0027t create a scrobbling event when there is literally no reading progress",
      "Favicons on series detail all now have a bit of rounding",
      "Epub marc:relators will now map illustrator to Inker instead of Letterer",
      "When you are no longer authenticated in the UI, Kavita no longer pops a toasts and just redirects you",
      "Email flows will now check the email to see if it\u0027s in a valid format. If not, it will skip any email code and let you know that due to not having a valid-looking email, no email is sent and check the logs.",
      "Tweaked the wording for invite user modal.",
      "After inviting a user, the invite modal will hide the instructions from the pre-invite step.",
      "(Kavita\u002B) If scrobbling a series that is already completed in AniList and Kavita is not completed, Kavita\u002B will no longer update the status to in progress.",
      "Updated Translations"
    ],
    "Fixed": [
      "Fixed a bug where a Ended series could get flagged as Completed Publication Status",
      "Fixed an issue where sorting by Last Read progress could incorrectly order the series if another user had recently read that Series.",
      "that Series.",
      "Fixed an issue where Smart Filters that had a value with a space would resume as a Smart Filter with \u002B, thus breaking the filter.",
      "Fixed an issue where table of contents in dark mode in the pdf reader wouldn\u0027t be readable",
      "Fixed a bug where the filter wouldn\u0027t reflect the correct sorting icon when loading a smart filter",
      "Fixed an issue where email links could generate with // in them",
      "Don\u0027t allow the scanner to accept any themes with a space in their filename",
      "When saving an email url, ensure ending / is removed",
      "Fixed a parsing issue on non-English systems where ComicInfo had a , instead of a .",
      "Fixed a bug where Series last read date could be updated just by opening a chapter in the reader",
      "Fixed an annoying issue where non-English OS Locale\u0027s could have weird grouping with chapters that are not whole numbers",
      "Fixed an issue where favicons that have a url starting with [www](http://www/). wasn\u0027t properly saving to directory",
      "Fixed a bug where notification in events widget when there was a problem reading epub word count didn\u0027t show the filename like it should have. Same issue with when a Series has an issue, the series name wasn\u0027t being shown.",
      "Fixed a bug where side nav wasn\u0027t refreshing automatically when a user renamed a library",
      "Fixed a bug where the typeahead in Series Metadata would blank out the field when adding 2 new tags in one go",
      "Fixed an issue in cover chooser for a volume where the first try it wouldn\u0027t save the cover image",
      "Fixed a bug where the redirection after needing manual authentication wasn\u0027t working",
      "Some users complained that locale was missing when saving preferences from the reader.",
      "Fixed an edge case where a series of only volumes and a special, the special would be chosen for Series Metadata",
      "Fixed a critical issue where new users weren\u0027t able to be created due to a constraint with default streams.",
      "Fixed some bad series name parsing with pure Korean filenames.",
      "Fixed up some minor styling issues on the admin dashboard."
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [],
    "BlogPart": "\u003Cp\u003EAnother release so soon? Unfortunately, a critical bug was found from v0.7.9 which prevented inviting new users to Kavita servers which means I had to cut the release short. This release is mainly bug fixes, but there is one new feature for you, which so far from testing is pretty cool.\u003C/p\u003E\n\u003Cp\u003EThis release adds a new feature called Next Estimated Chapter. By using the underlying volumes and chapters in a Series and when Kavita Scanned them, as long as there is enough information and the Series is On Going or Ended, Kavita will calculate when the next chapter/volume should be available to read. The dates are of course estimated and from testing and a lot of math, I believe I\u0027ve accounted for the different acquisition methods to predict a pretty close date. I am also exploring potentially expanding this to provide more accurate dates from external metadata via Kavita\u002B.\u003C/p\u003E\n\u003Cp\u003EThis release also adds some changes to how Kavita talks to the DB to help with some contention. Please raise an issue if you\u0027re suddenly seeing issues in day to day use.\u003C/p\u003E\n\u003Cp\u003EI will likely continue v0.7.11 with more bugfixes, as I\u0027ve let them build up due to building out such big features.\u003C/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ENote: There was a build pipeline issue and docker users on the Stable were shipped an early version of the Next Expected Chapter. This release has completely different code\u003C/strong\u003E\u003C/p\u003E\n"
  },
  {
    "CurrentVersion": "0.9.0.2",
    "UpdateVersion": "0.7.9",
    "UpdateBody": "\u003Cp\u003Ev0.7.9 is here and brings along with it major changes in the customization that Kavita provides it\u0027s users out of the box. This has been something I\u0027ve been wanting to work on for over a year now, but as with all things, finding time and balancing new features and their order doesn\u0027t always go as planned.\u003C/p\u003E\n\u003Cp\u003EThis release brings 3 major customization features: Dashboard, Side Nav, and External Sources plus Series Preview for Kavita\u002B users. These features are for all users, not just admins. Let\u0027s dive in.\u003C/p\u003E\n\u003Ch2\u003EDashboard\u003C/h2\u003E\n\u003Cp\u003EHave you ever wanted On Deck to work differently? Do you not need Newly Added series on your dashboard or perhaps want a filtered list of series easily available? This feature is for you. As of this release, you can first build a custom filter and save it as a Smart Filter. This is a live filter that can be modified at any time and will reflect everywhere it\u0027s binded. From the Home Side Nav item, click the actionable dots and then Customize. You can now turn the visibility on/off of Kavita provided Streams, add your own smart filters to your Dashboard and even reorder everything.\u003C/p\u003E\n\u003Ch2\u003ESide Nav\u003C/h2\u003E\n\u003Cp\u003ENot only do we have a customized dashboard, but the side nav got some love as well. If you\u0027re a large comic collector, you\u0027ll know that the best practice is to split your series into libraries by Publisher (to avoid collision on the same series name released in different years). This can be frustrating as that leaves you with over 200 different libraries and adds so much clutter on your screen.\u003C/p\u003E\n\u003Cp\u003EThis new feature changes that. First, only 10 items will ever render by default with a More button to show more items under the fold, taking inspiration from YouTube and Plex. Then, like with Dashboard customization, you can reorder, bind smart filters, or turn on/off the visibility of some libraries. Bulk selection tools are available to help those users with many libraries.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/Kareadita/Kavita/assets/735851/7c4c7ff0-7a85-4186-a0b2-e34ab8a73904\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Ch2\u003EExternal Sources\u003C/h2\u003E\n\u003Cp\u003EExternal sources plays on the Side Nav customization by allowing you to setup a link on your side nav that upon being clicked will open your friend\u0027s server up already authenticated as you. This is just the start, after rolling this out to our nightly users discussion sparked and in the future I will be adding the ability to allow searching media in your friend\u0027s server directly from your own instance (Kavita\u002B only).\u003C/p\u003E\n\u003Ch2\u003ESeries Preview (Kavita\u002B)\u003C/h2\u003E\n\u003Cp\u003EFor those that have Kavita\u002B, they are likely very familiar with the Recommendations tab. When looking at recommendations, you will see your own Series that you own and external ones (if you are an admin). The problem is, it\u0027s a bit annoying clicking on each external series, switching tabs, reading about it, then coming back to Kavita. So I fixed that. Now, a drawer will open and bring that metadata to you, making it quick for you to read about the series right from within Kavita.\u003C/p\u003E\n\u003Cp\u003E\u003Cimg src=\u0022https://github.com/Kareadita/Kavita/assets/735851/4fdbd562-bbf5-4fdf-9bdb-28b4436e1660\u0022 alt=\u0022image\u0022 /\u003E\u003C/p\u003E\n\u003Cp\u003EThis release has been pretty large in terms of the features and refactoring that had to be done to bring these features to you all. Just the side nav rework took 6k lines of code to do :/ I\u0027m extremely pleased with how my vision came to fruition and look forward to seeing the customizations you all create. The next release should be the last of the v0.7.x series of releases and is the last foundational piece that has to happen before I can do any work on the mobile app.\u003C/p\u003E\n\u003Ch1\u003EImportant Announcements\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EWith Smart Filters released, I want to see what creations you can come up with. Join us in by taking a pic of your smart filter creations and sharing them with the community \u003Ca href=\u0022https://discord.gg/kavita-821879810934439936\u0022\u003Ehere\u003C/a\u003E. If you find something missing to let you express yourself, please raise a thread in our new \u003Ca href=\u0022https://discord.gg/xAeQWEEuKK\u0022\u003Efeature-requests channel\u003C/a\u003E.\u003C/li\u003E\n\u003Cli\u003EThis is the last call to voice your opinion on if Image-based series are removed as a feature from Kavita. Please add your voice \u003Ca href=\u0022https://github.com/Kareadita/Kavita/issues/2154\u0022\u003Ehere\u003C/a\u003E if you need this functionality, otherwise, upvote the original post if you don\u0027t need or agree with removal.\u003C/li\u003E\n\u003Cli\u003EThe wiki for once is up to date with information around these new features. Check out how \u003Ca href=\u0022https://wiki.kavitareader.com/en/guides/customization\u0022\u003Ecustomizations work\u003C/a\u003E or how the reworked \u003Ca href=\u0022https://wiki.kavitareader.com/en/guides/get-started-using-your-library/filtering\u0022\u003Emetadata filtering\u003C/a\u003E from last release works.\u003C/li\u003E\n\u003Cli\u003E\u003Cstrong\u003ENote: All docker images (kizaing) have been moved to jvmilazz0/kavita, jvmilazz0/kavitaemail. Please make sure you switch over to this repository going forward\u003C/strong\u003E\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EAdded\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdded: Added the ability to save metadata filters into a Smart Filter. This is a dynamic query that can be bound to your dashboard.\u003C/li\u003E\n\u003Cli\u003EAdded: All users can now customize their own dashboard and re-order the streams Kavita provides out of the box, turn them on/off, and bind your Smart Filters to your dashboard.\u003C/li\u003E\n\u003Cli\u003EAdded: You can now re-order, turn on/off libraries, system default side nav items and add your own smart filters and external sources (see below) to the side nav.\u003C/li\u003E\n\u003Cli\u003EAdded: Added the ability to link to external sources (aka server\u0027s your friends may host). These can then be bound to your Sidenav and provide a one click to that server which will auto login.\u003C/li\u003E\n\u003Cli\u003EAdded: New API (plugin/version) which can use the api key to get the current Kavita install version.\u003C/li\u003E\n\u003Cli\u003EAdded: Added WantToRead filter so SmartFilters can be created that utilize want to read status in creative ways.\u003C/li\u003E\n\u003Cli\u003EAdded: OPDS now has a dedicated section for SmartFilters\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new Sort By for Reading Progress\u003C/li\u003E\n\u003Cli\u003EAdded: Added a new Filter Field (and Input type) to select Series based on Last Read time of the user. This new field uses a date picker so you can build filters like: Series that haven\u0027t been read since 1/1/2023 that have over 80% progress on ordered by most progress to least aka a \u0027Finish it Off list\u0027\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Added an up-sell to 1 year per some users requests. New payment link set.\u003C/li\u003E\n\u003Cli\u003EAdded: Kavita\u002B users can now preview local and external series with more metadata by clicking a recommendation card. This new drawer will allow users to get a quick glance of information. You can still open the new browser tab from the drawer or directly from the card. As data is cached in Kavita\u002B API, it may take some time for extended details to propagate.\u003C/li\u003E\n\u003Cli\u003EAdded: Plugin Authenticate and Version APIs will now capture unauthorized rejections and log out to config/logs/security.log. APIs that perform this logging are documented.\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) Users can now add a local recommendation to their Want to Read list directly from the Series Preview drawer\u003C/li\u003E\n\u003Cli\u003EAdded: (Kavita\u002B) When previewing a local series from Recommendations tab, if the local series is lacking metadata (at least summary and genres need to be present), then external metadata will be used.\u003C/li\u003E\n\u003Cli\u003EAdded: When a user logs in, log their IP\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EChanged\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EChanged: OPDS will now mimic applicable ordering and streams from your Dashboard. Note: More In Genre and Recently Updated are not supported. Likewise, OPDS All Libraries will now order in the order of your Side Nav.\u003C/li\u003E\n\u003Cli\u003EChanged: Selected options from filter\u0027s typeahead wont show as an option anymore.\u003C/li\u003E\n\u003Cli\u003EChanged: Some filter fields will now show the unit on the UI to help users understand how it functions\u003C/li\u003E\n\u003Cli\u003EChanged: Kavita now logs extra information and in different conditions when a login fails\u003C/li\u003E\n\u003Cli\u003EChanged: Ignore #recycle directories, which is a special folder on Synology\u003C/li\u003E\n\u003Cli\u003EChanged: Floats are allowed for reading progress inputs\u003C/li\u003E\n\u003Cli\u003EChanged: Added a note about folder watching waiting 10 mins to trigger in library settings\u003C/li\u003E\n\u003Cli\u003EChanged: When a book does not contain a volume number or have volume in the filename, consider it standalone and as such, mark it as Completed Publication Status.\u003C/li\u003E\n\u003Cli\u003EChanged: Side Nav now only shows Home \u002B 10 other items. Other items are found behind the More fold.\u003C/li\u003E\n\u003Cli\u003EChanged: Allow API key/OPDS url component to toggle show/hide instead of the previous just showing.\u003C/li\u003E\n\u003Cli\u003EChanged: Updated underlying PDF library to latest\u003C/li\u003E\n\u003Cli\u003EChanged: Filter fields are now sorted alphabetically\u003C/li\u003E\n\u003Cli\u003EChanged: Giant Size format from ComicInfo will now be treated as a special\u003C/li\u003E\n\u003Cli\u003EChanged: (Kavita\u002B) Review\u0027s will now be rejected from creating a scrobble event if they wont meet AniList\u0027s criteria. This will be changed in future if more scrobble providers are added.\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EFixed\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003EFixed: Fixed stats tab acting up from injection in Stable\u003C/li\u003E\n\u003Cli\u003EFixed: Floating point tolerance for reading percentage when using Read Progress Filter\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where some OS don\u0027t support all locales by default. For those, catch any exceptions and default to the raw language code.\u003C/li\u003E\n\u003Cli\u003EFixed: Summary wasn\u0027t being sent to the backend for filtering\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where non-admins could see Scan on the library actionables (but not actually invoke it)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where tablet viewports couldn\u0027t open the metadata filter\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up a lot of the css around the filters.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up a bug where filter would un-collapse even though we were using a drawer.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where the manga reader could get delayed when rendering the next page due to slow network activity because it was waiting for the last prefetch page to load instead of moving to the prefetched page immediately.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed external rating tooltip not showing the title of Google Books\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bad parser case where volume num could get parsed as chapter num.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed up a lot of missing localization strings\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where Not Contains on Tags and People wasn\u0027t behaving correctly (Thanks @CianH for the PR)\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where images in the release notes on update notification modal would go outside the modal\u0027s width.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bunch of locations where UTC dates had the wrong time\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where users with no libraries shared could actually obtain access to series from non-shared libraries\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed an issue where after you update your settings, the new preferences didn\u0027t send back with the refresh account api and thus locale switching didn\u0027t work correctly.\u003C/li\u003E\n\u003Cli\u003EFixed: Fixed a bug where virtualized lists were not having the correct order for order numbers mode. (reading list detail page when over 100 items)\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003ERemoved\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ERemoved: Recommended tab on Library detail is now removed. Everything can be created as a Smart Filter.\u0027\u003C/li\u003E\n\u003C/ul\u003E\n\u003Ch1\u003EKnown Issues\u003C/h1\u003E\n\u003Cul\u003E\n\u003Cli\u003ESome users are facing issues where strings aren\u0027t rendering correctly due to the old locale from v0.7.8 being used. You can fix this by clearing Cookies on your Kavita site then refreshing your Browser.\u003C/li\u003E\n\u003C/ul\u003E\n",
    "UpdateTitle": "v0.7.9 - Customization",
    "UpdateUrl": "https://github.com/Kareadita/Kavita/releases/tag/v0.7.9",
    "IsDocker": true,
    "IsPrerelease": false,
    "PublishDate": "2023-10-20T12:54:54Z",
    "IsOnNightlyInRelease": false,
    "IsReleaseNewer": false,
    "IsReleaseEqual": false,
    "Added": [
      "Added the ability to save metadata filters into a Smart Filter. This is a dynamic query that can be bound to your dashboard.",
      "All users can now customize their own dashboard and re-order the streams Kavita provides out of the box, turn them on/off, and bind your Smart Filters to your dashboard.",
      "You can now re-order, turn on/off libraries, system default side nav items and add your own smart filters and external sources (see below) to the side nav.",
      "Added the ability to link to external sources (aka server\u0027s your friends may host). These can then be bound to your Sidenav and provide a one click to that server which will auto login.",
      "New API (plugin/version) which can use the api key to get the current Kavita install version.",
      "Added WantToRead filter so SmartFilters can be created that utilize want to read status in creative ways.",
      "OPDS now has a dedicated section for SmartFilters",
      "Added a new Sort By for Reading Progress",
      "Added a new Filter Field (and Input type) to select Series based on Last Read time of the user. This new field uses a date picker so you can build filters like: Series that haven\u0027t been read since 1/1/2023 that have over 80% progress on ordered by most progress to least aka a \u0027Finish it Off list\u0027",
      "(Kavita\u002B) Added an up-sell to 1 year per some users requests. New payment link set.",
      "Kavita\u002B users can now preview local and external series with more metadata by clicking a recommendation card. This new drawer will allow users to get a quick glance of information. You can still open the new browser tab from the drawer or directly from the card. As data is cached in Kavita\u002B API, it may take some time for extended details to propagate.",
      "Plugin Authenticate and Version APIs will now capture unauthorized rejections and log out to config/logs/security.log. APIs that perform this logging are documented.",
      "(Kavita\u002B) Users can now add a local recommendation to their Want to Read list directly from the Series Preview drawer",
      "(Kavita\u002B) When previewing a local series from Recommendations tab, if the local series is lacking metadata (at least summary and genres need to be present), then external metadata will be used.",
      "When a user logs in, log their IP"
    ],
    "Removed": [
      "Recommended tab on Library detail is now removed. Everything can be created as a Smart Filter.\u0027"
    ],
    "Changed": [
      "OPDS will now mimic applicable ordering and streams from your Dashboard. Note: More In Genre and Recently Updated are not supported. Likewise, OPDS All Libraries will now order in the order of your Side Nav.",
      "Selected options from filter\u0027s typeahead wont show as an option anymore.",
      "Some filter fields will now show the unit on the UI to help users understand how it functions",
      "Kavita now logs extra information and in different conditions when a login fails",
      "Ignore #recycle directories, which is a special folder on Synology",
      "Floats are allowed for reading progress inputs",
      "Added a note about folder watching waiting 10 mins to trigger in library settings",
      "When a book does not contain a volume number or have volume in the filename, consider it standalone and as such, mark it as Completed Publication Status.",
      "Side Nav now only shows Home \u002B 10 other items. Other items are found behind the More fold.",
      "Allow API key/OPDS url component to toggle show/hide instead of the previous just showing.",
      "Updated underlying PDF library to latest",
      "Filter fields are now sorted alphabetically",
      "Giant Size format from ComicInfo will now be treated as a special",
      "(Kavita\u002B) Review\u0027s will now be rejected from creating a scrobble event if they wont meet AniList\u0027s criteria. This will be changed in future if more scrobble providers are added."
    ],
    "Fixed": [
      "Fixed stats tab acting up from injection in Stable",
      "Floating point tolerance for reading percentage when using Read Progress Filter",
      "Fixed a bug where some OS don\u0027t support all locales by default. For those, catch any exceptions and default to the raw language code.",
      "Summary wasn\u0027t being sent to the backend for filtering",
      "Fixed a bug where non-admins could see Scan on the library actionables (but not actually invoke it)",
      "Fixed a bug where tablet viewports couldn\u0027t open the metadata filter",
      "Fixed up a lot of the css around the filters.",
      "Fixed up a bug where filter would un-collapse even though we were using a drawer.",
      "Fixed an issue where the manga reader could get delayed when rendering the next page due to slow network activity because it was waiting for the last prefetch page to load instead of moving to the prefetched page immediately.",
      "Fixed external rating tooltip not showing the title of Google Books",
      "Fixed a bad parser case where volume num could get parsed as chapter num.",
      "Fixed up a lot of missing localization strings",
      "Fixed a bug where Not Contains on Tags and People wasn\u0027t behaving correctly (Thanks @CianH for the PR)",
      "Fixed a bug where images in the release notes on update notification modal would go outside the modal\u0027s width.",
      "Fixed a bunch of locations where UTC dates had the wrong time",
      "Fixed a bug where users with no libraries shared could actually obtain access to series from non-shared libraries",
      "Fixed an issue where after you update your settings, the new preferences didn\u0027t send back with the refresh account api and thus locale switching didn\u0027t work correctly.",
      "Fixed a bug where virtualized lists were not having the correct order for order numbers mode. (reading list detail page when over 100 items)"
    ],
    "Theme": [],
    "Developer": [],
    "Api": [],
    "FeatureRequests": [],
    "KnownIssues": [
      "Some users are facing issues where strings aren\u0027t rendering correctly due to the old locale from v0.7.8 being used. You can fix this by clearing Cookies on your Kavita site then refreshing your Browser."
    ],
    "BlogPart": "\u003Cp\u003Ev0.7.9 is here and brings along with it major changes in the customization that Kavita provides it\u0027s users out of the box. This has been something I\u0027ve been wanting to work on for over a year now, but as with all things, finding time and balancing new features and their order doesn\u0027t always go as planned.\u003C/p\u003E\n\u003Cp\u003EThis release brings 3 major customization features: Dashboard, Side Nav, and External Sources plus Series Preview for Kavita\u002B users. These features are for all users, not just admins. Let\u0027s dive in.\u003C/p\u003E\n"
  }
]