Aniworld/docs/CHANGELOG.md

3.2 KiB

Changelog

Document Purpose

This document tracks all notable changes to the Aniworld project.

What This Document Contains

  • Version History: All released versions with dates
  • Added Features: New functionality in each release
  • Changed Features: Modifications to existing features
  • Deprecated Features: Features marked for removal
  • Removed Features: Features removed from the codebase
  • Fixed Bugs: Bug fixes with issue references
  • Security Fixes: Security-related changes
  • Breaking Changes: Changes requiring user action

What This Document Does NOT Contain

  • Internal refactoring details (unless user-facing)
  • Commit-level changes
  • Work-in-progress features
  • Roadmap or planned features

Target Audience

  • All users and stakeholders
  • Operators planning upgrades
  • Developers tracking changes
  • Support personnel

Format

This changelog follows Keep a Changelog principles and adheres to Semantic Versioning.

Sections for Each Release

## [Version] - YYYY-MM-DD

### Added

-   New features

### Changed

-   Changes to existing functionality

### Deprecated

-   Features that will be removed in future versions

### Removed

-   Features removed in this release

### Fixed

-   Bug fixes

### Security

-   Security-related fixes

Unreleased

Changes that are in development but not yet released.

Added

  • Enhanced Anime Add Flow: Automatic database persistence, targeted episode scanning, and folder creation with sanitized names
  • Filesystem utility module (src/server/utils/filesystem.py) with sanitize_folder_name(), is_safe_path(), and create_safe_folder() functions
  • Serie.sanitized_folder property for generating filesystem-safe folder names from display names
  • SerieScanner.scan_single_series() method for targeted scanning of individual anime without full library rescan
  • Add series API response now includes missing_episodes list and total_missing count
  • Database transaction support with @transactional decorator and atomic() context manager
  • Transaction propagation modes (REQUIRED, REQUIRES_NEW, NESTED) for fine-grained control
  • Savepoint support for nested transactions with partial rollback capability
  • TransactionManager helper class for manual transaction control
  • Bulk operations: bulk_mark_downloaded, bulk_delete, clear_all for batch processing
  • rotate_session atomic operation for secure session rotation
  • Transaction utilities: is_session_in_transaction, get_session_transaction_depth
  • get_transactional_session for sessions without auto-commit

Changed

  • QueueRepository.save_item() now uses atomic transactions for data consistency
  • QueueRepository.clear_all() now uses atomic transactions for all-or-nothing behavior
  • Service layer documentation updated to reflect transaction-aware design

Fixed

  • Scan status indicator now correctly shows running state after page reload during active scan
  • Improved reliability of process status updates in the UI header

Version History

To be documented as versions are released.