Skip to content

Commit 6fdb1d1

Browse files
authored
2.0.53 (#2)
[2.0.53] - 2025-01-20 Fixed File Changes Scan: Fixed progress tracking to update per-file instead of per-batch for smooth progress bar updates File Changes Scan: Replaced direct database commits with write queue pattern for consistent async updates File Changes Scan: Progress bar now shows real-time file processing status like the normal scan File Changes Scan: Fixed missing start_time initialization that prevented progress calculations from working [2.0.52] - 2025-01-19 Fixed Critical Fix: Fixed undefined variable error (offset) in batch processing that prevented database updates Major Fix: Database updates were not being recorded during scans due to NameError in logging statement Improved: Enhanced batch processing to accumulate results before database writes for better efficiency Added: Comprehensive logging throughout the scanning and database update pipeline Added: Thread verification to ensure database write thread is running properly Fixed: Improved error handling in scan thread to show errors in UI instead of failing silently [2.0.51] - 2025-01-20 Fixed Removed timeout restrictions from file-changes hash calculations Files are now checked regardless of how long they take Removed 5-minute timeout that was causing large files to be skipped Renamed process_file_with_timeout to process_file_for_changes to reflect new behavior Added Enhanced progress logging for large file hash calculations Progress updates every 100MB for large files Completion time logged for files taking more than 10 seconds Better visibility into which files are taking longer to process [2.0.50] - 2025-01-20 Fixed Fixed files_processed counter not incrementing during file-changes scans Database updates now occur more frequently (every 5 files instead of 10) Added forced database update at the end of each batch to ensure progress is saved Added logging to track when database updates occur Progress now updates correctly even when some files timeout during hash calculation [2.0.49] - 2025-01-20 Fixed Fixed missing Phase 3 implementation in file-changes scan Phase 3 now properly verifies changed files for corruption Updates corrupted_found counter correctly Shows smooth progress from 85% to 100% Handles case where no files changed with proper phase transition Fixed database updates during file-changes scan files_processed counter now updates correctly in database during Phase 2 phase_current is properly synchronized with files_processed Progress updates are persisted every 10 files for better tracking Final completion state and results are now saved to database Fixed progress display showing 0 files_processed despite current_file changing [2.0.48] - 2025-01-19 Fixed Fixed file-changes scan state persistence - state is now stored in database instead of memory File-changes scan now properly maintains progress across app restarts Added FileChangesState database model to track scan state persistently File-changes scan now has proper 3-phase process: Phase 1: Starting scan process Phase 2: Checking all file hashes Phase 3: Verifying changed files for corruption [2.0.47] - 2025-01-19 Fixed Fixed file-changes scan progress not updating - status now updates immediately when each file starts processing instead of after completion Fixed file-changes scan progress percentage calculation to properly reflect files processed out of total database entries [2.0.46] - 2025-01-19 Fixed Fixed 308 redirect issue when adding path exclusions starting with '/' by changing API to use request body instead of URL path parameters [2.0.45] - 2025-01-19 Added Enhanced Exclusions Management UI Replaced textarea-based exclusions with interactive list UI Added individual remove buttons for each excluded path and extension Added ability to add exclusions one at a time with dedicated input fields Press Enter to quickly add new exclusions API endpoints for adding and removing individual exclusions Documentation Updated README with screenshots of new features Added Advanced Features section showcasing scheduled scanning and exclusions Updated version references throughout documentation [2.0.44] - 2025-01-18 Added Scan Type Selection for Scheduled Scans Added ability to specify scan type when creating scheduled scans Supported scan types: Normal Scan, Orphan Cleanup, File Changes Scan Updated UI to include scan type dropdown in schedule creation form Display scan type in schedules list Database migration to add scan_type field to existing schedules [2.0.43] - 2025-01-18 Fixed Fixed import error in scheduler.py that was preventing the container from starting Removed unused import of scan_files_parallel from media_checker module [2.0.42] - 2025-01-18 Fixed Rebuilt Docker image without cache to ensure all changes are included Same features as 2.0.41 but with fresh build [2.0.41] - 2025-01-18 Added Scheduled Scanning and Cleanup Added automatic periodic scanning with cron and interval-based scheduling Added automatic cleanup scheduling for orphaned records Configurable via environment variables (PERIODIC_SCAN_SCHEDULE, CLEANUP_SCHEDULE) Support for both cron expressions and simple intervals (e.g., "interval:hours:6") UI interface for managing scan schedules API endpoints for creating, updating, and deleting schedules File hash checking already exists and is used during deep scans Path and Extension Exclusions Added ability to exclude specific paths from scanning Added ability to exclude specific file extensions Configurable via environment variables (EXCLUDED_PATHS, EXCLUDED_EXTENSIONS) UI interface for managing exclusions API endpoints for updating exclusions (/api/exclusions) Exclusions are applied during file discovery and scanning Schedule Management API GET /api/schedules - List all schedules POST /api/schedules - Create new schedule PUT /api/schedules/{id} - Update schedule DELETE /api/schedules/{id} - Delete schedule Enhanced API documentation with comprehensive examples Added cURL examples for all major endpoints Added code examples in Python, JavaScript/Node.js, Bash, and PowerShell Added request/response examples for all endpoints Documented all query parameters and request body fields Added documentation for maintenance endpoints (cleanup, file changes, recovery) Added documentation for configuration management endpoints Changed Updated PixelProbe class to accept excluded paths and extensions Modified file discovery to respect exclusions during directory traversal Updated API documentation to reflect actual endpoint behavior Fixed scan-file endpoint documentation to use file_path instead of file_id Added support for both GET and POST methods on export-csv endpoint Added documentation for all status monitoring endpoints Clarified file-changes endpoint checks modification time, not hash Fixed Fixed file changes progress bar not staying active during the entire operation Added proper phase tracking to file changes state initialization Added progress percentage updates during batch processing Fixed frontend to keep showing progress during phase transitions Ensured progress bar shows 100% on completion before hiding [2.0.40] - 2025-01-18 Fixed Fixed cleanup operation progress calculation showing incorrect percentage Progress was showing ~6% when actual progress was ~12% due to incorrect phase weighting Backend now weights checking phase as 90% and deleting phase as 10% of total progress Frontend now uses progress percentage directly from backend instead of recalculating This reflects reality where checking all files is the bulk of the work Fixed file-changes operation progress calculation Frontend now uses progress percentage directly from backend Prevents inconsistency between backend and frontend calculations [2.0.39] - 2025-01-18 Fixed Fixed progress bar showing incorrect "Scan completed!" message when cleanup is running UI now correctly passes operation type to progress monitoring on page load Progress completion messages now match the actual operation type (scan/cleanup/file-changes) Added endpoint to reset stuck cleanup state after container restart New /api/reset-cleanup-state endpoint marks stuck cleanup operations as interrupted Prevents progress bar from appearing indefinitely when cleanup state is corrupted [2.0.38] - 2025-01-18 Fixed Fixed progress bar stuck at 100% after rescan completes Database write queue now properly updates scan state with correct structure is_active flag is now correctly set to False when scan completes Prevents stats update thread from continuously showing scan as active Fixed "Failed to cleanup orphaned entries" error in UI Fixed timezone mismatch error in cleanup status endpoint Now handles both timezone-aware and timezone-naive datetimes from database Cleanup operations should now complete and report status correctly [2.0.37] - 2025-01-18 Fixed CSV export now properly exports filtered results when no files are selected Exports only corrupted files when "Corrupted" filter is active Exports only warning files when "Warnings" filter is active Exports only healthy files when "Healthy" filter is active Respects current search query in combination with filters Improved export notification to clearly indicate what's being exported H.264 reference frame warnings are now properly handled as warnings instead of corruption Files with "number of reference frames exceeds max" errors are marked with warnings These files play normally despite the encoding issue Prevents false positives for files encoded with non-standard reference frame counts Fixed cleanup orphaned records progress tracking in multi-worker environment Cleanup state is now stored in database instead of memory Progress updates work correctly across all gunicorn workers UI accurately reflects cleanup progress throughout the operation Prevents race conditions where cleanup appears complete while still running Added CleanupState database model for persistent cleanup operation tracking Tracks cleanup progress across multiple workers Maintains state even if workers restart [2.0.36] - 2025-01-18 Added Enhanced logging for cleanup orphaned records operation Now logs the file paths of orphaned records found (first 100 files) Provides better visibility into which files were removed from the database Fixed Fixed cleanup orphaned records UI showing 0 cleaned when backend actually cleaned records Backend now preserves orphaned_found count in completion state UI correctly displays the number of orphaned records removed [2.0.35] - 2025-01-18 Fixed Fixed Docker build version display issue (was showing 2.0.14 instead of actual version) Updated Dockerfile ARG to properly pass APP_VERSION [2.0.34] - 2025-01-18 Added Parallel Hash Processing for File Changes Check: File changes check now uses parallel processing with configured MAX_SCAN_WORKERS (default: 4) Dramatically improves performance when checking large databases (1M+ files) Processes files in parallel within each batch for maximum efficiency Enhanced Progress Tracking: Added batch completion logging for all long-running operations Real-time ETA calculation shows estimated time remaining Progress messages now show current batch number and total batches Detailed logging of batch processing times for performance monitoring Operation Cancellation Support: Added cancel button to progress bar UI for all operations New API endpoints: /api/cancel-scan, /api/cancel-cleanup, /api/cancel-file-changes All operations (scan, cleanup, file changes) can now be gracefully cancelled Cancellation properly cleans up state and stops processing UI dynamically shows stop button during operations Timeout Handling for File Processing: Added 5-minute timeout for individual file hash calculations Files that exceed timeout are logged as ERROR and skipped Prevents single large files from blocking entire operation Fixed Progress Bar Persistence During App Initialization: Fixed issue where progress bar would disappear when PixelProbe startup occurs during ongoing operations App initialization now checks for all ongoing operations (scan, cleanup, file-changes), not just scans Progress bar correctly resumes monitoring any in-progress operation after page reload or app restart Ensures file-changes and cleanup operations maintain their progress display throughout the entire process [2.0.32] - 2025-01-17 Fixed File Changes Progress Tracking: Added batch processing logs to show progress during file changes check Added start and completion logs for better visibility File changes check now properly logs progress for million+ file operations [2.0.31] - 2025-01-17 Fixed Force version update to ensure proper deployment Same fixes as 2.0.30 but with clean rebuild [2.0.30] - 2025-01-17 Fixed Cleanup Orphans Progress Bar: Fixed progress bar jumping to 100% and disappearing while scan continues in background Added proper handling for cases where no orphaned files are found Progress bar now accurately reflects Phase 1 (file checking) completion Added detailed batch processing logs to track actual scan progress Progress bar remains visible until the entire operation completes, not just the deletion phase [2.0.29] - 2025-01-17 Enhanced File Change Detection Improvements: Now calculates hashes for ALL files, not just those with changed timestamps Detects silent file corruption and any modifications regardless of timestamp changes Processes files in batches of 1000 records to handle databases with millions of files Phase-based progress tracking with persistent progress bar throughout entire process Memory efficient processing that can handle large databases without issues Orphaned Files Cleanup Optimization: Completely rewritten to use batched queries instead of loading entire database into memory Processes files in batches of 1000 records for checking file existence Stores only file IDs during detection phase to minimize memory usage Bulk deletion operations in batches of 1000 for efficient database cleanup Two-phase progress tracking: Phase 1 for detection, Phase 2 for deletion Can handle databases with millions of files without memory issues Unified Progress Display: All operations (scan, file changes, cleanup) now use consistent phase-based progress tracking Progress bars persist throughout entire operation with clear phase indicators Real-time file processing updates showing current file and counts Progress percentage calculated based on current phase completion Consistent UI experience across all long-running operations
1 parent 721d916 commit 6fdb1d1

18 files changed

Lines changed: 3321 additions & 272 deletions

CHANGELOG.MD

Lines changed: 323 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,329 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.0.53] - 2025-01-20
11+
12+
### Fixed
13+
- **File Changes Scan**: Fixed progress tracking to update per-file instead of per-batch for smooth progress bar updates
14+
- **File Changes Scan**: Replaced direct database commits with write queue pattern for consistent async updates
15+
- **File Changes Scan**: Progress bar now shows real-time file processing status like the normal scan
16+
- **File Changes Scan**: Fixed missing start_time initialization that prevented progress calculations from working
17+
18+
## [2.0.52] - 2025-01-19
19+
20+
### Fixed
21+
- **Critical Fix**: Fixed undefined variable error (`offset`) in batch processing that prevented database updates
22+
- **Major Fix**: Database updates were not being recorded during scans due to NameError in logging statement
23+
- **Improved**: Enhanced batch processing to accumulate results before database writes for better efficiency
24+
- **Added**: Comprehensive logging throughout the scanning and database update pipeline
25+
- **Added**: Thread verification to ensure database write thread is running properly
26+
- **Fixed**: Improved error handling in scan thread to show errors in UI instead of failing silently
27+
28+
## [2.0.51] - 2025-01-20
29+
30+
### Fixed
31+
- Removed timeout restrictions from file-changes hash calculations
32+
- Files are now checked regardless of how long they take
33+
- Removed 5-minute timeout that was causing large files to be skipped
34+
- Renamed process_file_with_timeout to process_file_for_changes to reflect new behavior
35+
36+
### Added
37+
- Enhanced progress logging for large file hash calculations
38+
- Progress updates every 100MB for large files
39+
- Completion time logged for files taking more than 10 seconds
40+
- Better visibility into which files are taking longer to process
41+
42+
## [2.0.50] - 2025-01-20
43+
44+
### Fixed
45+
- Fixed files_processed counter not incrementing during file-changes scans
46+
- Database updates now occur more frequently (every 5 files instead of 10)
47+
- Added forced database update at the end of each batch to ensure progress is saved
48+
- Added logging to track when database updates occur
49+
- Progress now updates correctly even when some files timeout during hash calculation
50+
51+
## [2.0.49] - 2025-01-20
52+
53+
### Fixed
54+
- Fixed missing Phase 3 implementation in file-changes scan
55+
- Phase 3 now properly verifies changed files for corruption
56+
- Updates corrupted_found counter correctly
57+
- Shows smooth progress from 85% to 100%
58+
- Handles case where no files changed with proper phase transition
59+
- Fixed database updates during file-changes scan
60+
- files_processed counter now updates correctly in database during Phase 2
61+
- phase_current is properly synchronized with files_processed
62+
- Progress updates are persisted every 10 files for better tracking
63+
- Final completion state and results are now saved to database
64+
- Fixed progress display showing 0 files_processed despite current_file changing
65+
66+
## [2.0.48] - 2025-01-19
67+
68+
### Fixed
69+
- Fixed file-changes scan state persistence - state is now stored in database instead of memory
70+
- File-changes scan now properly maintains progress across app restarts
71+
- Added FileChangesState database model to track scan state persistently
72+
- File-changes scan now has proper 3-phase process:
73+
- Phase 1: Starting scan process
74+
- Phase 2: Checking all file hashes
75+
- Phase 3: Verifying changed files for corruption
76+
77+
## [2.0.47] - 2025-01-19
78+
79+
### Fixed
80+
- Fixed file-changes scan progress not updating - status now updates immediately when each file starts processing instead of after completion
81+
- Fixed file-changes scan progress percentage calculation to properly reflect files processed out of total database entries
82+
83+
## [2.0.46] - 2025-01-19
84+
85+
### Fixed
86+
- Fixed 308 redirect issue when adding path exclusions starting with '/' by changing API to use request body instead of URL path parameters
87+
88+
## [2.0.45] - 2025-01-19
89+
90+
### Added
91+
- **Enhanced Exclusions Management UI**
92+
- Replaced textarea-based exclusions with interactive list UI
93+
- Added individual remove buttons for each excluded path and extension
94+
- Added ability to add exclusions one at a time with dedicated input fields
95+
- Press Enter to quickly add new exclusions
96+
- API endpoints for adding and removing individual exclusions
97+
98+
### Documentation
99+
- Updated README with screenshots of new features
100+
- Added Advanced Features section showcasing scheduled scanning and exclusions
101+
- Updated version references throughout documentation
102+
103+
## [2.0.44] - 2025-01-18
104+
105+
### Added
106+
- **Scan Type Selection for Scheduled Scans**
107+
- Added ability to specify scan type when creating scheduled scans
108+
- Supported scan types: Normal Scan, Orphan Cleanup, File Changes Scan
109+
- Updated UI to include scan type dropdown in schedule creation form
110+
- Display scan type in schedules list
111+
- Database migration to add scan_type field to existing schedules
112+
113+
## [2.0.43] - 2025-01-18
114+
115+
### Fixed
116+
- Fixed import error in scheduler.py that was preventing the container from starting
117+
- Removed unused import of scan_files_parallel from media_checker module
118+
119+
## [2.0.42] - 2025-01-18
120+
121+
### Fixed
122+
- Rebuilt Docker image without cache to ensure all changes are included
123+
- Same features as 2.0.41 but with fresh build
124+
125+
## [2.0.41] - 2025-01-18
126+
127+
### Added
128+
- **Scheduled Scanning and Cleanup**
129+
- Added automatic periodic scanning with cron and interval-based scheduling
130+
- Added automatic cleanup scheduling for orphaned records
131+
- Configurable via environment variables (PERIODIC_SCAN_SCHEDULE, CLEANUP_SCHEDULE)
132+
- Support for both cron expressions and simple intervals (e.g., "interval:hours:6")
133+
- UI interface for managing scan schedules
134+
- API endpoints for creating, updating, and deleting schedules
135+
- File hash checking already exists and is used during deep scans
136+
137+
- **Path and Extension Exclusions**
138+
- Added ability to exclude specific paths from scanning
139+
- Added ability to exclude specific file extensions
140+
- Configurable via environment variables (EXCLUDED_PATHS, EXCLUDED_EXTENSIONS)
141+
- UI interface for managing exclusions
142+
- API endpoints for updating exclusions (/api/exclusions)
143+
- Exclusions are applied during file discovery and scanning
144+
145+
- **Schedule Management API**
146+
- GET /api/schedules - List all schedules
147+
- POST /api/schedules - Create new schedule
148+
- PUT /api/schedules/{id} - Update schedule
149+
- DELETE /api/schedules/{id} - Delete schedule
150+
151+
- Enhanced API documentation with comprehensive examples
152+
- Added cURL examples for all major endpoints
153+
- Added code examples in Python, JavaScript/Node.js, Bash, and PowerShell
154+
- Added request/response examples for all endpoints
155+
- Documented all query parameters and request body fields
156+
- Added documentation for maintenance endpoints (cleanup, file changes, recovery)
157+
- Added documentation for configuration management endpoints
158+
159+
### Changed
160+
- Updated PixelProbe class to accept excluded paths and extensions
161+
- Modified file discovery to respect exclusions during directory traversal
162+
- Updated API documentation to reflect actual endpoint behavior
163+
- Fixed scan-file endpoint documentation to use file_path instead of file_id
164+
- Added support for both GET and POST methods on export-csv endpoint
165+
- Added documentation for all status monitoring endpoints
166+
- Clarified file-changes endpoint checks modification time, not hash
167+
168+
### Fixed
169+
- Fixed file changes progress bar not staying active during the entire operation
170+
- Added proper phase tracking to file changes state initialization
171+
- Added progress percentage updates during batch processing
172+
- Fixed frontend to keep showing progress during phase transitions
173+
- Ensured progress bar shows 100% on completion before hiding
174+
175+
## [2.0.40] - 2025-01-18
176+
177+
### Fixed
178+
- Fixed cleanup operation progress calculation showing incorrect percentage
179+
- Progress was showing ~6% when actual progress was ~12% due to incorrect phase weighting
180+
- Backend now weights checking phase as 90% and deleting phase as 10% of total progress
181+
- Frontend now uses progress percentage directly from backend instead of recalculating
182+
- This reflects reality where checking all files is the bulk of the work
183+
- Fixed file-changes operation progress calculation
184+
- Frontend now uses progress percentage directly from backend
185+
- Prevents inconsistency between backend and frontend calculations
186+
187+
## [2.0.39] - 2025-01-18
188+
189+
### Fixed
190+
- Fixed progress bar showing incorrect "Scan completed!" message when cleanup is running
191+
- UI now correctly passes operation type to progress monitoring on page load
192+
- Progress completion messages now match the actual operation type (scan/cleanup/file-changes)
193+
- Added endpoint to reset stuck cleanup state after container restart
194+
- New `/api/reset-cleanup-state` endpoint marks stuck cleanup operations as interrupted
195+
- Prevents progress bar from appearing indefinitely when cleanup state is corrupted
196+
197+
## [2.0.38] - 2025-01-18
198+
199+
### Fixed
200+
- Fixed progress bar stuck at 100% after rescan completes
201+
- Database write queue now properly updates scan state with correct structure
202+
- is_active flag is now correctly set to False when scan completes
203+
- Prevents stats update thread from continuously showing scan as active
204+
- Fixed "Failed to cleanup orphaned entries" error in UI
205+
- Fixed timezone mismatch error in cleanup status endpoint
206+
- Now handles both timezone-aware and timezone-naive datetimes from database
207+
- Cleanup operations should now complete and report status correctly
208+
209+
## [2.0.37] - 2025-01-18
210+
211+
### Fixed
212+
- CSV export now properly exports filtered results when no files are selected
213+
- Exports only corrupted files when "Corrupted" filter is active
214+
- Exports only warning files when "Warnings" filter is active
215+
- Exports only healthy files when "Healthy" filter is active
216+
- Respects current search query in combination with filters
217+
- Improved export notification to clearly indicate what's being exported
218+
- H.264 reference frame warnings are now properly handled as warnings instead of corruption
219+
- Files with "number of reference frames exceeds max" errors are marked with warnings
220+
- These files play normally despite the encoding issue
221+
- Prevents false positives for files encoded with non-standard reference frame counts
222+
- Fixed cleanup orphaned records progress tracking in multi-worker environment
223+
- Cleanup state is now stored in database instead of memory
224+
- Progress updates work correctly across all gunicorn workers
225+
- UI accurately reflects cleanup progress throughout the operation
226+
- Prevents race conditions where cleanup appears complete while still running
227+
228+
### Added
229+
- CleanupState database model for persistent cleanup operation tracking
230+
- Tracks cleanup progress across multiple workers
231+
- Maintains state even if workers restart
232+
233+
## [2.0.36] - 2025-01-18
234+
235+
### Added
236+
- Enhanced logging for cleanup orphaned records operation
237+
- Now logs the file paths of orphaned records found (first 100 files)
238+
- Provides better visibility into which files were removed from the database
239+
240+
### Fixed
241+
- Fixed cleanup orphaned records UI showing 0 cleaned when backend actually cleaned records
242+
- Backend now preserves orphaned_found count in completion state
243+
- UI correctly displays the number of orphaned records removed
244+
245+
## [2.0.35] - 2025-01-18
246+
247+
### Fixed
248+
- Fixed Docker build version display issue (was showing 2.0.14 instead of actual version)
249+
- Updated Dockerfile ARG to properly pass APP_VERSION
250+
251+
## [2.0.34] - 2025-01-18
252+
253+
### Added
254+
- **Parallel Hash Processing for File Changes Check**:
255+
- File changes check now uses parallel processing with configured MAX_SCAN_WORKERS (default: 4)
256+
- Dramatically improves performance when checking large databases (1M+ files)
257+
- Processes files in parallel within each batch for maximum efficiency
258+
259+
- **Enhanced Progress Tracking**:
260+
- Added batch completion logging for all long-running operations
261+
- Real-time ETA calculation shows estimated time remaining
262+
- Progress messages now show current batch number and total batches
263+
- Detailed logging of batch processing times for performance monitoring
264+
265+
- **Operation Cancellation Support**:
266+
- Added cancel button to progress bar UI for all operations
267+
- New API endpoints: `/api/cancel-scan`, `/api/cancel-cleanup`, `/api/cancel-file-changes`
268+
- All operations (scan, cleanup, file changes) can now be gracefully cancelled
269+
- Cancellation properly cleans up state and stops processing
270+
- UI dynamically shows stop button during operations
271+
272+
- **Timeout Handling for File Processing**:
273+
- Added 5-minute timeout for individual file hash calculations
274+
- Files that exceed timeout are logged as ERROR and skipped
275+
- Prevents single large files from blocking entire operation
276+
277+
### Fixed
278+
- **Progress Bar Persistence During App Initialization**:
279+
- Fixed issue where progress bar would disappear when PixelProbe startup occurs during ongoing operations
280+
- App initialization now checks for all ongoing operations (scan, cleanup, file-changes), not just scans
281+
- Progress bar correctly resumes monitoring any in-progress operation after page reload or app restart
282+
- Ensures file-changes and cleanup operations maintain their progress display throughout the entire process
283+
284+
## [2.0.32] - 2025-01-17
285+
286+
### Fixed
287+
- **File Changes Progress Tracking**:
288+
- Added batch processing logs to show progress during file changes check
289+
- Added start and completion logs for better visibility
290+
- File changes check now properly logs progress for million+ file operations
291+
292+
## [2.0.31] - 2025-01-17
293+
294+
### Fixed
295+
- Force version update to ensure proper deployment
296+
- Same fixes as 2.0.30 but with clean rebuild
297+
298+
## [2.0.30] - 2025-01-17
299+
300+
### Fixed
301+
- **Cleanup Orphans Progress Bar**:
302+
- Fixed progress bar jumping to 100% and disappearing while scan continues in background
303+
- Added proper handling for cases where no orphaned files are found
304+
- Progress bar now accurately reflects Phase 1 (file checking) completion
305+
- Added detailed batch processing logs to track actual scan progress
306+
- Progress bar remains visible until the entire operation completes, not just the deletion phase
307+
308+
## [2.0.29] - 2025-01-17
309+
310+
### Enhanced
311+
- **File Change Detection Improvements**:
312+
- Now calculates hashes for ALL files, not just those with changed timestamps
313+
- Detects silent file corruption and any modifications regardless of timestamp changes
314+
- Processes files in batches of 1000 records to handle databases with millions of files
315+
- Phase-based progress tracking with persistent progress bar throughout entire process
316+
- Memory efficient processing that can handle large databases without issues
317+
318+
- **Orphaned Files Cleanup Optimization**:
319+
- Completely rewritten to use batched queries instead of loading entire database into memory
320+
- Processes files in batches of 1000 records for checking file existence
321+
- Stores only file IDs during detection phase to minimize memory usage
322+
- Bulk deletion operations in batches of 1000 for efficient database cleanup
323+
- Two-phase progress tracking: Phase 1 for detection, Phase 2 for deletion
324+
- Can handle databases with millions of files without memory issues
325+
326+
- **Unified Progress Display**:
327+
- All operations (scan, file changes, cleanup) now use consistent phase-based progress tracking
328+
- Progress bars persist throughout entire operation with clear phase indicators
329+
- Real-time file processing updates showing current file and counts
330+
- Progress percentage calculated based on current phase completion
331+
- Consistent UI experience across all long-running operations
332+
10333
## [2.0.28] - 2025-07-16
11334

12335
### Fixed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ENV FLASK_APP=app.py
2222
ENV FLASK_ENV=production
2323

2424
# Set version as build argument
25-
ARG VERSION=2.0.14
26-
ENV APP_VERSION=$VERSION
25+
ARG APP_VERSION=2.0.53
26+
ENV APP_VERSION=$APP_VERSION
2727

2828
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "4", "--timeout", "300", "app:app"]

0 commit comments

Comments
 (0)