Releases: chadleeshaw/curator
Release list
v1.3.5
What's Changed
- fix: security hardening, deadlock fix, and correctness improvements (82e5493)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.3.5Full Changelog: v1.3.4...v1.3.5
Full Changelog: v1.3.4...v1.3.5
v1.3.4
What's Changed
- Shorten card issue count labels to prevent text wrapping (#25) (910b837)
- chore: bump version to 1.3.4 (ffbf91c)
- fix: toast notification system, search provider test connection, UI polish, and Playwright tests (9fceaec)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.3.4Full Changelog: v1.3.3...v1.3.4
What's Changed
- Shorten card issue count labels to prevent text wrapping by @chadleeshaw in #25
Full Changelog: v1.3.3...v1.3.4
v1.3.3
What's Changed
- chore: bump version to 1.3.3 (367571d)
- fix: load sidebar thumbnails via authenticated fetch with IntersectionObserver (96f9d8c)
- fix: use APIClient.authenticatedFetch instead of nonexistent APIClient.fetch (2af9bac)
- fix: fetch PDF/comic pages with auth header to fix missing authentication error (6b0b252)
- fix: remove auth from cover GET endpoint so browser img tags load correctly (dbaff6f)
- test: update fixtures for auth overrides and SSE ticket mechanism (4c1f5ad)
- fix: add ESLint glob, worker teardown, cache eviction, and blob URL cleanup (c85e324)
- fix: resolve N+1 queries with batch-fetched counts in tracking list (c7e72ae)
- security: add CSRF middleware, request size limits, and error hardening (d821f06)
- security: fix XSS vulnerabilities by escaping innerHTML assignments (29fe0d1)
- security: replace SSE token-in-URL with one-time ticket mechanism (548e206)
- security: add authentication to all API endpoints (1dc5938)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.3.3Full Changelog: v1.3.2...v1.3.3
Full Changelog: v1.3.2...v1.3.3
v1.3.2
What's Changed
- chore: bump package.json version to 1.3.2 (0a4b7a7)
- fix: replace emoji with SVG icons and fix UI layout issues (5f81af2)
- fix: improve mobile card grid layout and spacing consistency (2c78a3e)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.3.2Full Changelog: v1.3.1...v1.3.2
v1.3.1
What's Changed
- style: add icons for category, language, country, and issues on tracking cards (ae1d677)
- style: update icons to layers motif and refresh screenshots for v1.3.1 (510b895)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.3.1Full Changelog: v1.3.0...v1.3.1
v1.3.0
What's Changed
- style: set card grid minimum to 174px for consistent 6-column layout (a9a0820)
- smaller cards (f2b99d1)
- refactor: Material Design 3 UI overhaul (#24) (36bcae3)
- style: remove redundant local imports in test_medium_severity_fixes (d247fd0)
- fix: follow HTTP redirects when fetching NZB content from Prowlarr/Newsnab (a9c8f00)
- style: apply Black formatting and fix orphaned docstring (9d1f99d)
- fix: percent-encode filenames in IA download URLs to handle # and special chars (e0671e1)
- fix comments (3d065fd)
- style: apply Black formatting (bf553bf)
- fix: suppress false-positive dedup warning for bare-number issue titles (d768cfa)
- style: apply Black formatting to production code files (9f265c4)
- fix: add user_id=1 to all user-scoped model INSERTs and fix CSRF samesite (709588e)
- fix: resolve all CI lint warnings in pylint and eslint (9f03cdb)
- fix: name foreign key constraints in migration 002 for SQLite batch mode (c9eb0e8)
- feat: multi-user auth with admin controls, migrations, and security hardening (#23) (3a42817)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.3.0Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
- style: apply Black formatting to test_ocr_benchmarks.py (5186a86)
- chore: fix package.json metadata and bump version to 1.2.0 (24415ea)
- test: remove benchmarks for preprocessing techniques not used in production (8b3cf3d)
- refactor: remove unused BaseReader abstract class (5c07666)
- chore: upgrade fastapi, uvicorn, python-multipart, aiofiles dependencies (2165be9)
- docs: add Torznab search provider and qBittorrent download client documentation (78b29f3)
- Dead Code Clean Up (#22) (c7ec7b9)
- fix: resolve bulk download hang by queuing issues instead of submitting synchronously (965e70c)
- fix: improve issue parsing, search grouping, and language/country defaults (a05918a)
- fix: resolve 20 UI bugs and add mobile zoom panning in page reader (d1ee88a)
- fix: resolve bulk downloader bugs in backend and UI (8c679b1)
- fix: prevent volume/issue dedup key collisions for unparseable titles (a40e23c)
- fix: correct status field for library-matched provider results (eb6e390)
- fix ui search to show all in library (80e2385)
- fix: apply code review fixes for SSE notify callback implementation (afd6527)
- fix: wire SSE live updates to correct tab ID and refresh open modals (8ced496)
- feat: add IA download resume and SSE real-time queue updates (402ac0d)
- fix: inject correct BUILD_VERSION into Docker image on branch builds (7fdec08)
- fix: don't cache version when git fails and falls back to package.json (97058d4)
- chore: bump package.json version to 1.1.0 (24dff38)
- fix: persist extra_metadata changes and consolidate delete transaction (d49773a)
- fix: suppress collection filter when query itself contains a collection word (619f573)
- Merge branch 'claude/code-review-TcXQw' into main (aa7523c)
- fix: address remaining code review findings from session two (1dc142b)
- fix: add pending and processing filters to OCR queue modal (5ef0230)
- fix: remove redundant assignment and correct type annotations (514df99)
- fix: address remaining code review findings (2d2f3cf)
- fix: address code review findings in qBittorrent and Torznab implementation (d40e172)
- feat: add Torznab to settings UI provider type dropdown (c784679)
- style: apply Black formatting to pylint-cleanup files (7b2c8fb)
- fix: align submit() parameter names with base interface (b3016aa)
- style: apply Black formatting to new and modified files (2717eb9)
- feat: add qBittorrent client and Torznab search provider (adc3641)
- fix: correct DownloadSubmission query and enum usage in bulk delete (8129d56)
- increase max workers (255100a)
- fix: correct periodical re-evaluation bug and improve test quality (036b806)
- docs: update AGENTS.md with download/ subdirectory and canonical submission path (1b6dda6)
- refactor: remove submit_download bypass path and dead download_selected_editions code (6276c2b)
- fix: harden matching and deduplication logic (7f0408e)
- fix: harden database, download manager, and importer against security and concurrency bugs (b191703)
- refactor: named constants, deduplicate helpers, promote deferred imports (d3077ac)
- refactor: move constants to core, remove dead code, fix stale imports (8ee9fce)
- refactor: rename magazine identifiers to periodical throughout codebase (2dfefd7)
- fix: handle naive datetimes in UTCDateTime type for backward compatibility (12afd2c)
- fix blocking scheduled tasks fix UTC time in db use library for async tasks (30ce33c)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.2.0Full Changelog: v1.1.0...v1.2.0
What's Changed
- Dead Code Clean Up by @chadleeshaw in #22
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Changelog
v1.1.0 (Unreleased)
New Features
Internet Archive Integration
Free access to millions of magazines, comics, and newspapers from archive.org.
- Native Internet Archive search provider with collection filtering
- Built-in HTTP download client (no external download manager needed)
- Support for PDF, EPUB, ZIP, and GZIP archive formats
- Automatic extraction of periodicals from collection archives
- Prioritized in search results when available
- Optional authentication for restricted items
- Direct downloads without NZB client
Configure in config.yaml:
search_providers:
- type: internet_archive
name: Internet Archive
enabled: true
priority: 1
collections:
- magazines
- periodicals
- comicsStacks
Organize periodicals into custom collections.
- Create named stacks (e.g., "Sci-Fi Magazines", "Vintage Comics")
- Add periodicals or tracking items to stacks
- View stack-specific library and tracking pages
- Custom stack covers and descriptions
- Category filtering and sorting
- Bulk operations within stacks
- Stack membership tracking
Use cases:
- Group related periodicals by theme or era
- Organize reading lists
- Separate personal vs. shared collections
- Track series across multiple periodical titles
Volume Support
Full volume number parsing and display throughout the application.
- Extract volume numbers from filenames and metadata
- Display volumes in search results and library
- Sort by volume in addition to date and issue
- Support for bare volume shorthand (e.g., "v12")
- Volume-aware issue discovery and tracking
- Improved matching for multi-volume series
Bulk Operations
Perform actions on multiple periodicals at once.
- Bulk move to different categories
- Bulk delete periodicals
- Bulk regenerate cover images
- Bulk download from search results
- Bulk add to stacks
- Operations work within stack context
Enhanced Cover Processing
Improved cover image extraction and display.
- Landscape PDF covers automatically cropped to right half
- Custom cover upload per periodical
- Regenerate cover images on demand
- Better thumbnail generation performance
- Cover cleanup scheduler removes orphaned images
Special Editions
Better handling of special edition periodicals.
- Parse special edition markers from titles
- Display special edition status in UI
- Track special editions separately or with regular issues
- Improved matching for variant covers and editions
Improvements
Search & Discovery
- Cache-aware search optimization reduces provider API calls
- Improved fuzzy matching with caching for performance
- Country and language filtering in search results
- Better in-library detection to prevent duplicate downloads
- Enhanced deduplication across providers
- Issue discovery improvements for tracked periodicals
Parsing & Metadata
- Enhanced title parsing with better special character handling
- Improved date extraction from filenames and metadata
- Better handling of volumes in titles
- Refined special edition detection
- More robust country and language parsing
- Support for more date formats and patterns
Performance
- OCR processing speed improvements:
- DPI reduction for faster processing
- Image resizing before OCR
- Parallel PNG generation
- Optimized fuzzy matching with result caching
- Reduced memory usage in OCR pipeline
- Better handling of large collections
UI/UX
- Mobile-responsive layout improvements
- Better tracking page mobile layout
- Improved sort options (by date, volume, issue, latest)
- Enhanced download queue UI
- Better breadcrumb navigation with title case
- Collapsible sections for better organization
- Month grouping fixes in library view
- Improved variant terminology and display
Rate Limiting & Caching
- Provider-aware retry logic
- Better rate limit detection and handling
- Cache system refactoring for reliability
- Feed sync optimization for RSS providers
- Reduced API calls with intelligent caching
Download Management
- Routing based on provider type (Internet Archive vs. NZB)
- Better handling of non-regular files in cleanup
- Improved download progress tracking
- Category-aware download organization
- Support for direct HTTP downloads alongside NZB
Bug Fixes
- Fixed infinite import loops with non-regular files
- Fixed timezone handling across codebase
- Fixed month matching in partial filename parsing
- Fixed search filter application
- Fixed stack membership for special editions
- Fixed NZB category handling
- Fixed periodical sort ordering
- Fixed cache busting issues
- Fixed stale data errors in UI
- Fixed test connection for NZB clients
- Changed country mismatch from blocking to penalty-based matching
- Fixed video files with extensions in titles bypassing filters
- Replaced deprecated
datetime.utcnow()withutc_now() - Fixed missing
all_providers_rate_limitedproperty - Fixed database migration for legacy provider names
Configuration Changes
- Added
download_clients.internet_archivesection for IA downloads - Added
collectionsandfile_formatsto Internet Archive provider config - Expanded provider priority system (lower number = higher priority)
- Added optional IA authentication (
username,password) - More detailed rate limiting controls per provider
- Enhanced OCR configuration options
Development
- Removed verbose agent prompts from
.github/prompts/ - Updated CI/CD pipeline
- Black formatter version update
- Enhanced test coverage for new features
- Performance benchmarking for OCR and API
- Code review and refactoring improvements
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
- change expansion log add cache db migration (47883bb)
- fix sorting in tracking move location of restart button (e9cc89a)
- fix: use static prefix for SHA tags to avoid invalid tag format (8895894)
- Release v1.0.0 (42611bd)
- init (55bba1c)
Docker Image
docker pull ghcr.io/chadleeshaw/curator:v1.0.0Full Changelog: ...v1.0.0
What's Changed
- Release v1.0.0 by @chadleeshaw in #3
Full Changelog: https://github.com/chadleeshaw/curator/commits/v1.0.0