- 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
101 lines
2.6 KiB
Markdown
101 lines
2.6 KiB
Markdown
# 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._
|