chore(release): v1.59.0
Some checks are pending
Test and SonarQube / quality (push) Waiting to run

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mARTin-B78 2026-10-04 00:41:57 +02:00
parent a8177711f4
commit b90c9ce51a
4 changed files with 25 additions and 17 deletions

View File

@ -6,6 +6,10 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
---
## [Unreleased]
---
## [1.59.0] — 2026-10-04
### Changed
- **Characters: global cast view in the sidebar, per-book characters inside Studio.** *Library > Characters / Cast* is now titled "All characters (all books)": one collapsible band per book (heading, per-book count, `aria-expanded`), first book open and the rest closed and not rendered until opened (DOM budget), and a *Search all books* field. Studio > Voices lists only the book picked in *Source*, under a "Book: <title>" chip with **Show characters of all books**; the Characters step shows the same chip; with no book picked Voices shows a prompt (Pick a book / show all books). Per-book actions stay in the band headers. Tests: `tests/characters-scope.spec.js`.
@ -4704,7 +4708,8 @@ Initial feature-complete release.
---
[Unreleased]: https://github.com/mARTin-B78/tts-voice-creator-clone-and-design-2/compare/v1.58.0...HEAD
[Unreleased]: https://github.com/mARTin-B78/tts-voice-creator-clone-and-design-2/compare/v1.59.0...HEAD
[1.59.0]: https://github.com/mARTin-B78/tts-voice-creator-clone-and-design-2/compare/v1.58.0...v1.59.0
[1.58.0]: https://github.com/mARTin-B78/tts-voice-creator-clone-and-design-2/compare/v1.57.0...v1.58.0
[1.57.0]: https://github.com/mARTin-B78/tts-voice-creator-clone-and-design-2/compare/v1.56.3...v1.57.0
[1.56.3]: https://github.com/mARTin-B78/tts-voice-creator-clone-and-design-2/compare/v1.56.2...v1.56.3

View File

@ -6,10 +6,11 @@ Update in the same commit as the change it describes.
## Current phase
Magazine projects, **P0 and P1 complete** (frontend reachable at Studio → Magazines). Audiobook/Rehearser/voice-library
features are mature and in daily use. Latest release v1.58.0: driving-mode menu with switches and theme selector, auto-advance, text fit and text
amount, article index with page labels/display titles, continuation and untitled-page detection with title and merge
suggestions, distinct face profiles and English prompt translation for characters, vision-response cache, character
record hygiene fixes and the review Approve fix. v1.57.0 added driving mode with sentence/word-level sync via `tts-aligner`.
features are mature and in daily use. Latest release v1.59.0: global "All characters" view in the sidebar and per-book
characters inside Studio, untitled-page cleanup with an exclude option, duplicate/clean tools. v1.58.0 added the
driving-mode menu, auto-advance, article index with page labels, merge suggestions, distinct face profiles, English
prompt translation, vision-response cache and the review Approve fix. v1.57.0 added driving mode with sentence/word-level
sync via `tts-aligner`.
## Deployment
@ -33,7 +34,7 @@ Two self-hosted Docker instances, both port 7890:
- **`tts-aligner`** (forced-aligner sidecar, `aligner/`) exists only in the DGX `docker-compose.yml`. The NUC compose
file deliberately omits it: with `ALIGNER_URL` unset the app quietly falls back to estimated word timing, so the NUC
works unchanged. Known limitation: no measured word times on the NUC.
- **Rollback** (either host): check out the previous tag (`git checkout v1.57.0`; on the NUC re-rsync that tree), then
- **Rollback** (either host): check out the previous tag (`git checkout v1.58.0`; on the NUC re-rsync that tree), then
`docker compose up -d --force-recreate` (rebuild only if `Dockerfile`/`requirements.txt` changed). Stop the aligner
with `docker compose stop tts-aligner`; `audio/<id>.timings.json` version 2 files stay readable by v1 readers.
@ -97,8 +98,10 @@ which is the writable volume.
**unresolved** — the compose files currently point at ghcr.
## Known limitations
- Live untitled-page cleanup is not yet applied: `scripts/magazine_untitled.py` needs the owner's `--apply`.
- `scripts/clean_character_records.py` has only been run as a dry run; 33 duplicate character pairs need owner decisions.
- Live data changes made on the DGX only (not on the NUC, which has its own DB/config): book KONTROLLE removed, 5 duplicate
characters resolved, untitled-page cleanup applied (backups under `config/backups/`).
- 18 re-rendered/stale audio articles are pending the owner's voice choice.
- `scripts/clean_character_records.py` was applied for 5 pairs; the 17 remaining duplicate-sheet pairs need owner decisions.
- Audiobook attribution (span mode) is measured, not perfect: on three hand-corrected novels about
90-92 % of all words end up with the right voice and ~75-80 % of spoken words with the right
speaker. The references themselves contain label noise (1-2 points is not meaningful). Open, real

View File

@ -1 +1 @@
1.58.0
1.59.0

View File

@ -10,7 +10,7 @@
<meta name="format-detection" content="telephone=no">
<meta name="color-scheme" content="light dark">
<meta name="theme-color" content="#2563EB">
<meta name="app-version" content="1.58.0">
<meta name="app-version" content="1.59.0">
<link rel="manifest" href="/manifest.webmanifest">
<link rel="icon" href="/static/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/static/icon.svg">
@ -27,12 +27,12 @@
<!-- ── Core styles (local — no CDN dependency for first paint) ────────── -->
<link rel="stylesheet" href="/static/vendor/mdi/materialdesignicons.min.css">
<link rel="stylesheet" href="/static/style.css?v=1.58.0">
<link rel="stylesheet" href="/static/css/resource-diagnostics.css?v=1.58.0">
<link rel="stylesheet" href="/static/css/background-jobs.css?v=1.58.0">
<link rel="stylesheet" href="/static/css/voice-design.css?v=1.58.0">
<link rel="stylesheet" href="/static/css/rehearser.css?v=1.58.0">
<link rel="stylesheet" href="/static/css/audiobook.css?v=1.58.0">
<link rel="stylesheet" href="/static/style.css?v=1.59.0">
<link rel="stylesheet" href="/static/css/resource-diagnostics.css?v=1.59.0">
<link rel="stylesheet" href="/static/css/background-jobs.css?v=1.59.0">
<link rel="stylesheet" href="/static/css/voice-design.css?v=1.59.0">
<link rel="stylesheet" href="/static/css/rehearser.css?v=1.59.0">
<link rel="stylesheet" href="/static/css/audiobook.css?v=1.59.0">
<!-- ── Flag icons — non-blocking (loaded async, icons appear after JS) ── -->
@ -403,7 +403,7 @@ window.toggleNavTree = function(treeId, chevronId) {
</script>
<!-- loader.js: fetches sections → loads JS modules → removes skeleton -->
<script src="/static/loader.js?v=1.58.0"></script>
<script src="/static/loader.js?v=1.59.0"></script>
</body>
</html>