* Moved LibraryWatcher to utilize a queue for calculating the change event to ensure the Watcher doesn't get overwhelmed on large moves.
* Fixed a security vulnerability (https://huntr.dev/bounties/8a3e652f-d6bf-436e-877e-0eaf5c69ef95/). This will be disclosed in Stable release changelog.
* Tweaked the log message template
* Removed some dead code from Configuration json patcher
* Fixed a bug with the ComicInfo finding to properly handle root level.
Fixed a bug where sometimes scanner wouldn't choose the first file with ComicInfo for filling out information.
* Added new setting for managing how many logs files are allowed, just like how backups work.
* Added unit tests for new CleanupLogs code
* Fixed a bug where manga reader background color wasn't actually sending from the UI
* Added new stats for tracking to help understand usage in the app and what features are used or not.
* Fixed Stats url
* Fixed a bug where volumes that had larger than 1 difference wouldn't properly return next/prev chapter (for continuous reader)
* Remove a redundant test step in build pipeline, since it's already done at PR stage.
* Updated dockerfile to use the new Heath check endpoint
* Allow force to pass through to scan loop
* Removed some old config stuff from a safety check on config in entrypoint.sh
* Fixed broken unit tests due to new RBS check and how we setup mock data.
* Updated a typo in manage tasks of Reoccuring -> Recurring
* Fixed a bug in MinimumNumberFromRange where a regex wasn't properly constructed which could skew results.
* Fixed a bug where Volume numbers that were a float wouldn't render correctly in the manga reader menu.
* Added the ability to double click on the image to bookmark it. Optimized the bookmark and unbookmark flows to remove 2 DB calls and reworked some flow of calls to speed it up.
Fixed some logic where when using double (manga) flow, both of the images wouldn't show the bookmark effect, despite both of them being saved. Likewise, fixed a bug where both images weren't updating UI state, so switching from double (manga) to single, the second image wouldn't show as bookmarked without a refresh.
* Double click works perfectly for bookmarking
* Collection cover image chooser will now prompt with all series covers by default.
Reset button is now moved up to the first slot if applicable.
* When a Completed series is fully read by a user, a nightly task will now remove that series from their Want to Read list.
* Added ability to trigger Want to Read cleanup from Tasks page.
* Moved the brightness readout to the label line and fixed a bootstrap migration bug where small buttons weren't actually small.
* Implemented ability to filter against release year (min or max or both).
* Fixed a log message that wasn't properly formatted when scan finished an no files changes.
* Cleaned up some code and merged some methods
* Implemented sort by Release year metadata filter.
* Fixed the code that finds ComicInfo.xml inside archives to only check the root and check explicitly for casing, so it must be ComicInfo.xml.
* Dependency updates
* Refactored some strings into consts and used TriggerJob rather than just enqueuing
* Fixed the prefetcher which wasn't properly loading in the correct order as it was designed.
* Cleaned up all traces of CircularArray from MangaReader
* Removed a debug code
* Fixed a bug with webtoon reader in fullscreen mode where continuous reader wouldn't trigger
* When cleaning up series from users' want to read lists, include both completed and cancelled.
* Fixed a bug where small images wouldn't have the pagination area extend to the bottom on manga reader
* Added a new method for hashing during prod builds and ensure we always use aot
* Fixed a bug where the save button wouldn't enable when color change occured.
* Cleaned up some issues in one of contributor's PR.
* Configure Animation Module
Configure the Animation Module of Angular to disable animation on older iOS devices (<14) where it causes animate not defined errors.
* Simplified disableAnimations
Removed the regex iOS version check as it seemed to return false on iOS 12.5.5 meaning that the `!('animate' in document.documentElement)` did the job already. This also allows users to enable the experimental feature Web Animations on iOS 12.5.5 to have them enabled again.
as note; navigator.userAgent returned the following on an iPad iOS 12.5.5
`Mozilla/5.0 (iPad; CPU OS 12_5_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Mobile/15E148 Safari/604.1`
* added console output on disabled
Added console.error if Web Animations have been disabled due to the browser not supporting this.
* Fix XML deserialization of empty elements to integers
* Fix assumption that environment uses US time format
* Use series name as SeriesSort in epub
* Address some PR comments
* Add partial Equals(0 implementation to ComicInfo
* Update ComicInfo unittest. Revert previous version
* Moved the data connection for the Database out of appsettings.json and hardcoded it. This will allow for more customization and cleaner update process.
* Removed unneeded code
* Updated pdf viewer to 15.0.0 (pdf 2.6), which now supports east-asian fonts
* Fixed up some regex parsing for volumes that have a float number.
* Fixed a bug where the tooltip for Publication Status wouldn't show
* Fixed some weird parsing rules where v1.1 would parse as volume 1 chapter 1
* Fixed a bug where bookmarking button was hidden for admins without bookmark role (due to migration)
* Unified the star rating component in series detail to match metadata filter.
* Fixed a bug in the bulk selection code when using shift selection, where the inverse of what was selected would be toggled.
* Fixed some old code where if on all series page, only English as a language would return. We now return all languages of all libraries.
* Updated api/metadata/languages documentation
* Refactored some bookmark api names: get-bookmarks -> chapter-bookmarks, get-all-bookmarks -> all-bookmarks, get-series-bookmarks -> series-bookmarks, etc.
* Refactored all cases of createSeriesFilter to filterUtiltityService.
Added ability to search for a series on Bookmarks page.
Fixed a bug where people filters wouldn't respect the disable flag froms ettings.
* Cleaned up a bit of the circular downloader code.
* Implemented Russian Parsing
* Fixed an issue where some users that had a missing theme entry wouldn't be able to update their user preferences.
* Refactored normalization to exclude !, thus allowing series with ! to be different from each other.
* Fixed a migration exit case
* Fixed broken unit test
* Recreated Kavita Logging with Serilog instead of Default. This needs to be move out of the appsettings now, to allow auto updater to patch.
* Refactored the code to be completely configured via Code rather than appsettings.json. This is a required step for Auto Updating.
* Added in the ability to send logs directly to the UI only for users on the log route. Stopping implementation as Alerts page will handle the rest of the implementation.
* Fixed up the backup service to not rely on Config from appsettings.json
* Tweaked the Logging levels available
* Moved everything over to File-scoped namespaces
* Moved everything over to File-scoped namespaces
* Code cleanup, removed an old migration and changed so debug logging doesn't print sensitive db data
* Removed dead code
* Updating series detail cover
# Fixed
- Fixed: Fixed an issue where the series detail cover would resize too large on ultra wide displays.
* Fixing typos
* Allow .NET to optimize code as it's running.
* Implemented the ability to restrict users Bookmark ability. By default, users will need to now opt-in to get bookmark roles.
* Fixed a tachiyomi progress syncing logic bug
* Tweaked log messaging for library scan when no files were scanned.
* When a theme that is set gets removed due to a scan, inform the user to refresh.
* Fixed a typo and make Darkness -> Brightness
* Make download theme files allowed to be invoked by non-authenticated users, to allow new users to get the default theme.
* Hide all series side nav item if there are no libraries exposed to the user
* Fixed an API for Tachiyomi when syncing progress
* Fixed dashboard not responding to Series Removed and Added events.
Ensure we send SeriesRemoved events when they are deleted.
* Reverted Hangfire SQLite due to aborted jobs being resumed, when they shouldnt. Fixed some scan loop issues where cover gen wouldn't be invoked always on new libraries.
* Added a no data section to collection detail.
* Remove an optimization for skipping the whole library scan as it wasn't reliable
* When resetting password, ensure the input is colored correctly
* Fixed setting new password after resetting, throwing an error despite it actually being successful.
Fixed incorrect messaging for Password Reset page.
* Fixed a bug where reset password would show the side nav button and skew the page.
Updated a lot of references to use Typed version for formcontrols.
* Removed a migration from 0.5.0, 6 releases ago.
* Added a null check so we don't throw an exception when connecting with signalR on unauthenticated users.
* Refactored invite user flow to separate error handling on create user flow and email flow. This should help users that have unique situations.
* Switch to using files to check LastWriteTime. Debug code in for Robbie to test on rclone
* Updated Parser namespace. Changed the LastWriteTime to check all files and folders.
* Fixed a bug where typeahead wouldn't automatically show results on relationship screen without an additional click.
* Tweaked the code which checks if a modification occured to check on seconds rather than minutes
* Clear cache will now clear temp/ directory as well.
* Fixed an issue where Chrome was caching api responses when it shouldn't had.
* Added a cleanup temp code
* Ensure genres get removed during series scan when removed from metadata.
* Fixed a bug where all epubs with a volume would show as Volume 0 in reading list
* When a scan is in progress, don't let the user delete the library.
* Update to use SQLIte for Hangfire to retain information on tasks
* Updated all external links to have noopener noreferrer
* When watching folders, ensure the folders exist before creating watchers.
* Tweaked the messaging for Email Service and added link to the project.
* Sort series by chapter number only when some chapters have no volume information
* Implement a Default static instance of ChapterSortComparer
* Further use Default static Comparers
* Add missing ToLit() as per comments
* Refactored Library Watcher to use Hangfire under the hood.
* Support .kavitaignore at root level.
* Refactored a lot of the library watching code to process faster and handle when FileSystemWatcher runs out of internal buffer space. It's still not perfect, but good enough for basic use.
* Make folder watching as experimental and default it to off by default.
* Revert #1479
* Tweaked the messaging for OPDS to remove a note about download role.
Moved some code closer to where it's used.
* Cleaned up how the events widget reports
* Fixed a null issue when deleting series in the UI
* Cleaned up some debug code
* Added more information for when we skip a scan
* Cleaned up some logging messages in CoverGen tasks
* More log message tweaks
* Added some debug to help identify a rare issue
* Fixed a bug where save bookmarks as webp could get reset to false when saving other server settings
* Updated some documentation on library watcher.
* Make LibraryWatcher fire every 5 mins
* Fixed a bootstrap bug
* Fixed repeating images on collection detail
* Fixed up some logic in library watcher which wasn't processing all of the queue.
* When parsing non-epubs in Book library, use Manga parsing for Volume support to better support Light Novels
* Fixed some bugs with the tachiyomi plugin api's for progress tracking
* Tweaked a Migration to log correctly only if something is going to be done.
* Refactored Reading List Controller code into a dedicated service and cleaned up some methods that aren't needed anymore.
* Fixed a bug where adding a new item to a reading list wasn't adding it at the end.
* Fixed an issue where collection page would re-render the same covers on multiple items.
* Fixed a missing margin-top which made the page extras drawer not render correctly and hence unclosable on small screens.
* Added some timeout on manage users screen to give data time to flush.
Added a dedicated token log for account flows, in case url encoding plays a part (but from testing it doesn't).
* Reverted back to building for ES6 instead of es2020 for old Safari 12.5.5 browsers (10MB difference in build size).
* Cleaned up the logic in removing series not found during scan loop.
* Tweaked the timings for Library Watcher to 1 min and reprocess queue every 30 seconds.