Skip to content

fix(reader): surface durable writes and reachable content - #104

Merged
darwin67 merged 3 commits into
mainfrom
feat/rfd4-phase3-reader-ux
Sep 13, 2026
Merged

fix(reader): surface durable writes and reachable content#104
darwin67 merged 3 commits into
mainfrom
feat/rfd4-phase3-reader-ux

Conversation

@darwin67

Copy link
Copy Markdown
Member

Stack

5 of 6 — depends on #103.

Summary

  • keep persistence failures visible without reserving empty reader space
  • make restored, search, bookmark, and annotation targets reachable in both axes
  • add compact persistence-error and navigation regressions
  • split the remaining RFD 4 Phase 3 work into independently reviewable M3.1–M3.5 milestones

Verification

  • full Flutter suite (247 tests) and analyzer passed on the complete stack
  • compact reader golden was visually inspected

darwin67 added a commit that referenced this pull request Sep 13, 2026
## Stack

1. **#100 — library and reader foundations** (this PR)
2. #101 — Android document-provider lifecycle
3. #102 — reader persistence and PDF geometry
4. #103 — durable managed deletion debt
5. #104 — durable reader feedback and reachable content
6. #105 — final storage/navigation invariant hardening

Merge in order; each PR targets the preceding stack branch.

## Summary

- protect reading progress after restoration failure and serialize
bookmark/document replacement ownership
- bound cover loading and cancellation while preserving partial import
warnings
- expose actionable blocked-open feedback
- admit extensionless provider-selected books through content detection

## Verification

- CI is green on this independently mergeable layer, including
Linux/macOS/Windows tests and host builds
- local Flutter suite: 226 passed at this stack boundary
- local serial `shosai-core` suite: 558 unit tests plus all
integration/doc tests passed at this boundary
- full-stack Oracle review is clean

---------

Co-authored-by: Darwin D. Wu <darwin67@users.noreply.github.com>
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-managed-deletion branch from 554cf89 to 7ec8f95 Compare September 13, 2026 05:34
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-reader-ux branch from f90ff5f to b4fe573 Compare September 13, 2026 05:34
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 13, 2026

Copy link
Copy Markdown

Deploying shosai with  Cloudflare Pages  Cloudflare Pages

Latest commit: 359f7b5
Status: ✅  Deploy successful!
Preview URL: https://d9d0c638.shosai-1f9.pages.dev
Branch Preview URL: https://feat-rfd4-phase3-reader-ux.shosai-1f9.pages.dev

View logs

@darwin67
darwin67 force-pushed the feat/rfd4-phase3-reader-ux branch from b4fe573 to e58ba4d Compare September 13, 2026 06:15
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-managed-deletion branch from 2c3c6ef to d98c839 Compare September 13, 2026 07:07
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-reader-ux branch from e58ba4d to db257e5 Compare September 13, 2026 07:07
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-managed-deletion branch from d98c839 to 221a1b3 Compare September 13, 2026 07:47
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-reader-ux branch from db257e5 to e10ab33 Compare September 13, 2026 07:47
Base automatically changed from feat/rfd4-phase3-managed-deletion to main September 13, 2026 08:18
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-reader-ux branch from e10ab33 to 359f7b5 Compare September 13, 2026 08:20
@darwin67
darwin67 force-pushed the feat/rfd4-phase3-reader-ux branch from a534c35 to 7b0c769 Compare September 13, 2026 15:39
@darwin67
darwin67 merged commit e9a3b24 into main Sep 13, 2026
15 checks passed
@darwin67
darwin67 deleted the feat/rfd4-phase3-reader-ux branch September 13, 2026 15:55
@chaba2-bot chaba2-bot Bot mentioned this pull request Sep 13, 2026
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