56d2a9daef
Release v1.61.1
Test and SonarQube / quality (push) Has been cancelled
2026-10-11 05:44:24 +02:00
e999a8f38b
fix(voices): keep per-model speaker embeddings with their voice package
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 05:40:45 +02:00
e52a73c868
fix(tts): custom engine availability follows health, not the library voice list
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 05:18:52 +02:00
8c70f06da8
Release v1.61.0
Test and SonarQube / quality (push) Waiting to run
2026-10-11 04:44:31 +02:00
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
69c33526f4
fix(qa): run the container tests on a writable copy and add node to the test image
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:58:13 +02:00
456b64f5b7
feat(qa): run python tests in a throwaway container built from the app image
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:56:42 +02:00
ccbd834eea
feat(qa): sonar triage --drain with delivery check and one resend
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:31:55 +02:00
9f78a1552f
feat(qa): fire a multica webhook autopilot for each sonar GitHub issue
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:28:41 +02:00
220f5fc1ec
feat(qa): group sonar issues per rule
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:03:23 +02:00
98a87077d9
feat(qa): sonar triage loop (dry-run default) and multica agent hookup
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 02:47:21 +02:00
bae588375f
fix(conversation): size metrics charts to the column so text is legible
...
Charts use the rendered width as viewBox (re-rendered on resize), 11px text,
two x ticks, larger dot for single points. Includes docs/changelog for the
mic colours, Turn history fix and chart size.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 02:14:55 +02:00
0a30b00d7f
refactor(conversation): show metrics in the latency column instead of a second tab
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 01:30:27 +02:00
e7a25d80ff
feat(conversation): metrics view with TTFB charts and token usage
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:48:32 +02:00
60eb108360
fix(ui): surface silently swallowed save and fetch errors
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:44:31 +02:00
2479617964
fix: run blocking requests/sleep in async routes via to_thread
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:40:34 +02:00
dea6286775
feat(conversation): pick the LLM endpoint from the configured language models
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:33:30 +02:00
8ce8e791b2
feat(conversation): thinking on/off switch
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:21:11 +02:00
e8c0df027e
test: fail any spec that would write to the live API
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 21:00:25 +02:00
a2f9c12b2d
Release v1.60.0
Test and SonarQube / quality (push) Has been cancelled
2026-10-04 20:12:46 +02:00
38f88958c6
fix(magazine): mock /api/settings in magazine specs and await lazy module in deep-link spec
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 20:06:52 +02:00
c7d5134734
chore(qa): isolated per-run python env and optional coverage for sonar
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 19:29:37 +02:00
aa92ed30b3
refactor(installer): extract run_command helper to cut cognitive complexity
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 19:28:37 +02:00
2f4c8529e9
fix(i18n): remove duplicate keys and dead frontend branches
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:58:14 +02:00
668681dd24
fix(security): private temp dir for docker installer, https for OMDb, md5 non-security flag
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:57:34 +02:00
4f30ee5c0d
fix: keep references to background asyncio tasks
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:57:20 +02:00
2a06d0a488
fix(export): ship untagged file when provenance tagging fails
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:38:42 +02:00
1fd79866f8
chore(qa): central npm run qa command with optional SonarQube stage
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:36:48 +02:00
8fed5eeda8
fix(voices): archetype language filter accepts ISO codes
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:29:28 +02:00
5dbe8c8998
docs(voices): archetype gallery manual and architecture
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:23:44 +02:00
281869709b
fix(voices): drop the Source unknown badge from list rows
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:22:41 +02:00
c0a5d54763
fix(voices): robust LibriVox search and expose export_provenance_default
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:07:22 +02:00
7a86e51faa
test(audiobook): cover emotion to instruct path and document audiobook emotions
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 17:56:54 +02:00
772c43d7f0
feat(voices): LibriVox and Wikimedia Commons voice sources
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 17:42:36 +02:00
9b169037a4
feat(tts): inline tags in generate, audiobook and magazine paths
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 17:35:18 +02:00
5a7c73ea42
feat(export): provenance tags and optional disclosure for exported audio
...
ID3 provenance tags (synthetic speech, generator, version, date, opt-in
voice name) on magazine MP3/ZIP/EPUB exports via a stream-copied temp copy;
verify endpoint and CLI; AudioSeal tier is a documented stub.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 17:02:41 +02:00
8b51487a64
feat(tts): inline pause, spell and speed tags
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:52:23 +02:00
91843e95e6
feat(voices): optional vocal isolation for URL imports
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:50:14 +02:00
e0daafd4e1
feat(voices): export and import voice bundles
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:42:28 +02:00
781bf6e7f2
feat(voices): consent and provenance field per voice
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:39:32 +02:00
b36423457b
feat(design): auto-pick the best seed by scored candidates
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:37:58 +02:00
a0cd7b867f
feat(voices): show audio problems in the voice library
...
Single-voice health endpoint (GET /api/voices/{id}/health), problems stored in
meta on import, shown in the Try-out voice panel; architecture note and docs.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:35:10 +02:00
67537310d0
feat(design): attribute chips for voice-design prompts
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:34:06 +02:00
19283a53a4
feat(voices): timestamped audio problem flags in voice health
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 16:10:56 +02:00
2594a236c4
feat(magazine): journalist/guest voices for c't-style interviews
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 15:25:51 +02:00
b90c9ce51a
chore(release): v1.59.0
...
Test and SonarQube / quality (push) Waiting to run
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 00:42:01 +02:00
a8177711f4
feat(characters): global cast view in the sidebar and per-book characters inside Studio
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 22:29:42 +02:00
a60a5a92ca
chore(release): v1.58.0
...
Test and SonarQube / quality (push) Waiting to run
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 20:21:20 +02:00
03ebd9ba35
feat(magazine): show page labels, display titles and merge suggestions
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 19:22:55 +02:00
42bb556db9
fix(magazine): approving a review page keeps all blocks of a multi-page article
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 14:48:37 +02:00