Skip to content

✨ feat(reader): add memory bookmarks and stopping guidance - #168

Merged
vitofico merged 4 commits into
mainfrom
feat/selected-features-20261031
Oct 31, 2026
Merged

vitofico merged 4 commits into
mainfrom
feat/selected-features-20261031

Conversation

@vitofico

@vitofico vitofico commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add deliberate Pause & resume bookmarks with an optional note, saved passage and explicit return/edit/replace/remove actions. The sheet also shows a coarse whole-book distance to the next mapped stopping point, with unavailable states when positions cannot support an estimate.

Bookmarks remain device-local and account/catalog scoped. Room migration preserves existing progress. Reader restoration now captures the original DOM point before preference changes, verifies actual resource/font/paragraph visibility, bounds callback waits and rejects adjacent-resource captures. Configuration recreation preserves navigation and drafts.

Integration status

Integrated current main while preserving persisted, browsable and account-scoped synced highlights, quote copying and device-local memory bookmarks. Pause & resume is in More beside Highlights and Book details, avoiding extra toolbar crowding. Shipped Room schemas and migrations 10/11 remain canonical; schema 12 adds memory bookmarks and tests preserve highlight text, locations, ownership, tombstones, sync stamps and progress across shipped upgrades.

Highlight transactions and bookmark/slider navigation retain independent progress guards and safe rollback. Both use a shared resource-specific JavaScript bridge with cancellation-aware 1500 ms callback bounds, so a missing callback cannot indefinitely block a new navigation. The latest upstream read-only highlight API is retained unchanged.

Component(s)

  • Android app
  • Sync server
  • Documentation
  • CI / build

Validation

  • Complete Docker Android test, lint, debug and unsigned release-build gates passed: 1,791 tests across 228 suites, zero failures, errors or skips; zero lint errors. AboutLibraries export is byte-identical to the bundled JSON.
  • Structural-anchor Chromium tests: 27 passed, including actual pause-capture behavior with highlight decorations. Release-tool tests: 20 passed.
  • Latest server Ruff and PostgreSQL matrix passed in full, sync-only and AI-only modes: 1,069 cases per mode, zero failures or errors. Full mode has zero skips; sync-only and AI-only have 148 and 163 intentional feature-gated skips.
  • All-file pre-commit checks passed, including private-key and secret detection. Canonical generated output bytes are preserved; the exact generated Room schema identity follows the existing secret-baseline convention.
  • Fresh integrated APK emulator acceptance passed: highlight create/list/return and quote copy in normal/Highlight modes; independent bookmark save/edit/replace/return/remove; both return paths after resize; offline persistence and removal isolation; draft survival through rotation/configuration; exact 0.7/0.8 font restoration with actual CSS/fonts/resource observation; image-only resizing and continued progress navigation; reachable More-menu and pause actions at 320 dp and 1.8 system text.
  • Independent integration and follow-up reviews closed the migration, resource selection and cancellation findings. Generated schemas 4 through 12 and AboutLibraries retain their validated bytes. The final backend-only update leaves all validated client inputs unchanged.
  • Synthetic fixtures and disposable services/emulator were used. Scoped sync contracts have automated coverage; live native synchronization, deliberately forced recovery UI and physical-phone behavior were not exercised.

Screenshot

Original synthetic fixture at 320 dp and 1.8 system font scale, scrolled to the saved-passage actions.

Pause sheet saved-passage actions at large text

Checklist

  • Tests added or updated
  • Docs updated in the same PR
  • Android UI screenshot included above
  • Server schema: N/A; additive Android Room 11 to 12 migration and exported schema included
  • core/identity: unchanged
  • No new third-party SDKs, analytics or telemetry
  • Commit messages follow gitmoji and conventional commits

@vitofico
vitofico merged commit 53cd92f into main Oct 31, 2026
5 checks passed
@vitofico
vitofico deleted the feat/selected-features-20261031 branch October 31, 2026 20:48
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.

1 participant