Development
uv sync
uv run pytest -q
uvx ruff check # rule set pinned in pyproject.toml; the tree is clean
Some tests call a live judge.
They are skipped unless TALKINGHEAD_JUDGE_TESTS=1 is set, and that setting needs a working judge.
The test suite removes TALKINGHEAD_JUDGE, TALKINGHEAD_TRANSCRIBER, TALKINGHEAD_CONFIG and TALKINGHEAD_PROFILE for each test, so your shell settings do not leak into it.
The code is in src/talkinghead/.
scripts/render_proof.py is the maintainer’s 31-minute render measurement. It reads TALKINGHEAD_RENDER_PROOF_SOURCE and TALKINGHEAD_RENDER_PROOF_OUT_DIR when its --source and --out-dir flags are not given.
docs/architecture.md maps each stage to its file.
docs/render-proof.md records the measurement behind the render strategy.
docs/noise-detector-spec.md records the mouth-noise calibration.
docs/releasing.md explains how every push becomes a tagged release and how the version number is chosen.