What's Changed
Bug Fixes & Hardening — Riskstorming v1 Mitigations (#138)
Address critical, high, and medium risks identified in the riskstorming report across 9 areas:
- Fix datamatrix ignore-area
y:key typo that caused masking failures downstream inget_image_with_ignore_areas(). - Remove dead code from
IgnoreAreaManager(methods crashed on non-existentself.opencv_images). - Rewrite
Downloaderwith proper URL parsing, GitHubblob→rawURL conversion, scheme validation (http/https/ftp), 100 MB size limit, and HTML content sniffing to warn on redirected login/error pages. - Fix PostScript grammar (
PrintJobTests) to accept generic DSC comments, optional setup sections, and trailer data lines. Mock-based parser tests were replaced with real-fixture parsing tests. - Replace 97
print()calls withrobot.api.logger/loggingacross all modules for proper Robot Framework log integration at correct log levels. - Narrow exception handling — 4 bare
except:replaced with specific types; 33 remaining broad handlers documented. - Add
CapabilityCheckmodule with environment preflight detection for 7 capabilities (tesseract,ghostscript,ghostpcl,imagemagick,pymupdf,pyzbar,openai) and aCheck DocTest EnvironmentRobot Framework keyword. - Add 34 LLM mock tests covering all decision branches (approve / reject / flag / error / timeout / missing-deps) with no real API calls.
- Add 11 performance benchmarks for load time, comparison speed, and memory management.
Test suite: 393 → 510 tests (+117), 0 failures, 3 skipped.