github drallgood/audiobookshelf-hardcover-sync v2.0.0
Release v2.0.0

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

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[v2.0.0] - Major Rewrite

MAJOR UPDATE: This release represents a comprehensive rewrite of the application with significant architectural changes, performance improvements, and new features. Users should review the migration guide for important upgrade information.

Architecture Overhaul

  • 🌐 Complete GraphQL Client Rewrite: Entirely rebuilt the Hardcover client using GraphQL for more efficient and precise API interactions
  • 💾 State Management: Introduced a robust state management system for tracking sync progress and book status across sessions
  • 🔒 Rate Limiting: Implemented token bucket rate limiting with improved concurrency control and deadlock prevention
  • 📈 Memory Optimization: Drastically reduced memory usage with optimized data structures and garbage collection
  • 🔄 Concurrency Model: Redesigned concurrency approach with proper context handling and cancellation support

Major New Features

  • 🔄 Incremental Sync Engine: Built a sophisticated incremental synchronization system that only processes changed books
    • New state persistence layer between syncs for tracking changes
    • Smart detection of relevant changes to minimize unnecessary API calls
    • Configurable change thresholds for fine-tuning sync behavior
  • 🏷️ Edition Management: Complete rewrite of edition handling with new tools and improved matching
    • Better book matching algorithms that prioritize relevant results and filter out summaries
    • Enhanced edition information extraction and normalization
    • Improved mismatch detection and resolution
  • 📦 Docker Support: Comprehensive Docker implementation with optimized container builds
    • Multi-arch support for various platforms
    • Environment-based configuration with sensible defaults
    • Volume mounting for persistent data
  • 📊 Advanced Progress Tracking: Completely rebuilt progress tracking system
    • More accurate progress calculation and persistence
    • Support for both percentage and seconds-based progress tracking
    • Better handling of finished status and completion events
  • 🔍 Ownership Sync: Added support for syncing ownership status between platforms

Configuration & Logging

  • ⚙️ Configuration System: Completely redesigned configuration with improved validation
    • More sensible defaults and clearer documentation
    • Better environment variable support and overriding
    • Hierarchical configuration with proper merging of options
  • 📝 Logging Framework: Rebuilt logging system with structured logging
    • Request ID tracking across operations
    • Configurable log levels and formats (JSON/text)
    • Improved context in log messages
    • Better error reporting and debug information

Tools & Utilities

  • 📱 New CLI Tools: Added suite of command-line tools for advanced operations
    • Edition management tools for creating and updating editions
    • Image tools for managing cover images
    • Hardcover lookup utilities for data verification
    • Mismatch handling and resolution tools
  • 🐛 Error Handling: Introduced BookError type and comprehensive error handling
    • Detailed error classification and reporting
    • Better recovery from transient failures
    • More informative user feedback

Critical Fixes & Improvements

  • 🚨 Data Integrity:
    • Prevented data loss in user_book_read updates
    • Fixed race conditions in concurrent operations
    • Improved transaction handling and atomicity
    • Better handling of API response failures
  • 🔧 Progress & Status:
    • Fixed progress_seconds handling for accurate time tracking
    • Enhanced finished status detection and updates
    • Prevented duplicate read statuses in Hardcover
    • Improved progress update logic with better error handling
  • 🔍 Mismatch Handling:
    • Improved edition information and format handling
    • Removed "Audiobookshelf." prefix from edition information
    • Set more meaningful edition formats based on publisher (e.g., "Audible Audio", "libro.fm")
    • Better detection and recording of book mismatches
  • 🚀 Performance:
    • Optimized API request batching and caching
    • Reduced memory allocations in hot paths
    • Improved concurrency control and resource usage
    • Enhanced rate limiting with token bucket algorithm

Removed & Deprecated

  • ⚡ Legacy Components: Removed several deprecated components and systems:
    • Removed old rate limiting system using delays (sync_delay and HARDCOVER_SYNC_DELAY_MS)
    • Eliminated legacy matching modes and configuration options
    • Removed outdated mismatch handling code and fixed-path configurations
    • Deprecated non-GraphQL API endpoints usage

Developer Experience

  • 🛠️ CI/CD: Enhanced CI/CD pipeline with improved workflows
    • Better Docker image building and tagging
    • Comprehensive test coverage with race detection
    • Automated release processes
    • Improved build artifacts and versioning
  • 📝 Documentation: Completely rewrote documentation
    • Better API documentation and examples
    • More comprehensive configuration guides
    • Improved troubleshooting information
    • Migration guides for upgrading from previous versions

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

NewReleases is sending notifications on new releases.