fitzee opened a new pull request, #44465: URL: https://github.com/apache/superset/pull/44465
## TL;DR Validate the actual screenshot bytes used in scheduled PDF/PNG delivery, and require the delivered PDF to match the bytes assembled from validated images. This is the capture-only split from #44336, based directly on master; it does not depend on that PR or add retry fields or migrations. ### SUMMARY Master already includes capture readiness, perceptual blank detection, capture-time stability checks and sticky capture rejection (#43784, #44034, #44114, #44191). This adds final-image validation, exact-PDF provenance and fail-closed handling when standard capture cannot establish content state. It also adds chart-holder diagnostics. The detection-policy changes require separate scrutiny: more neutral light-grey backgrounds are classified as blank, while sparse readable text and solid-colour visualizations are retained. A title-only page or dark background can still pass. Visible query-error panels remain deliverable, with diagnostic warnings. This is not a guarantee that every rendering defect is detected. PDF provenance validates its source images and exact assembled bytes; it does not rasterize and visually inspect the finished PDF. The diff includes realistic image fixtures and diagnostics tests alongside the delivery-boundary checks. Whole-execution retries and ownership fencing remain in #44336. ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF No UI change. Previously, successful capture provenance alone could allow corrupt or unvalidated final bytes through. These additional checks reject those artifacts before delivery. The classifier fixtures cover white/light-grey placeholders, sparse labels and solid-colour output; live browser canaries remain necessary. ### TESTING INSTRUCTIONS - 357 unit tests passed across report execution, screenshot utilities, webdriver and execution-context tests. - 146 PostgreSQL report/dashboard integration tests passed. - All changed-file pre-commit hooks passed, including mypy, Ruff and pylint. - Regression tests cover undecodable images, near-white placeholders, sparse content and substitution of PDF bytes after validated assembly. - Manually exercise scheduled PDF and PNG output, including legitimate empty/error panels, sparse charts and tall dashboards. Confirm rejected captures never reach notification transport and inspect holder-state diagnostics. ### ADDITIONAL INFORMATION - [ ] Has associated issue - [ ] Required new feature flags - [ ] Changes UI - [ ] Includes DB Migration - [ ] Introduces new feature or API - [ ] Removes existing feature or API Risk: false rejection can suppress delivery; false negatives remain possible. The classifier also affects tiled-thumbnail retry decisions. Reverting this PR restores master's existing capture safeguards, not an unchecked capture path. No schema rollback is needed. CI and live scheduled-report canaries must pass before rollout. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
