* test: add pytest harness for TTS server tests
* feat(config): add supported languages, aliases, cache dir
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(voice-cache): add per-model voice path resolution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(voice-cache): add stem listing and mtime staleness
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(tts): track active model state with boot snapshot
Add _lock, _loading, _active, _boot_active to TTSService.__init__,
rewrite load_model to record active model state and snapshot boot config.
Change voice_cache type from dict to OrderedDict.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(tts): wire per-model cache dir and voice resolution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(tts): add reload_model with rollback-on-failure
Add TTSService.reload_model(language, quantize) with mutual-exclusion
guard (_loading flag), boot-source check, …
rename voices, implement better UI to search voices (#4)
* rename voices, implement better UI to search voices
* add output format param to UI, clarify when streaming is (not) available
* fixes #2 docker: ensure non-root user owns /app dir to preventing permission errors