This pull request introduces several improvements to both the frontend manual search modal and backend audiobook scan job handling. The main enhancements are the addition of a manual search bar to the modal, better handling of search queries, and more robust scan job deduplication and status management in backend services.
Frontend: Manual Search Modal Improvements
- Added a manual search bar to
ManualSearchModal.vue, allowing users to enter custom search queries for audiobooks, with UI feedback and controls. - Initialized the search query with a default value when the modal opens and ensured the search uses either the manual input or a fallback query. [1] [2]
- Updated modal layout and styles to accommodate the new search bar, improving user experience and accessibility.
Backend: Audiobook Scan Job Handling
- After a download is processed, the system now automatically enqueues a scan job for the associated audiobook, ensuring the library stays up to date.
- Improved scan job deduplication in
ScanQueueServiceto prevent duplicate scan jobs for the same audiobook and path, only allowing new jobs if previous ones are completed or failed.
Backend: Download Status Management
- Changed download status handling in
DownloadServiceto always mark downloads asCompletedafter processing, preserving expected semantics for tests and consumers. Also added defensive checks to enforce this status before broadcasting updates. [1] [2]
Automated canary build