- repair.py: 10 [repair]-tagged diagnostic prints migrated to logger.error/info/warning with printf-style formatting
- commands/ocr.py: 4 [INFO]/[WARN] diagnostic prints migrated to logger.info/warning
- worker/update.py: _log() and _color() functions removed; all 36 _log() call sites migrated to logger.*()
- All user-facing stdout print() calls preserved (4 in repair.py, 6 in commands/ocr.py _diagnose(), 2 in update.py for pip/git output)
- All migrated calls use printf-style %%s/%%d formatting for lazy evaluation
- Added import logging and logger = logging.getLogger(__name__) to:
worker: repair, deep_reading, ocr, sync, status, base_views, update
commands: ocr, repair, deep, sync, status
- 12 of 13 planned files completed (paperforge/update.py does not exist on disk - skipped)
- Verified all logger instances resolve to correct hierarchical names
- Create paperforge/worker/ package with sync.py, ocr.py, repair.py,
status.py, deep_reading.py, update.py, base_views.py
- Update paperforge/commands/*.py to import from new worker modules
- Update paperforge/cli.py _import_worker_functions for new paths
- Update paperforge/config.py ld_deep_script resolution with fallback
- Update setup_wizard.py for new worker/skills paths
- Add function-level imports to break circular dependencies