Enriches the report readiness/capture log lines with the per-state
holder breakdown proven out in production:
- ChartHolderDiagnostics (report_execution.py): structured counts
separating capture readiness from semantic success, with
TERMINAL_CHART_HOLDER_STATES and the explicit
CHART_HOLDER_SEMANTIC_POLICY=deliver_terminal_errors_with_warning.
- report_readiness_poll/_ready/_terminal now carry rendered/empty/
error/virtualized/unready counts and semantic_success on both the
Playwright and Selenium paths.
- report_readiness_tile: per-tile readiness diagnostics during tiled
capture, with each holder's strongest observed terminal state
aggregated across tiles for the final ready line.
- report_semantic_status: a WARNING whenever capture readiness is
satisfied but the artifact contains terminal chart errors — delivery
is not semantic completeness, and this makes the distinction
operator-visible (and alertable) per tile and per capture.
- Restores the explicit zero-holder thumbnail diagnostic on the
no-context path.
Logging-only: no readiness predicate, budget, or delivery behavior
changes. Unit tests pin the diagnostics counts and the enriched line
formats.
Co-Authored-By: Claude <noreply@anthropic.com>