Changelog
All notable changes to CTHarvester will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.2.3-beta.2] - 2025-10-08
Added
Comprehensive keyboard shortcuts system (24 shortcuts)
File operations: Open directory (Ctrl+O), Save cropped (Ctrl+S), Export (Ctrl+E)
View operations: Screenshot (F12)
Navigation: Previous/Next image (Ctrl+Left/Right), First/Last (Ctrl+Home/End)
Crop operations: Load/Save crop (Ctrl+Shift+L/S), Reset crop (Ctrl+R)
Threshold operations: Load/Save threshold (Ctrl+Alt+L/S), Reset threshold (Ctrl+T)
Help: Shortcuts help (F1)
Settings: Open settings (Ctrl+,)
Complete tooltip coverage (100% on interactive elements)
Rich HTML formatting with keyboard shortcuts
Consistent styling across all UI elements
Professional UI styling system
8px grid spacing system for consistency
Standardized button sizes (32px height, 32x32px icons)
Unified color palette (Primary, Danger, Success, Warning, Neutral)
Centralized style configuration (
config/ui_style.py)
Enhanced progress feedback
Remaining items counter
ETA calculation with sophisticated smoothing
Percentage progress display
Cancel functionality for long operations
Comprehensive user documentation (2,500+ lines)
Troubleshooting guide with 25+ scenarios
FAQ with 60+ questions answered
Advanced features guide with detailed examples
Complete workflow documentation
Performance benchmarking infrastructure
Standard benchmark scenarios (Small/Medium/Large/XLarge)
4 performance tests with memory profiling
Performance thresholds and validation
CI/CD compatible quick tests
Stress testing suite (9 tests)
Memory leak detection tests
Long-running operation stability tests
Resource cleanup verification
Concurrent batch processing tests
Error recovery testing (18 tests)
File system error handling (permission, OS errors)
Image processing errors (corrupt, invalid format)
Network drive disconnection scenarios
Graceful degradation mechanisms
Developer documentation (1,500+ lines)
Error recovery guide (650 lines)
Performance guide (850 lines)
Best practices and patterns
Troubleshooting guides
Changed
UI/UX improvements
Applied consistent 8px grid spacing throughout
Standardized button styling and sizing
Enhanced progress dialog with remaining items
Improved keyboard navigation
Documentation organization
Restructured user guide sections
Added comprehensive developer guides
Created detailed troubleshooting sections
Test suite expansion
Total tests: 1,150 (+18 from previous version)
Quick tests: 1,133 (< 1 minute)
Slow tests: 17 (> 1 minute)
Performance tests: 4
Stress tests: 9
Error recovery tests: 18
Coverage maintained at ~91%
Performance
Benchmark results:
Small dataset (10 images, 512×512, 8-bit): < 1s
Medium dataset (100 images, 1024×1024, 8-bit): ~7s
Large dataset (500 images, 2048×2048, 16-bit): ~188s (3 minutes)
Image resize: < 200ms per image
Memory efficiency:
Small datasets: < 150 MB
Medium datasets: < 200 MB (with batching)
Large datasets: < 3 GB (with batching)
Memory cleanup: > 50% freed after operations
Processing speed:
Thumbnail generation (Rust): ~50ms per image
Thumbnail generation (Python): ~100-200ms per image
Full processing: ~300-400ms per image
Robustness verified:
No memory leaks detected
All resources properly cleaned up
Stable performance over long operations
Linear scaling with dataset size
Technical Details
UI Infrastructure:
ui/setup/shortcuts_setup.py: Keyboard shortcut managementconfig/ui_style.py: Centralized UI stylingconfig/tooltips.py: Tooltip managementtests/test_ui_style.py: 23 UI style tests
Performance Infrastructure:
tests/benchmarks/benchmark_config.py: Benchmark scenariostests/benchmarks/test_performance.py: 4 performance teststests/benchmarks/test_stress.py: 9 stress teststests/test_error_recovery.py: 18 error recovery tests
CI/CD Infrastructure (Comprehensive improvements - Score: 95/100):
Security Scanning:
.github/workflows/codeql.yml: CodeQL SAST analysis (weekly + PR).github/workflows/dependency-review.yml: Dependency vulnerability checks on PRsEnhanced Bandit and pip-audit security scanning
Test Workflows:
.github/workflows/test.yml: Quick tests (1,129 tests, ~30s with parallelization).github/workflows/test-full.yml: Comprehensive tests (1,150 tests, nightly + tags)Python 3.11, 3.12, 3.13 matrix testing
Coverage threshold: 85% (up from 60%)
Parallel execution with pytest-xdist (2-3x speedup)
Release Automation:
.github/workflows/release.yml: CHANGELOG.md content extraction.github/workflows/update-readme-badges.yml: Auto-updating test count badgesEnhanced release notes with installation guide and docs links
Artifact Management:
Test results: 7-day retention
Build artifacts: 14-day retention
Security reports: 30-day retention
Documentation:
docs/CI_CD_AUDIT.md: Comprehensive CI/CD audit reportdevlog/20251008_099_cicd_improvements.md: Implementation details
Documentation:
docs/user_guide/troubleshooting.rst: Troubleshooting guidedocs/user_guide/faq.rst: Frequently asked questionsdocs/user_guide/advanced_features.rst: Advanced featuresdocs/developer_guide/error_recovery.md: Error recovery patternsdocs/developer_guide/performance.md: Performance characteristics
[0.2.3-beta.1] - 2025-10-01
Added
Python thumbnail generation fallback when Rust module unavailable
Comprehensive progress tracking with accurate ETA calculation
Settings persistence for Rust module preference
Fixed
Python thumbnail generation progress calculation (now shows correct 88% at Level 1 completion)
Settings not persisting when “Use Rust module” checkbox changed
AttributeErrors in Python thumbnail generation
Progress bar showing incorrect percentages
Changed
Simplified progress tracking architecture (removed callback-based approach)
Weight calculation now reflects actual data volume ratio (64:8:1)
Direct signal-based progress updates via ProgressManager
[0.2.3-alpha.1] - 2025-09-27
Added
Multi-level LoD pyramid thumbnail generation
Rust-based high-performance thumbnail module
Comprehensive testing infrastructure
[0.2.2] - 2025-09-08
Added
Phase 1: UI/UX Improvements
Simple linear progress tracking with moving average ETA (
SimpleProgressTracker)Non-blocking 3D mesh generation using background threads
User-friendly error messages with solutions (
ErrorMessageBuilder)Complete internationalization foundation (
TranslationManager)Comprehensive keyboard shortcuts system (
ShortcutManager)Rich HTML tooltips with shortcuts and descriptions (
TooltipManager)Keyboard shortcuts help dialog
Phase 2: Settings Management
YAML-based settings management (
SettingsManager)Comprehensive settings GUI with 5 tabs:
General: Language, theme, window preferences
Thumbnails: Size, sample, compression settings
Processing: Threads, memory, Rust module
Rendering: Threshold, anti-aliasing, FPS
Advanced: Logging, export options
Settings import/export functionality
Reset to defaults feature
Platform-independent configuration storage
Phase 3: Documentation
Google-style docstrings for all public APIs
Sphinx-based API documentation
Comprehensive user guide
Developer guide with contribution guidelines
Installation guide for multiple platforms
Changed
Migrated from QSettings to YAML-based configuration
Replaced 3-stage progress sampling with simple linear tracking
Improved progress ETA accuracy with weighted calculations
Updated all core modules with comprehensive docstrings
Removed
QSettings-based configuration (replaced with YAML)
Old PreferencesDialog (replaced with SettingsDialog)
Settings migration code (not needed for fresh installations)
Complex 3-stage progress sampling
Fixed
Thread safety issues in thumbnail generation
Progress tracking inaccuracies
UI blocking during 3D mesh generation
Security
Implemented secure file validation (
SecureFileValidator)Added path traversal attack prevention
Whitelist-based file extension validation
Performance
10-50x faster thumbnail generation with Rust module
Optimized progress tracking with moving averages
Non-blocking UI operations
[0.2.1] - 2025-09-08
Added
Initial modular architecture
Core business logic extraction
Basic thumbnail generation
3D visualization with Marching Cubes
Image stack cropping and export
[0.2.0] - 2025-09-06
Added
Initial release
Basic CT image loading
Thumbnail generation (Python only)
Simple 3D visualization
Notes
Version Numbering
Major version (X.0.0): Incompatible API changes
Minor version (0.X.0): New features, backward compatible
Patch version (0.0.X): Bug fixes, backward compatible
Release Schedule
Major releases: Yearly
Minor releases: Quarterly
Patch releases: As needed
Support Policy
Latest major version: Full support
Previous major version: Security fixes only
Older versions: No support
Migration Guides
See the developer guide for migration instructions when upgrading between major versions.