v1.1.2
Fixed
- A Cartesia request that timed out (as opposed to failing to connect) escaped the API client's error handling. During startup this prevented the automatic setup retry, and during speech synthesis it produced an unhandled-exception traceback instead of a proper service call error. Timeouts are now handled the same way as connection failures.
- Minimum Home Assistant version in
hacs.jsoncorrected from 2024.1.0 to 2025.1.0. The code requires features introduced after 2024.1, so HACS previously allowed installs on HA versions where the integration could not load.
Maintenance (internal only — no change to behaviour or configuration)
- Extracted
/voicesresponse-page parsing from the pagination loop into a_parse_voice_pagehelper. - The model-selection form is now rendered by one shared
_show_modelhelper instead of four identical blocks across the setup and options flows. - Unified the
tts.speakoption-validation helpers so both log their own warnings, and an emptyvoiceoption now warns and falls back like an emptyvoice_idinstead of being silently ignored. - Removed a redundant default-voice injection in
async_get_tts_audio(the validator already applies the configured default) and an unused stored API-key attribute on the client. - Renamed the navigation radio on the settings step from
voice_actiontonav_action(its label is unchanged). - Trimmed usage examples from the
tts.pymodule docstring that duplicated this README. - Sorted imports and added a Ruff lint job to CI.
Docs
- Documented the
voiceoption (set by the HA voice picker) and the voice resolution order in the Options Reference.
Tests
- Added timeout coverage for all three Cartesia API methods and a regression test for the empty
voiceoption warning.