Status: Shipped
PR: #136
Depends on: milestones/ffprobe-returncode.md (PR #135)
PR #135 made duration probes honor ffprobe returncode (None on
failure). timing_sync still treated None as a passed skip.
When the mp3 and timing.json both exist, that skip hides stale
timestamps: docgen validate and --pre-push (where timing_sync
is a hard check) look green.
Missing audio / LFS pointers / disabled config stay skipped.
If audio is present (not an LFS pointer) and a timing block has
words / segments ends, a failed duration probe is
timing_sync failed.
- Probe
Nonefailstiming_sync(does not skip as passed) - Missing audio still skips
-
ruff check src/ tests/ -
pytest tests/(771 passed, 1 skipped) -
docgen benchmark(no clock change; meets baseline)
- Manim/simple compose SKIP when probes fail (CLI still fails if short)
story_endstill falls back to transcript end when probe fails