v8.17.3
v8.17.3 — #237 openai-compatible TTS: #234 follow-ups A (PR #240, squash 23c82b1; bump PR #243). Dispatcher forwards an explicit sourceSampleRate with ?? so a programmatic 0 / "" / NaN is rejected by the adapter's 8000–96000 Hz check instead of silently taking the configured value; absent/undefined unchanged. Test-only guard rails: registry numeric-alias guard asserts its allow-list order-insensitively; 48 kHz fixture exercises an odd-byte chunk boundary and fails fast on a length mismatch; 32 kHz reference sized from the buffer. Evidence: PR #240 completion record (host make test 99/99 1094 pass, 3 seats Opus/Qwen/Gemini r2 cumulative 3/3 GO), main make test on 23c82b1 99/99 1103 pass, CI run 34317978912. Number moved from v8.17.2 (taken by #238) to v8.17.3. Follow-up: length pre-check at test/tts-providers.test.js:443. Between v8.17.2 and this tag: #240, #243 (bump), repo-state pins (non-shipping).