Skip to content

v1.2.2

Choose a tag to compare

@sfox38 sfox38 released this 13 Jun 00:43
7d932c7

Changelog

v1.2.2

  • Fix: Lovelace card resource is now removed only on true integration deletion, not on every reload or options save (was wiping the card resource on every settings change)
  • Fix: Language-aware voice fallback - if the configured default voice is not available for the requested language, the integration now correctly falls back to the first voice of that language (matches the documented behaviour)
  • Fix: Direct API retry tuning - the configured endpoint gets 3 attempts × 20 s; each automatic fallback endpoint gets 1 attempt × 10 s (was using the same retry count for all endpoints)
  • Fix: All failure paths now raise HomeAssistantError so errors surface in the HA UI and automation traces instead of silently returning empty audio
  • Fix: aiohttp sessions are now properly closed via async with context managers (previously leaked connections on errors)
  • Fix: Options flow now saves sanitized values (trailing slashes stripped from endpoint, whitespace stripped from session_id) instead of raw user input
  • Fix: async_delete_issue is now called after a successful direct-API options save, clearing the expired-session repair issue
  • Fix: Voice dropdown no longer resets on every random-voice pool save - only resets when the language actually changes
  • Fix: Restored voice is now correctly re-applied after restart even when the restored language differs from the startup default
  • Fix: button.tiktoktts_speak now guards against speaking the literal strings "unavailable" or "unknown"
  • Fix: ConfigEntryState import moved to module level in button.py
  • Fix: Redundant native_value property removed from MessageTextEntity (base class handles _attr_native_value)
  • Fix: JS card - Speak button now cancels any pending debounce and flushes the current message to HA before pressing the button, preventing a race where the last typed characters could be missed
  • Fix: services.yaml - languages field now uses a proper multi-select selector with all 16 language codes instead of a bare object selector
  • Fix: Dead "unknown" error key removed from strings.json and translations/en.json
  • Fix: Lovelace resource URL match tightened to exact path equality (was startsWith, could match unrelated resources)
  • Fix: manifest.json version now read lazily via executor job in frontend/__init__.py to avoid blocking I/O on the event loop at import time
  • Docs: README corrected - cache limitation for voice: random in automations, chunking behaviour, proxy privacy note, proxy-wins-over-direct note, GitHub capitalisation, image tag attributes