Aniworld/docs/CHANGELOG.md
Lukas 1ba67357dc Add database transaction support with atomic operations
- Create transaction.py with @transactional decorator, atomic() context manager
- Add TransactionPropagation modes: REQUIRED, REQUIRES_NEW, NESTED
- Add savepoint support for nested transactions with partial rollback
- Update connection.py with TransactionManager, get_transactional_session
- Update service.py with bulk operations (bulk_mark_downloaded, bulk_delete)
- Wrap QueueRepository.save_item() and clear_all() in atomic transactions
- Add comprehensive tests (66 transaction tests, 90% coverage)
- All 1090 tests passing
2025-12-25 18:05:33 +01:00

2.6 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

  • 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.