Skip to content

v1.11.2#296

Merged
TiTidom-RC merged 17 commits into
betafrom
dev
Jul 18, 2026
Merged

v1.11.2#296
TiTidom-RC merged 17 commits into
betafrom
dev

Conversation

@TiTidom-RC

Copy link
Copy Markdown
Owner

This pull request updates the TTS Cast plugin to version 1.11.2, focusing on improvements to AI model selection, dependency updates, and minor UI/UX adjustments. The changes clarify model deprecation timelines, update cost information, and improve requirements for better compatibility and features.

AI Model Selection & Information:

  • Updated the AI model selection dropdown and tooltips in configuration.php to clarify which Gemini models are recommended, which are deprecated (with deprecation dates), and updated pricing details. Deprecated models are now grouped and labeled with their respective end-of-support dates. [1] [2]
  • Removed the "Gemini 3.1 Flash-Lite Preview" option from the preview models list, reflecting current model availability.

UI/UX Improvements:

  • Improved the layout for the log filters toggle and management button in configuration.php for better alignment and usability.

Dependency Updates:

  • Updated google-genai to version 2.12.1 and added the emoji package to requirements.txt for enhanced AI and text processing capabilities.
  • Upgraded piper-tts to version 1.5.0 in requirements-piper.txt for improved TTS features and bug fixes.

System Prompt Adjustment:

  • Modified the AI system prompt in utils.py to require preservation of accents and typographic characters, improving language fidelity in responses.

Versioning:

  • Bumped the plugin version to 1.11.2 in info.json.

Move Gemini TTS streaming pipe creation behind the cast queue wait so the HTTP stream does not expire before the Chromecast connects. This adds a deferred post-queue pipe callback in `castToGoogleHome` and bumps the plugin version to 1.11.2.
Updates runtime Python dependencies by upgrading `piper-tts` from 1.4.2 to 1.5.0 and `google-genai` from 2.9.0 to 2.12.1 in the requirements files.
Update the configuration UI layout for log filters by merging the checkbox and "Gérer les filtres" button into the same column. The checkbox now has inline spacing/alignment styles so both controls appear grouped and better aligned.
Remove the Gemini 3.1 Flash-Lite Preview model from the AI model selector and its pricing info in the tooltip, as it is no longer available/relevant.
Update the reformulation model UI labels to better distinguish recommended Gemini 3.x models from Gemini 2.5 models now marked as deprecated (Oct 2026). The pricing tooltip and dropdown sections were reorganized accordingly, and the 2.5 Flash-Lite naming was made consistent.
Update the configuration UI to mark the Gemini 2.5 TTS section as deprecated as of May 2025, helping users prefer the recommended Gemini 3.1 option.
For `cmdWait > 1`, the daemon now uses a short 100ms grace window to let lower-priority waits register, then continues standalone if no prior wait is detected. This removes the previous 1s polling timeout that canceled playback, improving behavior on loaded systems while preserving queue ticketing.
Updates the daemon wait-queue debug message to better reflect behavior when no prior notification is active and playback starts directly for the target UUID.
Wrap post-playback volume restoration in a dedicated try/except block so cleanup failures no longer interrupt the error-exit flow. Group and single-cast volume restores are still attempted, and failures are now logged with a clear debug message.
Move wait-queue registration to socket handling so commands take a ticket before worker threads start, preserving arrival order for TTS and media actions. Add centralized hold/exit handling in `getTTS` and `controllerActions`, remove duplicated queue enter/exit logic from casting/controller helpers, and simplify `castToGoogleHome` by dropping queue arguments.

The TTS pipeline now also precomputes AI reformulation before queue blocking, reducing latency when the command reaches playback while keeping fallback behavior and queue cleanup in all paths.
Updates the assistant prompt in `resources/ttscastd/utils.py` to better define output style: no Markdown or emojis, while explicitly preserving accents, apostrophes, and language-specific typographic characters.
Move Markdown/emoji cleanup out of `genAI()` so raw Gemini output is preserved for result notifications, while TTS engines receive a cleaned plain-text version. Added the `emoji` dependency and updated `markdownToPlainText()` to strip emojis and normalize whitespace. AI prompt defaults were also relaxed to stop forcing no-Markdown/no-emoji output.
Apply `Functions.markdownToPlainText(...)` whenever AI-reformulated text is sent to TTS engines (Google Cloud TTS, gTTS, Jeedom TTS, and VoiceRSS) in both TestTTS and GenerateTTS flows. This ensures markdown formatting from AI output is cleaned before synthesis while keeping the original AI text for result reporting.
Reordered cleanup in `ttscastd.py` so volume restoration happens before `cast.quit_app()` in all affected playback flows. This preserves proper volume rollback (including group member snapshots) by avoiding restore calls after the cast app has already been closed.
Switch wait queue ticket handling from arithmetic (+/-) to bitwise set/clear operations (`|=` and `&= ~`) in `ttscastd.py`. This prevents duplicate registrations from inflating the queue value and avoids incorrect decrements on release. The special `wait=1` reset path was removed so queue state is managed consistently through bitmask semantics.
Remove the `> 0` guard in `waitQueueExit` so queue-bit cleanup runs whenever the target UUID exists. This ensures the wait token is consistently cleared and avoids stale queue state when the value is zero.
@TiTidom-RC
TiTidom-RC merged commit 97b4dd2 into beta Jul 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant