v1.1.1
v1.1.1
Maintenance (internal only — no change to behaviour or configuration)
- Deduplicated the setup and options flows: the shared settings/voice form rendering now lives in a single
_CartesiaStepsMixin, and entry-option assembly is centralised in one_build_optionshelper. - Centralised the voice/language matching rules (
lang_matches,voice_supports_language) invoice_cache.pyso the voice browser and the Configure dialog can no longer drift apart. - Simplified
tts.speakoption validation with shared_resolve_choice/_resolve_clampedhelpers, replacing six near-identical validation blocks. - Removed an unused lazy-load path (
VoiceCache.async_ensure_loaded) and its tests; tightened type hints and a misleading migration log line.
Optimization
- The Configure dialog now fetches the voice list from the Cartesia API once per session (on first reaching the voice step) instead of on every form render and back-navigation.
- Setup now validates the API key and loads voices in a single request instead of two.
[Doc]
- Added mesa_profile.json