diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1622361..24fb7ae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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:
" 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
diff --git a/PROJECT_MAP.md b/PROJECT_MAP.md
index a287ee6..11be4df 100644
--- a/PROJECT_MAP.md
+++ b/PROJECT_MAP.md
@@ -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/.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
diff --git a/VERSION b/VERSION
index 79f82f6..bb120e8 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.58.0
+1.59.0
diff --git a/static/index.html b/static/index.html
index 52cbe04..987d1cc 100644
--- a/static/index.html
+++ b/static/index.html
@@ -10,7 +10,7 @@
-
+
@@ -27,12 +27,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -403,7 +403,7 @@ window.toggleNavTree = function(treeId, chevronId) {
-
+