Skip to content

Preview: read a book without updating progress or stats (#289) - #290

Merged
bndct-devops merged 1 commit into
mainfrom
feat/preview-reading
Nov 3, 2026
Merged

bndct-devops merged 1 commit into
mainfrom
feat/preview-reading

Conversation

@bndct-devops

Copy link
Copy Markdown
Owner

Closes #289.

What

The Read button on the book page is now a split button. Its caret offers Preview, with the hint "Does not update progress or stats". Preview opens the same reader with ?preview=1, and a small "Preview" tag shows in the reader bar while it is on. It applies to that one open only; there is no sticky setting.

How

Every write the web reader makes is PUT /books/{id}/status. That one call sets status and progress, upserts the synced device position and its history, derives the web reading session, and feeds everything downstream (Hardcover, Home, stats, streaks, calendar). In preview the reader never makes that call: all nine write sites (open, autosave, finish; EPUB, CBZ, PDF) go through one saveStatus helper that returns early. No server change.

Highlights and notes still work in preview. They are deliberate acts, not tracking.

Out of scope

  • KOReader: its stats come from the device and the issue is scoped to Tome itself.
  • A per-user "never track in the web reader" switch: easy follow-up if wanted.

Tests

  • frontend/e2e/preview-reading.spec.ts: a normal open writes "reading"; a preview open sends no status request and leaves the book unread with no progress; the menu item lands on the preview URL.
  • Checked by hand against a running instance: 4 status writes per normal open (EPUB and CBZ), 0 in preview, tag visible.

Changelog entry under Unreleased, website reader docs updated, i18n catalogs extracted.

…tats (#289)

The Read button on the book page is now a split button; its caret offers
"Preview", which opens the reader with ?preview=1. In preview the reader
skips its one write, PUT /books/{id}/status, so reading status, position,
the synced device position, the derived web reading session and everything
downstream stay untouched. All nine write sites (EPUB, CBZ, PDF, finish at
the end) go through one helper. A quiet "Preview" tag shows in the reader
bar. Highlights and notes still work. No server change.

Playwright spec: a normal open writes "reading", a preview open sends no
status request and leaves the book unread; the menu item lands on the
preview URL. Changelog, website reader docs, i18n catalogs.
@bndct-devops
bndct-devops merged commit e551cb2 into main Nov 3, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Anonymous / Incognito Reading Mode (Read without updating progress or stats)

1 participant