Patch 37 focuses on stabilization and packaging readiness rather than new feature bloat.
- App version bumped to 2.3.0.
- Added
release_validation.pyfor repeatable release-readiness checks. - Added
python app.py --validate-releaseheadless validation mode. - Added PyInstaller spec and build scripts.
- Added installer build notes and a final release checklist.
- Added static installer About snapshot and update manifest example.
- Fixed a runtime bug in an earlier duplicate external job callback where an undefined
statusvariable could crash organizer/history callbacks.
release_validation.py checks:
- Python syntax for core files
- required release/build files
- Images -> PDF conversion using generated PNG files
- recursive image folder PDF generation
- OCR/Tesseract detection status shape
- clear rejection of
pytesseract.exe - release version consistency across release files
LibreOffice remains optional and user-configurable. Pure Python remains the default engine. Tesseract remains optional unless you want bundled OCR support in the installer.