github drallgood/audiobookshelf-hardcover-sync v1.6.0
🚀 v1.6.0 - Major Performance & Reliability Release

latest releases: v3.0.0, v2.1.0, v2.0.1...
4 months ago

🚀 AudiobookShelf-Hardcover Sync v1.6.0

Major Feature Release - Performance & Reliability Enhancements

This release includes 32 commits with significant new features, critical bug fixes, and security improvements since v1.5.0.

🌟 Major New Features

🧠 Intelligent Caching System (NEW)

  • 70-90% reduction in API calls through smart author/narrator lookup caching
  • Configurable TTL with automatic cleanup and performance metrics
  • Cross-role lookup optimization and publisher support
  • Built-in cache statistics and memory management

📊 Enhanced Progress Detection (NEW)

  • Multi-endpoint support with automatic fallbacks between /api/me and /api/me/listening-sessions
  • Proper detection of manually finished books using isFinished flags
  • Cross-validation between multiple data sources for accuracy
  • Comprehensive debug logging for troubleshooting

🏗️ Complete Local Image Upload (NEW)

  • Full implementation for AudiobookShelf cover image handling
  • Multi-stage upload process: create edition first, then upload local images
  • Automatic image-to-edition association and linking
  • Smart URL detection for local vs external images

🔧 Critical Bug Fixes

Edition Field NULL Bug (CRITICAL)

  • Fixed critical bug where edition field became null in user_book_read entries
  • Root cause: Missing edition_id field in GraphQL mutations
  • Impact: Prevents data loss and maintains reading history integrity
  • Solution: Updated both insert and update mutations with proper edition ID validation

Book ID Deduplication Fix

  • Fixed handling of deduped books with canonical IDs in Hardcover
  • Automatic redirection using canonical_id when book_status_id = 4
  • Enhanced GraphQL queries to include deduplication fields
  • Real-world tested with "The Third Gilmore Girl" case

RE-READ Detection Fix

  • Fixed false positives for manually finished books
  • Enhanced logic using /api/me endpoint for accurate detection
  • Prevents books from being incorrectly treated as re-read scenarios
  • Added safeguards for books with finished reads but 0% API progress

🔒 Security Improvements

  • Go 1.24.4-alpine upgrade resolving 3 CVEs:
  • Zero HIGH/CRITICAL vulnerabilities in Trivy security scans

⚡ Performance Enhancements

  • Massive performance improvements for large libraries
  • Intelligent caching reducing API load by 70-90%
  • Optimized GraphQL queries fetching only necessary data
  • Automatic memory management with cache cleanup
  • Reduced redundant operations through smart detection logic

�� Code Quality & Maintenance

Honest ASIN Implementation

  • Removed misleading "enhanced with external metadata" claims
  • Implemented transparent ASIN reference system
  • Cleaned up non-functional Audible API integration code
  • Clear source attribution with "hardcover+asin" tracking

Project Structure

  • Organized project structure for better maintainability
  • Moved scripts to scripts/ directory
  • Consolidated documentation in docs/ directory
  • Better test organization by feature area

🏗️ Additional Fixes

  • Status Update Bug: Fixed missing user book status mutations
  • GraphQL Issues: Fixed various mutation problems with local URLs
  • Want to Read Logic: Prevents finished books from incorrect status assignment
  • URL Handling: Enhanced support for reverse proxy configurations

📋 Migration Notes

  • No breaking changes - all existing configurations continue to work
  • New environment variables are optional with sensible defaults:
    • CACHE_TTL_MINUTES (default: 60) - Configure caching duration
  • Performance improvements are automatic - no configuration required
  • Security fixes are applied automatically with the Docker image update

🙏 Thank You

This release represents significant work to improve performance, reliability, and user experience. The intelligent caching system alone provides massive performance benefits for users with large libraries.

Full details available in CHANGELOG.md

Don't miss a new audiobookshelf-hardcover-sync release

NewReleases is sending notifications on new releases.