tts-voice-creator-clone-and.../static/js
mARTin-B78 e81fa64448 fix: magazine state persistence, misfiled in book library, confidence badge layout, docker-socket-proxy crash loop
Magazine "forgets" the open document (real bug, confirmed live):
- A full page reload or the browser's own Back button tears down all
  in-memory JS state; magInit() always defaulted to the empty library
  view with no way back to what was open. Persists the last-opened
  magazine id in localStorage and auto-reopens it on load, falling back
  to the library only if that document no longer exists.
- The actual root cause of the reported duplicate: readerRenderLibrary()
  (Studio/Reader "Source") and libraryRenderBooks() (Library > Books)
  both listed EVERY document from the shared reader_library store with
  no kind filter, so a magazine (kind: "magazine") was already showing
  up there disguised as a plain book. The magazine never actually
  vanished -- it was misfiled in a different list, which is what led to
  the user re-uploading it and getting a real duplicate under a
  different kind. Both listings now exclude kind: "magazine".

Confidence badge layout (Studio Characters review):
- The badge (radiobox is already positioned after the speaker name in
  DOM order) rendered on its own line far below the name because both
  .ab-cv-spk and .ab-cv-txt were `display: block`, forcing a line break
  regardless of markup order. Wrapped the name + badge + check button in
  a shared flex row (.ab-cv-spk-row) so the badge now sits directly
  beside the name/after "NARRATOR" as requested, without needing to
  touch the two existing incremental-patch code paths (they insert
  relative to the same elements, now just nested one level deeper).

docker-socket-proxy crash loop (found while restarting for the magazine
Python changes to take effect -- unrelated to this session's earlier
work, landed in an earlier commit during the interruption):
- read_only: true left the entrypoint with nowhere to write its own
  haproxy.cfg ("Read-only file system"), crash-looping the container and
  leaving the app without Docker access. Removed read_only for this one
  service -- cap_drop: ALL, no-new-privileges, and the :ro socket mount
  already provide the real hardening.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 09:39:20 +02:00
..
audiobook refactor: scope audiobook network 2026-09-04 12:41:35 +02:00
pdf Release v1.8.1 2026-06-25 18:48:42 +02:00
tesseract Merge Reader/Casting/Rehearser pipeline into one guided workflow (v1.12.84) 2026-07-03 17:45:38 +02:00
ai-backends.js 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
audiobook-cast.js fix: magazine state persistence, misfiled in book library, confidence badge layout, docker-socket-proxy crash loop 2026-09-07 09:39:20 +02:00
audiobook-parse.js refactor: scope audiobook core 2026-09-04 12:37:37 +02:00
audiobook-pipeline.js fix: preserve audiobook dialogue boundaries 2026-09-04 15:36:26 +02:00
audiobook-preview-export.js refactor: scope audiobook state modules 2026-09-04 12:26:21 +02:00
audiobook-segmentation.js refactor: scope pure frontend leaves 2026-09-04 12:20:33 +02:00
audiobook.js refactor: scope audiobook core 2026-09-04 12:37:37 +02:00
benchmark-voice-picker.js Add searchable benchmark voice pickers 2026-06-05 15:44:13 +02:00
benchmark.js perf: coalesce voice library fetches 2026-09-04 10:10:10 +02:00
character-columns.js refactor: scope character columns 2026-09-04 13:35:10 +02:00
character-sheets.js refactor: scope character sheets 2026-09-04 13:21:31 +02:00
characters-library.js refactor: scope character library 2026-09-04 12:49:22 +02:00
conversation.js refactor: scope conversation state 2026-09-04 13:42:02 +02:00
engines.js 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
fishaudio-browser.js Add unified Studio casting workflow and fix voice/casting pipeline bugs 2026-07-26 02:03:56 +02:00
generation.js refactor: scope generation module 2026-09-04 13:15:30 +02:00
i18n.js refactor: scope i18n state 2026-09-04 13:40:07 +02:00
image-cache.js perf: bound browser library image cache 2026-09-04 10:28:07 +02:00
init.js test: measure constrained character workloads 2026-09-04 10:34:27 +02:00
integrations.js refactor: scope integrations module 2026-09-04 13:06:59 +02:00
jobs.js feat: expand resource diagnostics 2026-09-04 10:42:08 +02:00
library-characters.js perf: tighten character pagination 2026-09-04 13:31:18 +02:00
library.js fix: magazine state persistence, misfiled in book library, confidence badge layout, docker-socket-proxy crash loop 2026-09-07 09:39:20 +02:00
magazine.js fix: magazine state persistence, misfiled in book library, confidence badge layout, docker-socket-proxy crash loop 2026-09-07 09:39:20 +02:00
namespace.js refactor: add frontend namespace migration bridge 2026-09-04 10:07:46 +02:00
reader.js fix: magazine state persistence, misfiled in book library, confidence badge layout, docker-socket-proxy crash loop 2026-09-07 09:39:20 +02:00
rehearser-cast.js refactor: scope rehearser cast 2026-09-04 12:44:58 +02:00
rehearser-io.js refactor: scope rehearser io 2026-09-04 12:30:13 +02:00
rehearser-library.js refactor: scope rehearser library 2026-09-04 12:40:56 +02:00
rehearser-parse.js refactor: scope pure frontend leaves 2026-09-04 12:20:33 +02:00
rehearser-playback.js refactor: scope rehearser playback 2026-09-04 12:29:19 +02:00
rehearser-recording.js refactor: scope rehearser core 2026-09-04 12:33:55 +02:00
rehearser-stage.js refactor: scope rehearser stage 2026-09-04 12:42:22 +02:00
rehearser-train.js refactor: scope pure frontend leaves 2026-09-04 12:20:33 +02:00
rehearser-training-ui.js refactor: scope training ui module 2026-09-04 12:23:03 +02:00
rehearser-voice-design.js refactor: scope rehearser voice design 2026-09-04 12:44:08 +02:00
rehearser-voice-picker.js refactor: scope rehearser voice picker 2026-09-04 12:43:11 +02:00
rehearser.js refactor: scope rehearser core 2026-09-04 12:33:55 +02:00
routing.js refactor: scope routing module 2026-09-04 13:00:10 +02:00
seed-finder.js refactor: scope seed finder 2026-09-04 13:36:55 +02:00
settings.js refactor: scope settings module 2026-09-04 12:51:29 +02:00
sillytavern.js refactor: scope cast compatibility modules 2026-09-04 13:38:40 +02:00
stt.js refactor: scope stt module 2026-09-04 13:13:10 +02:00
studio.js refactor: scope studio module 2026-09-04 12:47:30 +02:00
tts-preview.js refactor: scope tts preview 2026-09-04 12:53:44 +02:00
utils.js 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
voice-cache.js perf: coalesce voice library fetches 2026-09-04 10:10:10 +02:00
voice-clone.js refactor: scope voice clone 2026-09-04 12:55:50 +02:00
voice-inspector.js refactor: scope voice inspector 2026-09-04 13:25:13 +02:00
voice-library.js refactor: scope voice library 2026-09-04 13:19:52 +02:00
voice-picker.js Add routing voice-picker, restore voice filters, fix pedalboard (v1.14.3) 2026-07-08 21:05:45 +02:00
voice-sources.js refactor: scope voice sources 2026-09-04 12:57:53 +02:00