Skip to content

Theorem v1.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 12:47
· 223 commits to main since this release

Added

  • Library "Unshelved" filter — Added an "Unshelved" quick filter option to
    both desktop and mobile library filter menus to easily find books that are not
    assigned to any shelf or collection.
  • Google Play Books-style jump navigation — Following links, citations,
    footnotes, TOC chapters, or bookmarks now features location undo/redo controls
    (<Undo2 /> / <Redo2 />) directly in the top titlebar when controls are
    revealed, along with Alt+Left / Alt+Right keyboard shortcuts. The reading
    viewport remains 100% clean and distraction-free with zero floating badges.

Fixed

  • Centralized back navigation & mobile gestures — Fixed the Android hardware
    and gesture back button navigation via a centralized LIFO handler stack.
    Back actions cleanly dismiss open modals and overlays, step back through
    reading jumps, and exit back to the library or OS at the root.
  • Reader Titlebar Back Button — Clicking the top-left back button in the
    reader titlebar now directly flushes progress and returns to the Library
    instead of stepping backward through previous page turns.
  • Desktop blank page on TOC / menu navigation — Fixed an issue in the Foliate
    paginator runtime where navigating to a chapter from the Table of Contents or
    menu on desktop landed on a blank padding page (page 0), requiring a manual page
    turn before text rendered. Paged navigation now anchors directly to content
    page $\ge 1$.
  • Shelves responsive grid alignment — Synchronized Shelves and Shelf Detail
    column calculations and CSS responsive grid breakpoints with the Library page
    (2xl:grid-cols-8, xl:grid-cols-7, lg:grid-cols-5, md:grid-cols-4,
    sm:grid-cols-3, grid-cols-2), unifying view mode preferences and fixing
    grid collapsing to 2 columns on search.
  • Startup diagnostics & logging — Added explicit startup lifecycle
    breadcrumbs and structured file logging targets to aid troubleshooting early exits.
  • Yearly Book Goal undercounted — The yearly goal showed far fewer books
    than were actually completed because the counter was only incremented on the
    reader's auto-completion path; books marked "Finish" manually (library
    context menu, batch bar, shelves) or completed earlier/synced-in were never
    counted. The yearly count is now derived from the library itself (books with
    a completedAt in the current year), so it is always accurate and can't
    drift. Applied to the Statistics "Yearly Book Goal" bar, the page subtext,
    and the Share Stats card.
  • Metadata edits did not sync — After editing a book's info, the changes
    did not propagate to devices that already had the book. The peer merge kept
    its own (old) values for description, publisher, language, ISBN, published
    date, and category (match.X || inc.X), and title/author only adopted
    longer values. The merge now adopts the incoming metadata, so edits made
    after an initial sync reach other devices.
  • Cover edits did not sync — Changing or removing a cover showed only on
    the editing device. data: cover paths were stripped from the sync payload
    (and coverBlobHash was never used to transfer the bytes), so peers kept
    the old cover. Covers (already downsampled to ≤200×300 webp) are now
    serialized into the book payload, and the merge adopts an incoming data:
    cover, so cover changes propagate.

Changed

  • Settings "Current Progress" removed — The Yearly Book Goal progress bar
    in Settings duplicated the Statistics page, so it was removed to avoid
    confusion.
  • Settings storage now shows only downloaded books — The Books row in
    Data & Storage previously summed fileSize over the whole synced library
    (including books synced from another device whose files aren't stored
    locally) and showed the total book count. It now shows only the books
    actually downloaded to the device and their on-disk size, with a note for
    any sync-only books that aren't downloaded yet. The Library page continues
    to show the total library count.
  • Statistics "Books Completed" no longer shows a fake target — The bar
    previously implied a goal by rendering 26 / 31 where the /31 was just
    "completed + 5", not a real goal. It now renders as a plain count.