Also reuses the existing magFmtClock for the contents list (the duplicate
tripped the frontend collision gate).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
User's own comparison: VoiceStudio's integrations screen is cleaner than
this app's Settings/Engines equivalent (880-line s-llms.html, 31+ fields
all visible at once vs VoiceStudio's collapsed per-category model cards).
Direction: progressive disclosure over one long flat form.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Projects nav grouping (Audiobooks/Magazines/Script Rehearsals/Video
Dubbing), Video Dubbing itself, Live STT Dictation, an onboarding/setup
wizard, a global command palette + cross-app recent history, and a
curated voice-design preset gallery. Telephony integrations were in the
same gap list but not picked -- left alone.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Grounded in VoiceStudio's own published screenshots (voice cloning, voice
design, dubbing, model management) and this app's actual served nav/routes
-- no live browser render was available this session, stated explicitly.
Identifies real gaps (video dubbing, live dictation, telephony
integrations, offline translation, model-pack UI, command palette, a
curated voice-design preset gallery) and two low-risk ideas worth adopting
(preset gallery, compute-device indicator).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Studied the repo (README, license notice, engine catalog, MCP/API docs) and
the GitHub API record, and probed the user's already-running instance at
192.168.178.8:3900 read-only (/health only). No integration attempted.
Written comparison at architecture/voicestudio-comparison.md; TODO items
1-3 marked done.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A page either side marks as a full-page ad is skipped by that side's quality
run, so comparing its near-empty boxes against the same page freshly OCR'd
on the other side (ad-marking is a one-time manual step) was a review-state
difference, not a pipeline one, skewing whole-issue numbers. Verified: text
similarity 0.837->0.870, box precision 0.62->0.66 on the real re-import.
Also records the clean from-scratch re-ingest results: the ingest-time
duplicate-check ordering fix is proven in isolation (0 additional duplicates
found afterward, vs 13 before the fix), and the auto-chained Auto-fix ran
end to end.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A fresh import used to stop once laid out, leaving missed text, unverified
OCR and provable misspellings for a separate manual click. _ingest_sync now
runs _quality_run_sync itself, under the same job, so the ingest progress
bar carries through it and the reviewer opens an already-worked magazine.
An Auto-fix failure is reported as an ingest failure without losing the
ingest's own result.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The duplicate detector only ran once, before geometry fixes could merge or
grow a box into one that now duplicates another's text -- narrating it
twice. Now re-run after the geometry loop at ingest and after
recover_missing_text in the whole-issue quality run. Confirmed live: 13
such duplicates in a fresh import, 6 in the already-reviewed magazine.
TODO: F decided unnecessary per user; G updated with both universal fixes
from this pass.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- fuse_paragraph_blocks joins a paragraph split by a column or page break into one
narration block (reader, podcast source and MP3), keeping source regions for highlighting
- language decided once per article; per-article acronym glossary (LLM classifies unknown
acronyms from context), letter-spelled acronym lists, extended DE/EN database
- core/spelling: dictionary findings (compounds, inflections, line-break hyphens, other-language
words), marked in review and listed per page/article; guarded LLM agent fixes; quality run
now includes the spelling pass
- keep suspended compound hyphens (Programmier- und) when merging regions / building layouts
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rsyncing the tree without excluding docker-compose.yml overwrites the
NUC's own compose file with the DGX's (wrong build/image, dgx_net/
docker-socket-proxy the NUC doesn't have), breaking `docker compose up -d`.
Hit and fixed during the v1.54.0 deploy.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fold the previously-untagged 1.53.5 work-in-progress plus the magazine
quality-check/driving-mode-player/ad-recognition/phone-toolbar fixes into
a single finalized release.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- The sticky review toolbar wraps to many rows on a phone and covered most of the page image,
so drawing a region or drag-selecting boxes started on a toolbar button; it now scrolls away
below 860px
- Delete-button layout test accepts the phone layout (text on its own line)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Export the region-type picker handlers and magRunPageQuality to the page (they threw
"not defined", so the picker never opened and Find missed text / Verify OCR did nothing)
- Add a unit test that fails when an inline mag* handler is not exported
- Quality audit: pixel-level clipping check on all four box edges, duplicate-article
detection, detected full-page advertisements skipped and shown green (no manual button)
- Driving mode text is karaoke-style (whole article, current sentence and word highlighted)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Quality run: per-page missed-text recovery, guarded OCR re-read and a pixel audit
(uncovered ink, overlapping boxes, clipped box edges); report saved as quality_report.json
- Thumbnail grid: quality-stage colours, flag badge, live per-page indicator for every
batch step (OCR, detection, figure fixing, quality run, audio)
- Pages can be approved as advertisements (not narrated, skipped by quality run)
- Driving mode: +/-15 s, seek bar, playback speed, text and image toggles
- Plus the previously uncommitted 1.53.5 magazine/OCR work in the same tree
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>