Status: Shipped
PR: #97
Depends on: milestones/validate-fail-closed.md,
milestones/manim-unsafe-unicode.md (PR #96)
Validator._check_layout already skips when tesseract is missing
(passed=True, same as OCR). After tesseract is present, any unexpected
exception from LayoutValidator.validate_video (TypeError, KeyError, bad
OCR payload, etc.) returned passed=True with
"Layout check error (skipped): …".
_check_streams and _check_drift already return passed=False on the
same kind of crash. Layout is in --pre-push soft_checks, so a crash
printed as a skip and the command still said All checks passed.
Treat layout runtime errors as a failed check. Tesseract-not-installed remains a skip.
- Unexpected exceptions in
_check_layoutreturnpassed=False. - Tesseract missing still skips with
passed=True. - Tests for the crash path and the tesseract-skip path.
-
ruff check src/ tests/ -
pytest tests/ -
docgen benchmark(no clock change)
- Layout / OCR / av_sync remain soft in
validate --pre-push. - Tesseract missing still skips OCR, layout, and av_sync.
av_syncswallowing unreadable*.scene.yamlis a separate hole.