pyannote.audio was still `>=3.1` — the same unbounded-constraint pattern that silently broke qwen3 (transformers>=4.45.0 resolving to a version without qwen3_asr support on a later rebuild). Confirmed it had already drifted once this session (4.0.4 -> 4.0.7). Pinned to the exact version the current diarization code (token=, .speaker_diarization) is verified against. asr.js's config-fetch failure path fabricated a hardcoded backend/model list that could silently drift from the server's real one (this is exactly how the wrong Qwen3-ASR-2B/8B model IDs stuck around). Replaced it with a visible error instead of a second source of truth. Added scripts/smoke_test.sh: hits every backend's /transcribe or /synthesize directly with a synthetic clip. Every regression found this session (wrong model IDs, pyannote API drift, cuDNN path conflict) would have shown up here immediately instead of waiting for a user to hit it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
208 B
208 B