# 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](https://keepachangelog.com/) principles and adheres to [Semantic Versioning](https://semver.org/). ## Sections for Each Release ```markdown ## [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 - 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._