tts-voice-creator-clone-and.../core
mARTin-B78 0551b6651f feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability
My Voices
- Top bar with search, filter toggle (active-count badge), synth-source drawer, group and table buttons;
  filters/sort in a collapsible labelled panel; one-line sort header with select-all/none checkbox
- Groups chip list is a collapsed accordion; bottom bar is Refresh/Sync/Import plus one Actions (N) menu
  (Edit / Audio / Share / Danger), disabled until voices are checked; touch targets stay 44px
- Copy selected works again (copyText was no longer exported), shows "N voice names copied to clipboard"
  and falls back to a copy dialog when the async clipboard is unavailable

TTS / engines
- Health probe works for /v1 card URLs and, behind a LiteLLM gateway, checks the selected model's own
  upstream so stopped containers are not reported as available
- Unhiding a voice publishes a missing entry to the engine's voices.json (no more silent default-voice fallback)
- Status-bar TTS picker also drives the My Voices and STT-test selectors; Use as TTS refreshes the status bar

Includes the engine connect/disconnect, custom TTS, STT footer and magazine auth work that was already
in the working tree, with their tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 04:44:27 +02:00
..
__init__.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +02:00
attribution_spans.py feat(audiobook): advisory verify and span-native recast for span casts 2026-09-19 20:17:38 +02:00
audio.py feat(voices): timestamped audio problem flags in voice health 2026-10-04 16:10:56 +02:00
character_image_check.py feat(characters): short framing-first portrait prompt; the sheet follows what the finished portrait shows 2026-09-21 20:09:45 +02:00
character_records.py fix(characters): merge profiles only on real names, keep other cast names, reasoning and foreign quotes out of a character 2026-10-03 14:09:53 +02:00
config.py feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability 2026-10-11 04:44:27 +02:00
constants.py feat: complete magazine P1 (images, play-all, karaoke, driving mode, sidebar exclusion) + OCR engines page + second OCR engine 2026-09-06 23:39:34 +02:00
database.py feat(characters): distinct deterministic face profiles per character 2026-10-03 14:25:56 +02:00
docker_client.py fix(docker): remove undefined-variable reconnect that broke all container status/start/stop/restart 2026-09-14 18:14:22 +02:00
epub_export.py fix(magazine): use sentence timings of interview renders for player and EPUB 2026-10-03 00:09:45 +02:00
export_provenance.py feat(export): provenance tags and optional disclosure for exported audio 2026-10-04 17:02:41 +02:00
face_profile.py fix(sonar): drop redundant regex alternatives (python:S5855) 2026-10-06 04:07:57 +02:00
known_names.json feat(magazine): auto-link continuation pages, manual page linking, flow arrows by reading order, compact report, names/brands in spellcheck 2026-09-28 11:46:32 +02:00
magazine_sources.py feat(magazine): manage OPDS catalogues in the app, env-based login, result paging 2026-09-30 11:03:03 +02:00
magazine_untitled.py fix(sonar): drop redundant regex alternatives (python:S5855) 2026-10-06 04:07:57 +02:00
magazine.py feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability 2026-10-11 04:44:27 +02:00
open_voice_sources.py fix(voices): robust LibriVox search and expose export_provenance_default 2026-10-04 18:07:22 +02:00
presets.py Back user state with SQLite voice index 2026-06-30 15:06:43 +02:00
prompt_translation.py feat(characters): translate character info to English before image prompts 2026-10-03 12:01:42 +02:00
pronunciations.json feat(magazine): fuse paragraphs across columns/pages, article-aware acronyms, German/English spellcheck 2026-09-28 08:09:30 +02:00
pronunciations.py fix(magazine): suspect-OCR check uses page language and page vocabulary 2026-09-28 08:23:09 +02:00
provenance.py feat(voices): consent and provenance field per voice 2026-10-04 16:39:32 +02:00
provider_health.py feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability 2026-10-11 04:44:27 +02:00
registry.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +02:00
retry.py feat: unify transient provider retries 2026-09-04 09:36:48 +02:00
routing.py feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability 2026-10-11 04:44:27 +02:00
seed_score.py feat(design): auto-pick the best seed by scored candidates 2026-10-04 16:37:58 +02:00
spelling.py feat(magazine): fast LLM calls for spelling agent, run-together word repair, magazine comparison tool 2026-09-28 20:09:42 +02:00
ssml_lite.py feat(tts): inline tags in generate, audiobook and magazine paths 2026-10-04 17:35:18 +02:00
tasks.py fix: keep references to background asyncio tasks 2026-10-04 18:57:20 +02:00
tts_helpers.py feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability 2026-10-11 04:44:27 +02:00
validation.py feat: validate canonical image asset digests 2026-09-04 09:53:50 +02:00
vision_cache.py feat(magazine): record/replay cache for vision responses in OCR comparisons 2026-10-03 11:09:17 +02:00
vocal_isolation.py feat(voices): optional vocal isolation for URL imports 2026-10-04 16:50:14 +02:00
voice_archetypes.py fix(voices): archetype language filter accepts ISO codes 2026-10-04 18:29:28 +02:00
voice_bundle.py fix(sonar): document empty _Sink.flush (python:S1186) 2026-10-06 11:40:25 +02:00
voice_index.py Add unified Studio casting workflow and fix voice/casting pipeline bugs 2026-07-26 02:03:56 +02:00
voice.py feat(voices): consent and provenance field per voice 2026-10-04 16:39:32 +02:00
word_alignment.py feat(magazine): word-level timing via forced-aligner sidecar with player word highlight 2026-10-03 00:37:40 +02:00