Commit Graph

576 Commits

Author SHA1 Message Date
0244fceb55 feat(magazine): filter the page grid by status from the legend
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 06:34:14 +02:00
319d4401da Release v1.56.3
Some checks failed
Test and SonarQube / quality (push) Has been cancelled
2026-09-30 18:44:52 +02:00
80ec22b752 fix(magazine): deleting a picture removes both of its records; say clearly while a turn is being read
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 18:35:20 +02:00
916d19d22f Release v1.56.2
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
2026-09-30 15:01:34 +02:00
884bbf33aa fix(magazine): a turned page shows at once (versioned picture URLs), turns are visible and undoable, one turn at a time
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 13:35:25 +02:00
28d6439604 fix(magazine): unbreakable text can no longer collapse the review; endless repeated tokens are OCR noise
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 13:13:40 +02:00
81e2c6b4ef Release v1.56.1
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
2026-09-30 12:49:30 +02:00
8da797751b fix(magazine): draw and edit panels are mounted on body so the sticky bars cannot cover them
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 12:48:27 +02:00
130fd273c6 fix(magazine): read a turned page through a ladder (turned, original with carried boxes, tesseract)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 12:31:44 +02:00
6fdf9fbc38 feat(magazine): turn a page scanned sideways or upside down and read it again
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 12:13:13 +02:00
119d3ba3ae fix(magazine): correct flagged words in place; whole-text editor keeps the paragraph's look and underlines
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:54:50 +02:00
dd5ddc5842 Release v1.56.0
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
2026-09-30 11:33:30 +02:00
9ad881ada8 feat(magazine): manage OPDS catalogues in the app, env-based login, result paging
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:03:03 +02:00
7e9be98709 feat(magazine): page overview shows status, article count, page flow and what to do next
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:59:08 +02:00
85c5b8427a feat(magazine): hands-free listening (Media Session, wake lock); fix Listen not starting audio
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:50:41 +02:00
15f59428ca docs: put the order-panel note next to the reading-order text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:46:35 +02:00
2318e8899e docs: file the new changelog entries under Unreleased, not the released 1.55.0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:46:16 +02:00
60654bf867 chore(docker): allow-list .dockerignore; rebuilt image includes mutagen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:45:48 +02:00
e241821325 fix(magazine): keep the Order by clicking controls on screen in a floating panel
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:45:48 +02:00
268ed391a3 feat(magazine): EPUB 3 Media Overlay export with measured sentence timings; tolerate missing mutagen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:33:08 +02:00
4a20a12f66 feat(magazine): show sidebars in the reading view as labelled, never-narrated asides
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:26:27 +02:00
30b80fcbf7 feat(magazine): mark hand-edited text, show a word diff against the recognised text, restore it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:24:27 +02:00
0f4b28ba14 feat(magazine): link a tail to its head from 'continued from page N'
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:20:35 +02:00
0005ae0ebd feat(magazine): import a magazine from PNG/JPEG page images
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:19:14 +02:00
0d3178f733 docs: general-purpose OCR porting brief for letters, papers and forms
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:10:59 +02:00
13f9ae6194 Release v1.55.0
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
2026-09-29 21:38:32 +02:00
6faaa349d5 docs: OCR porting brief; test: current prompt version fixture, known phone-width issue
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-29 21:38:28 +02:00
3f4dfb70a4 fix(characters): harder gender/period locks in scene prompts, no unchecked sheet overwrites a validated one, weapon wording only for armed characters, poll survives 5xx blips
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-29 21:20:56 +02:00
35e0a64665 feat: OCR benchmark harness and first candidate results (docling, PaddleOCR)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-29 17:55:48 +02:00
c3c5c55f17 feat(magazine): find and import issues from the Internet Archive and OPDS catalogues
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>
2026-09-29 17:35:08 +02:00
834146de30 feat(magazine): synthesis state, MP3 length and inline play in the contents list
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-29 17:24:13 +02:00
4d7434f9af fix: explain why designed-voice benchmarks fail and stop batches on an unreachable service
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-29 16:03:23 +02:00
f1b12993a1 docs: mark magazine live ingest preview as done
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-29 15:11:26 +02:00
f2c338aa96 docs: add TODO for a general UI/UX simplification pass on settings/config screens
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>
2026-09-29 14:41:26 +02:00
b7202e030d docs: add TODO items for VoiceStudio-inspired features the user picked
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>
2026-09-29 14:40:15 +02:00
df4bfc934a docs: deep-dive UI/UX and feature-parity comparison with VoiceStudio
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>
2026-09-29 13:46:14 +02:00
ed41cbadf0 docs(magazine): record the healing Auto-fix run on the live production magazine
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 13:35:01 +02:00
fd43710caa docs: evaluate and compare VoiceStudio (debpalash/VoiceStudio)
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>
2026-09-29 13:23:16 +02:00
faa3c16a91 fix(magazine): exclude advertisement pages from magazine-comparison statistics
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>
2026-09-29 13:11:00 +02:00
f0b5d5aa68 feat(magazine): run the whole-issue Auto-fix pass automatically after import
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>
2026-09-29 09:37:28 +02:00
6f2dfca89a docs(magazine): record D-E re-run results with both G fixes applied
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 09:18:11 +02:00
ac1153b782 fix(magazine): re-check for duplicate boxes after box-fitting/seam-mending grows them
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>
2026-09-29 08:50:13 +02:00
1fb5528112 fix(magazine): drop hallucinated vision-OCR refusal text tiled over unreadable images
TODO A-E marked done for this pass; comparison report saved as evidence.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 23:26:59 +02:00
d06f990379 feat(magazine): fast LLM calls for spelling agent, run-together word repair, magazine comparison tool
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 20:09:42 +02:00
29b1f63e60 feat(magazine): click a flagged word to type your own correction
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 18:35:13 +02:00
63cb129d24 fix(magazine): draw panel placed inside the window; Undo/Redo lead the toolbar's second row; lines and frames are not missed text
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 18:33:15 +02:00
0136842258 fix: asset URLs carry a content-based build id so edited scripts are never served stale
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 18:13:42 +02:00
3b5e20a4c8 feat(magazine): undo and redo buttons (20-step history) in the sticky review bar
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 18:07:23 +02:00
a23e4be2a1 feat(magazine): Contents button in the sticky review bar
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 18:00:10 +02:00
1b9a4bd3bc fix(magazine): clipped-edge audit requires ink on the box's own text lines
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 17:54:12 +02:00