tts-voice-creator-clone-and.../routes
mARTin-B78 96b0b9dd71
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
fix(magazine): finish and harden the live ingest preview
Resumes an in-progress, uncommitted change from a previous session: the
live "page image + recognised text" preview shown during ingestion was
reworked to render formatted HTML (styled headings, a figure
placeholder) instead of a plain-text dump, but was left with a
duplication bug, dead code, inline styles, and no tests.

- Fixed duplication: a figure block's own transcribed text (usually its
  on-screen UI copy) was rendered as an ordinary paragraph in addition
  to the new figure placeholder box. Figure/chart/table/code blocks are
  now represented only by the placeholder.
- Furniture/sidebar/pullquote/ad text is shown muted instead of being
  dropped with no replacement, and is never promoted to a heading
  regardless of font size.
- Factored the formatting logic out of the progress closure into a
  standalone, unit-tested _render_ingest_preview_html().
- Replaced dead getattr(bbox, "y0", ...) calls (bbox is always a plain
  [x, y, w, h] list) with direct indexing, moved statistics/logging
  imports to module level, switched manual character replacement to
  html.escape(), and bounded the preview by an accumulated line budget
  instead of a blind slice that could truncate mid-tag.
- Replaced inline style="..." with CSS classes matching the panel's
  existing dark console treatment.
- The frontend now always uses innerHTML (every text node is escaped
  server-side), dropping the startsWith('<') content-type sniffing.
- Marked the preview panel aria-hidden -- decorative, and would
  otherwise churn noisily for screen reader users on top of the
  adjacent progress bar.

Verified against the real c't KI Wissen 2026 layout: a figure's raw
OCR text no longer appears twice, a real headline renders as <h3>, a
footer/pull-quote render muted, and all text is correctly escaped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-12 15:24:16 +02:00
..
__init__.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +02:00
admin.py Release v1.22.2 2026-09-03 16:12:02 +02:00
characters.py feat: validate canonical image asset digests 2026-09-04 09:53:50 +02:00
conversation.py fix: recover character sheet requests from gateway 405 2026-09-09 06:49:52 +02:00
docker.py feat: add OCR engine profiles 2026-09-04 22:29:11 +02:00
history.py feat: record protected generation history 2026-09-04 08:07:42 +02:00
jobs.py feat: expand resource diagnostics 2026-09-04 10:42:08 +02:00
library.py security: validate upload filenames and archive paths 2026-09-04 08:04:26 +02:00
magazine.py fix(magazine): finish and harden the live ingest preview 2026-09-12 15:24:16 +02:00
reader.py Refine character sheets and live output UI 2026-07-09 19:47:16 +02:00
recovery.py security: harden P0 boundaries and recovery 2026-09-04 07:33:41 +02:00
rehearsals_db.py Release v1.22.3 2026-09-04 07:28:26 +02:00
settings.py fix: prevent caching of API key handoff 2026-09-04 08:52:46 +02:00
sources.py perf: bound fish audio response cache 2026-09-04 07:53:17 +02:00
stt.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00
tts.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00