55f147d7a7
fix(magazine): derive figure boundaries from the page render
...
Test and SonarQube / quality (push) Waiting to run
A vision OCR engine grounds a figure far less precisely than it
transcribes one. Over all 138 figure regions of a 204-page issue the
transcribed contents were right while the boxes were routinely offset,
undersized, or sitting on the neighbouring text column -- page 23's card
grid was reported at x 0.24-0.54 where the graphic runs 0.41-0.95.
snap_visual_bboxes() reduces the page render to an ink-coverage grid,
seeds a connected-component search with the engine's box, and re-joins
tiles a gutter apart so a card grid comes back as one figure. Text
blocks are excluded from the mask, which is what stops a figure
swallowing the column beside it. A candidate must be solidly inked or
framed on nearly all of its rows and columns (admitting a white-interior
screenshot), may not shrink below 30% of the seed, and reverts when two
figures land on the same graphic; anything else keeps the box it had.
Runs before the figure crop in both OCR paths, so the images shown
during playback are framed correctly too. Replaces refine_picture_
bounds(), which only recognised coloured panels and had no text fence.
Also adds "Fix figure boundaries" in review and POST
/api/magazine/{id}/figures/refine behind it, so an issue ingested before
this pass can be corrected without re-running OCR. Verified live against
c't KI Wissen 2026: 78 of 138 boxes corrected, the rest declined.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 10:17:00 +02:00
c1a2d6dc74
Release v1.26.14: Studio-style side-by-side Magazine upload layout with Durchsuchen button
Test and SonarQube / quality (push) Has been cancelled
2026-09-10 14:45:00 +02:00
30e01a5cec
Release v1.26.13: Fix drag-and-drop file opening in tab & improve magazine dropzone reliability
2026-09-10 14:31:16 +02:00
11142842c2
Release v1.26.12: Fix page-wide drag-and-drop interception & magOnShow navigation hook
Test and SonarQube / quality (push) Waiting to run
2026-09-10 13:22:26 +02:00
f5f887bb1d
Release v1.26.11: Enhanced layout-aware OCR element recognition, grounding parsing, and preview thumbnails
Test and SonarQube / quality (push) Waiting to run
2026-09-10 13:08:53 +02:00
29dc913ed1
Release v1.26.10
Test and SonarQube / quality (push) Waiting to run
2026-09-10 12:50:33 +02:00
e6211f1333
Release v1.26.9
Test and SonarQube / quality (push) Waiting to run
2026-09-10 12:45:42 +02:00
9b1e29bb79
feat: automate semantic magazine layout
Test and SonarQube / quality (push) Waiting to run
2026-09-09 17:48:56 +02:00
f8af18e8f7
fix: release current magazine UI assets
Test and SonarQube / quality (push) Waiting to run
2026-09-09 17:40:25 +02:00
31b13a4e16
feat: improve magazine review navigation
Test and SonarQube / quality (push) Waiting to run
2026-09-09 17:36:27 +02:00
c1d86ec13d
fix: return All magazines to library
Test and SonarQube / quality (push) Waiting to run
2026-09-09 17:14:27 +02:00
272d4872bd
fix: use native Unlimited-OCR layout regions
Test and SonarQube / quality (push) Waiting to run
2026-09-09 13:27:14 +02:00
037f3dd74d
fix: stabilize OCR and character sheet casting
Test and SonarQube / quality (push) Waiting to run
2026-09-09 07:51:59 +02:00
ff827a74bd
fix: recover character sheet requests from gateway 405
Test and SonarQube / quality (push) Waiting to run
2026-09-09 06:49:52 +02:00
b7aade39db
Release v1.26.1
Test and SonarQube / quality (push) Waiting to run
2026-09-08 23:39:44 +02:00
1a06a8bf8c
Release v1.26.0
Test and SonarQube / quality (push) Waiting to run
2026-09-07 19:05:10 +02:00
6553d5003d
fix: preserve custom OCR engine cards
2026-09-05 08:11:57 +02:00
60ef436ce1
feat: add OCR engine profiles
2026-09-04 22:29:11 +02:00
2caa417401
fix: preserve audiobook dialogue boundaries
2026-09-04 15:36:26 +02:00
29f5243f6b
test: preserve dialogue-only recast merges
2026-09-04 15:31:45 +02:00
b6f4a9518b
test: lock visual identity prompts
2026-09-04 15:30:39 +02:00
8181c491c0
docs: complete frontend namespace migration
2026-09-04 13:43:36 +02:00
18e586d06f
refactor: scope conversation state
2026-09-04 13:42:02 +02:00
417d7215d2
refactor: scope i18n state
2026-09-04 13:40:07 +02:00
ee4208ec51
refactor: scope cast compatibility modules
2026-09-04 13:38:40 +02:00
542f44fbb8
refactor: scope seed finder
2026-09-04 13:36:55 +02:00
10f618c179
refactor: scope character columns
2026-09-04 13:35:10 +02:00
d2a8dd43b4
perf: tighten character pagination
2026-09-04 13:31:18 +02:00
7938f9ca74
refactor: scope frontend utilities
2026-09-04 13:27:43 +02:00
d055596504
refactor: scope voice inspector
2026-09-04 13:25:13 +02:00
67ee55d3ac
refactor: scope character library
2026-09-04 13:23:54 +02:00
73f8f92826
refactor: scope character sheets
2026-09-04 13:21:31 +02:00
e5bd2a149f
refactor: scope voice library
2026-09-04 13:19:52 +02:00
1b7d6b2346
refactor: scope generation module
2026-09-04 13:15:30 +02:00
ababdf6741
refactor: scope stt module
2026-09-04 13:13:10 +02:00
c53c47ce2d
refactor: scope ai backends
2026-09-04 13:10:51 +02:00
716e601fac
refactor: scope integrations module
2026-09-04 13:06:59 +02:00
3fffae9015
refactor: scope combined library
2026-09-04 13:04:46 +02:00
260c5c22a7
refactor: scope engine support
2026-09-04 13:02:29 +02:00
b747553bf6
refactor: scope routing module
2026-09-04 13:00:10 +02:00
28c72c76dd
refactor: scope voice sources
2026-09-04 12:57:53 +02:00
d219aec676
refactor: scope voice clone
2026-09-04 12:55:50 +02:00
998a65f2ba
refactor: scope tts preview
2026-09-04 12:53:44 +02:00
656d0473d4
refactor: scope settings module
2026-09-04 12:51:29 +02:00
8002ca1d75
refactor: scope character library
2026-09-04 12:49:22 +02:00
0e615d52de
refactor: scope studio module
2026-09-04 12:47:30 +02:00
ac55cd88a3
refactor: scope rehearser cast
2026-09-04 12:44:58 +02:00
df95ada578
refactor: scope rehearser voice design
2026-09-04 12:44:08 +02:00
0f3d410260
refactor: scope rehearser voice picker
2026-09-04 12:43:11 +02:00
dea1de5c57
refactor: scope rehearser stage
2026-09-04 12:42:22 +02:00
da3957347c
refactor: scope audiobook network
2026-09-04 12:41:35 +02:00
7ee5f65e00
refactor: scope rehearser library
2026-09-04 12:40:56 +02:00
0ee43421b7
refactor: scope reader module
2026-09-04 12:40:09 +02:00
66c5dd6e0c
refactor: scope audiobook core
2026-09-04 12:37:37 +02:00
c6db55e55b
refactor: scope rehearser core
2026-09-04 12:33:55 +02:00
6c62a0f75e
refactor: scope rehearser recording
2026-09-04 12:31:03 +02:00
3a7f0bf677
refactor: scope rehearser io
2026-09-04 12:30:13 +02:00
a202230654
refactor: scope rehearser playback
2026-09-04 12:29:19 +02:00
cc4fc4ae2e
refactor: scope audiobook state modules
2026-09-04 12:26:21 +02:00
302dbe1279
refactor: scope pure frontend leaves
2026-09-04 12:20:33 +02:00
d32985256d
docs: close incremental p1 audit
2026-09-04 12:14:47 +02:00
cefd4bd494
refactor: extract rehearser training mode
2026-09-04 12:12:11 +02:00
0c7cc04643
refactor: extract rehearser recording
2026-09-04 12:10:00 +02:00
ba7b3115b9
refactor: extract audiobook preview export
2026-09-04 12:05:50 +02:00
76421dfe88
refactor: extract audiobook casting pipeline
2026-09-04 12:04:05 +02:00
eaf2f29d62
refactor: extract rehearser io
2026-09-04 12:01:38 +02:00
f97fd60e43
refactor: extract rehearser playback
2026-09-04 11:59:09 +02:00
e096b3e529
refactor: wire audiobook namespace APIs
2026-09-04 11:54:56 +02:00
6f2c0b7b3d
refactor: extract audiobook cast view
2026-09-04 11:53:04 +02:00
262e37fffd
refactor: extract rehearser voice matching
2026-09-04 11:47:51 +02:00
4c8022e8aa
refactor: extract audiobook stylesheet
2026-09-04 11:44:55 +02:00
065445a20a
refactor: extract rehearser stylesheet
2026-09-04 11:42:43 +02:00
eb008475ed
refactor: extract rehearser cast renderer
2026-09-04 11:39:45 +02:00
ae9df4f7f0
feat: distinguish provider configuration and health
2026-09-04 11:35:52 +02:00
7c14f41cb9
refactor: extract audiobook speaker normalization
2026-09-04 11:32:20 +02:00
0d1299b19c
refactor: extract audiobook cast cleanup
2026-09-04 11:30:12 +02:00
1951ce0646
refactor: extract audiobook dialogue merging
2026-09-04 11:27:49 +02:00
41349867a1
refactor: extract audiobook cast normalization
2026-09-04 11:25:52 +02:00
0876527554
refactor: extract audiobook quote segmentation
2026-09-04 11:22:15 +02:00
2fde0a176d
refactor: extract rehearser voice design
2026-09-04 11:19:01 +02:00
d43959728d
refactor: split voice design styles
2026-09-04 11:16:05 +02:00
de099d30c5
refactor: split background job styles
2026-09-04 11:13:36 +02:00
8d9a172993
refactor: split resource diagnostics styles
2026-09-04 11:10:43 +02:00
c0ac5dd775
refactor: extract audiobook cast serialization
2026-09-04 11:08:49 +02:00
d3bc806f33
refactor: extract rehearser training comparison
2026-09-04 11:06:23 +02:00
d613591526
refactor: extract rehearser cast controls
2026-09-04 11:04:13 +02:00
ed3b2d42cd
refactor: publish feature APIs through TTVC
2026-09-04 11:00:22 +02:00
e2e20fa89f
feat: add request correlation diagnostics
2026-09-04 10:58:46 +02:00
66ebd1a8b8
refactor: extract audiobook parsing primitives
2026-09-04 10:56:31 +02:00
0bfb6d694b
refactor: extract rehearser voice picker
2026-09-04 10:54:21 +02:00
e98c5ffe33
refactor: extract rehearser stage controls
2026-09-04 10:52:05 +02:00
2712843322
refactor: extract rehearser library persistence
2026-09-04 10:46:02 +02:00
c815b7941a
feat: expand resource diagnostics
2026-09-04 10:42:08 +02:00
8f95978486
test: validate current image under 4g memory limit
2026-09-04 10:38:36 +02:00
b1374c50a0
fix: synchronize frontend release cache version
2026-09-04 10:36:44 +02:00
5c8683821e
fix: preserve lazy navigation intent
2026-09-04 10:34:50 +02:00
8d7511cdbf
test: measure constrained character workloads
2026-09-04 10:34:27 +02:00
4b01a853fb
perf: bound browser library image cache
2026-09-04 10:28:07 +02:00
e515554446
refactor: centralize provider health probes
2026-09-04 10:25:55 +02:00
c43a11da68
perf: lazy-load section feature modules
2026-09-04 10:23:20 +02:00