diff --git a/AGENTS.md b/AGENTS.md index 83f4d4a..59c5309 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -332,7 +332,7 @@ fails loudly. Pi with `large-v3-turbo` lands on 1 worker. `TORCH_THREADS=0` auto-splits threads across the active workers. - mlx-whisper is pinned in the `mac` extra (`mlx-whisper==0.4.3`; `pip check` - is clean next to `torch==2.11.0`). `whisper_mlx.py` relies on its + is clean next to `torch==2.14.1`). `whisper_mlx.py` relies on its `ModelHolder`, so a bump must keep `tests/test_whisper_runtime.py` green and rerun the slow mlx test. - `transcript_combobulator.whisper.load_whisper_model` loads by file path on purpose. Loading by @@ -370,9 +370,10 @@ fails loudly. ## Dependencies (gotchas) -- `torch` and `torchaudio` are an exact pair; torchaudio's wheel declares no - dependencies so pip will not enforce it. torchaudio 2.11.0 is the final - maintenance line and caps torch. `torchaudio` must stay importable for +- torchaudio 2.11.0 is built against PyTorch's stable ABI and runs with torch + 2.11 and later (see its installation docs' compatibility matrix), so it does + not cap torch. Its wheel declares no dependencies, so pip does not check the + pairing. `torchaudio` must stay importable for `silero-vad`, but nothing calls its I/O: audio goes through `soundfile` and `ffmpeg`, so `torchcodec` (ABI-locked to torch, no aarch64 wheel before 0.11) is deliberately not a dependency. Do not reintroduce diff --git a/pyproject.toml b/pyproject.toml index 930a44a..31164d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,10 +9,11 @@ keywords = [] authors = [ { name = "Sean Kennedy", email = "sean@codeserious.com" } ] -# torch and torchaudio are an exact pair (torchaudio's wheel declares no -# dependencies, so pip will not enforce it). torchaudio 2.11.0 is its final -# maintenance line, which caps torch. Nothing here calls torchaudio I/O, so -# torchcodec (ABI-locked to torch, no aarch64 wheel before 0.11) is not needed. +# torchaudio 2.11.0 is built against PyTorch's stable ABI and runs with torch +# 2.11 and later (https://pytorch.org/audio/main/installation.html#compatibility-matrix), +# so torch is not capped by it. Its wheel declares no dependencies, so pip does +# not check the pairing. Nothing here calls torchaudio I/O, so torchcodec +# (ABI-locked to torch, no aarch64 wheel before 0.11) is not needed. dependencies = [ "openai-whisper==20250625", "python-dotenv==1.2.4",