tts-voice-creator-clone-and.../static/sections
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
..
s-caststudio.html Release v1.22.2 2026-09-03 16:12:02 +02:00
s-characters.html Release v1.9.0 — Character Library + richer character sheets 2026-06-26 21:22:40 +02:00
s-clone.html Release v1.22.2 2026-09-03 16:12:02 +02:00
s-connect.html Add Script Rehearser; clean Connect Apps; About changelog; rework Try It Out 2026-05-31 20:09:59 +02:00
s-conversation.html Fix Fish-Speech emotion tags, wire book context into portraits, add emotion controls app-wide (v1.20.5) 2026-08-11 18:02:41 +02:00
s-design.html Release v1.22.2 2026-09-03 16:12:02 +02:00
s-library.html Release v1.14.19 2026-07-09 14:11:40 +02:00
s-llms.html 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
s-magazine.html fix: magazine state persistence, misfiled in book library, confidence badge layout, docker-socket-proxy crash loop 2026-09-07 09:39:20 +02:00
s-performance.html feat: add constrained-device resource diagnostics 2026-09-04 09:51:49 +02:00
s-reader.html Release v1.22.2 2026-09-03 16:12:02 +02:00
s-rehearser.html Release v1.22.2 2026-09-03 16:12:02 +02:00
s-routing.html Release v1.22.2 2026-09-03 16:12:02 +02:00
s-settings.html Fix voice stability, audio effects, and character/voice pipeline bugs 2026-07-29 15:33:24 +02:00
s-studio.html Release v1.6.0: a11y (WCAG AA), i18n (DE), PWA, perf, tests, Cast UX 2026-06-03 14:23:35 +02:00
s-tryout.html Fix Fish-Speech 0-voices bug, add inline emotion-tag reference to Try It Out (v1.20.8) 2026-08-12 00:08:36 +02:00
s-voices.html Release v1.22.2 2026-09-03 16:12:02 +02:00