v1.0.9-beta.076 - feat: enhance request management, job cleanup, and reading lists
✨ Features & UI
- Added a real-time search bar and comprehensive filtering tabs (All, Active/DL, Pending, Unreleased, Completed, Failed, Cancelled) to the My Requests page.
- Implemented bulk selection and cancellation actions for users to easily manage their request queue.
- Restricted the cancellation UI so users can only cancel active or unprocessed requests.
- Added a collapsible Group by Series view mode and View Mode Toggle (Grouped vs. Flat/Reorder) for Reading Lists.
- Users can now add custom descriptions when creating a new Reading List directly from the Library page (single and bulk add modals).
🧹 Backend Cleanup & Data Integrity
- Added a secure Database-driven cleanup routine to erase empty Series skeletons from the library when a request is cancelled.
- Applied the same skeleton cleanup logic to the Admin flow so the database stays clean when an Admin denies a request.
🛡️ Automation & Ghost Prevention
- Updated BullMQ logic to instantly hunt down and purge pending/delayed background jobs when a user cancels a request.
- Added a state guard to automation.ts to prevent race conditions if a job becomes active at the exact millisecond a user clicks cancel.
- Added a state guard to importer.ts to reject and drop fast direct downloads if the request was cancelled mid-stream.
🔌 Download Client Interception
- Added removeDownload support to the DownloadService.
- Omnibus will now actively reach out to external clients (qBittorrent, SABnzbd, Deluge, NZBGet) to hard-delete the job and wipe the incomplete files from the hard drive if a user cancels an active download.
📱 Responsive UI & Bug Fixes
- Fixed a UI issue where the Reading List header title, description, and buttons were squishing together by restructuring flex wraps and text truncation.
- Increased the maximum page container width to 1400px to better utilize space on ultrawide monitors.
- Adjusted the sidebar grid columns to scale proportionally on lg and xl breakpoints.