Skip to content

feat: add the Reviews stop to the web book page - #2845

Merged
roberte777 merged 10 commits into
OMNI-2841/reviews-api-2from
OMNI-2841/reviews-web-3
Oct 21, 2026
Merged

roberte777 merged 10 commits into
OMNI-2841/reviews-api-2from
OMNI-2841/reviews-web-3

Conversation

@roberte777

Copy link
Copy Markdown
Collaborator

Summary

  • Reviews stop after Stats: your card, household summary, other readers
  • Your card: one-tap half stars, a pencil to edit and a trash can to delete
  • Spoiler flag lives in the editor; flagged text stays folded until Finished
  • Title area links to Reviews once two or more readers have rated the book

Test plan

  • cargo nextest run -p omnibus-frontend --features server
  • just e2e-ci tests/flows/reviews.spec.ts
  • just lint

Version

By default a merge to main cuts a patch release. Pick the version update this PR should trigger; labels override the default:

  • Minor — add the minor version label (vX.Y.Z → vX.(Y+1).0).
  • Patch — the default; add the patch version label or leave unlabeled (vX.Y.Z → vX.Y.(Z+1)).
  • No release — add the no release label to skip cutting a release.

If both minor version and patch version are applied, minor version wins. Unlabeled PRs that only touch docs (*.md, docs/) or CI (.github/) skip the release automatically.

Notes

Copilot AI balanced review requested due to automatic review settings October 20, 2026 21:11
@roberte777 roberte777 self-assigned this Oct 20, 2026
@roberte777 roberte777 added minor version Create the next minor release when this PR merges into main run_ui_tests Forces UI tests to be ran on PRs (as opposed to just merges into main) labels Oct 20, 2026
@roberte777
roberte777 added this pull request to stack #2844 October 20, 2026 21:11
@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

cargo-audit

No RustSec advisories found in Cargo.lock ✅

Posted by the Rust workflow's security job.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Pending saves can discard draft edits, refreshes can restore stale content, and review dialogs need keyboard focus handling.

4 open issues
What changed in this PR

Adds a Reviews section after Stats on the web book page, using the review APIs introduced in #2843.

Changes:

  • Adds editable reviews, private notes, spoiler controls and household ratings.
  • Shares Markdown editing and highlight insertion with journals.
  • Adds review tests and updates navigation and deletion wording.
File Description
ui_tests/​playwright/​tests/​pages/​BookDetailPage.ts Adds Reviews and seventh stop.
ui_tests/​playwright/​tests/​flows/​reviews.spec.ts Tests review workflows and failures.
ui_tests/​playwright/​tests/​flows/​book_detail.spec.ts Updates navigation and replaces rating coverage.
ui_tests/​playwright/​tests/​fixtures/​requestFixtures.ts Registers review requests.
ui_tests/​playwright/​tests/​fixtures/​dataFixtures.ts Adds review setup and cleanup.
ui_tests/​playwright/​tests/​fixtures/​accountFixtures.ts Adds reader-specific requests.
ui_tests/​playwright/​tests/​data/​reviews.ts Defines review test types.
ui_tests/​playwright/​tests/​data/​ratings.ts Removes obsolete rating types.
ui_tests/​playwright/​tests/​contracts/​reviews.ts Defines review mutation contracts.
ui_tests/​playwright/​tests/​contracts/​ratings.ts Removes obsolete rating contracts.
ui_tests/​playwright/​tests/​components/​ReviewsComponent.ts Adds review selectors and actions.
ui_tests/​playwright/​tests/​components/​RatingComponent.ts Removes replaced rating component.
ui_tests/​playwright/​tests/​apiRequests/​ReviewsRequests.ts Adds review API helpers.
shared/​src/​deletion.rs Labels deletion losses as reviews.
frontend/​src/​pages/​book_detail/​reviews/​writes.rs Handles mutations and refreshes.
frontend/​src/​pages/​book_detail/​reviews/​tests.rs Tests patches and rendered states.
frontend/​src/​pages/​book_detail/​reviews/​summary.rs Displays household ratings and jump link.
frontend/​src/​pages/​book_detail/​reviews/​stars.rs Adds half-star picker.
frontend/​src/​pages/​book_detail/​reviews/​others.rs Displays other readers and spoilers.
frontend/​src/​pages/​book_detail/​reviews/​mine.rs Adds personal card and deletion dialog.
frontend/​src/​pages/​book_detail/​reviews/​composer.rs Edits public text and private notes.
frontend/​src/​pages/​book_detail/​reviews.rs Coordinates review loading and rendering.
frontend/​src/​pages/​book_detail/​mod.rs Registers Reviews; retains mobile ratings.
frontend/​src/​pages/​book_detail/​marquee/​tests.rs Verifies seven-stop navigation.
frontend/​src/​pages/​book_detail/​marquee/​stats.rs Removes the old rating widget.
frontend/​src/​pages/​book_detail/​marquee/​home.rs Adds household-rating jump link.
frontend/​src/​pages/​book_detail/​marquee.rs Integrates the Reviews stop.
frontend/​src/​pages/​book_detail/​journal/​entry_card.rs Uses shared Markdown surface.
frontend/​src/​pages/​book_detail/​journal/​composer.rs Uses shared editor and highlight controls.
frontend/​src/​pages/​book_detail/​journal.rs Shares spoiler reveal binding.
frontend/​src/​pages/​book_detail/​journal_editor.rs Extracts reusable editing controls.
frontend/​src/​pages/​book_detail/​flow.js Updates section-count comment only.
frontend/​src/​data/​reviews/​tests.rs Tests mobile transport behavior.
frontend/​src/​data/​reviews.rs Adds review transports.
frontend/​src/​data.rs Exports review operations.
frontend/​assets/​atrium.css Styles review surfaces.
.claude/​rules/​04a-playwright-surfaces.md Documents seven navigation dots.
.claude/​rules/​04-playwright.md Reserves the review test fixture.

Review effort: Balanced

Comment thread frontend/src/pages/book_detail/reviews/composer.rs
Comment thread frontend/src/pages/book_detail/reviews/writes.rs Outdated
Comment thread frontend/src/pages/book_detail/reviews/mine.rs Outdated
Comment thread frontend/src/pages/book_detail/reviews/mine.rs
Comment thread frontend/src/data/reviews.rs Dismissed
Comment thread frontend/src/data/reviews.rs Dismissed
Comment thread frontend/src/data/reviews.rs Dismissed
@roberte777
roberte777 merged commit c3e93bd into main Oct 21, 2026
48 checks passed
@roberte777
roberte777 deleted the OMNI-2841/reviews-web-3 branch October 21, 2026 01:12
roberte777 added a commit that referenced this pull request Oct 21, 2026
…he replica and queued offline (#2846)

## Summary
- Reviews replaces the mobile rating block; the title line links down to
it
- Reviews read through the local replica, so the section shows offline
- Offline writes queue as `review:<uuid>`; queued patches merge per
field
- Rating writes queued by older builds still replay

## Test plan
- [x] `cargo nextest run -p omnibus-frontend --features mobile`
- [x] `cargo nextest run -p omnibus-frontend --features server`
- [x] `just lint` and `cargo clippy -p omnibus-frontend --features
mobile`

## Version
By default a merge to `main` cuts a patch release. Pick the version
update this PR should trigger; labels override the default:
- [ ] **Minor** — add the `minor version` label (`vX.Y.Z` →
`vX.(Y+1).0`).
- [x] **Patch** — the default; add the `patch version` label or leave
unlabeled (`vX.Y.Z` → `vX.Y.(Z+1)`).
- [ ] **No release** — add the `no release` label to skip cutting a
release.

If both `minor version` and `patch version` are applied, `minor version`
wins. Unlabeled PRs that only touch docs (`*.md`, `docs/`) or CI
(`.github/`) skip the release automatically.

## Notes
- Part of #2841: stacked on #2845 (db → API → web → mobile → React →
iOS)
- The card is the shared web section; this PR adds the mobile chrome
around it
- A cached review holds private notes, so the account-switch wipe covers
it
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor version Create the next minor release when this PR merges into main run_ui_tests Forces UI tests to be ran on PRs (as opposed to just merges into main)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants