From 09a6d4b2182e03b74b717811aab4d6ec2fcef6f0 Mon Sep 17 00:00:00 2001 From: Karolis Strazdas Date: Tue, 6 Oct 2026 17:31:38 +0300 Subject: [PATCH 1/3] feat: integrate coordinated goals tracking changes --- GOALS_INTEGRATION.md | 43 +++++++++++++++++++++++++++++++++++++++++++ client | 2 +- reader | 2 +- server | 2 +- 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 GOALS_INTEGRATION.md diff --git a/GOALS_INTEGRATION.md b/GOALS_INTEGRATION.md new file mode 100644 index 0000000..ceb66d9 --- /dev/null +++ b/GOALS_INTEGRATION.md @@ -0,0 +1,43 @@ +# Goals integration + +The coordinated `feat/goals-redesign` branches target `development` in reader, +server, client, and this workspace. No component version changes are included. + +The reader exposes generic observations; the client owns durable foreground +tracking, goal projections, and the adaptive Goals interface; the server validates +owned immutable activity and synchronizes rule/period history. Detailed contracts +and local validation commands live in: + +- `reader/docs/integration.md` +- `client/docs/goals-tracking.md` +- `server/docs-tracking.md` + +Merge the reader change before the client uses its committed revision. Merge the +server alongside the client, and deploy its migration/publication/PowerSync streams +and advertised tracking capability before the integrated client release. Merge +workspace pins after their component PRs. Use the established development-to-master +release workflow when ready; this work does not trigger a version-based release. + +## Coordinated changes + +- [Reader #5](https://github.com/PapyrusReader/reader/pull/5): generic activity observations, committed revision `bc617deeaf2ae684f20c1000ed7cd52f9a61d0a7`. +- [Server #12](https://github.com/PapyrusReader/server/pull/12): owned ledger and tracking capability, committed revision `91a1612a0c650f07ce0d7e3fe5266efe3969eeaa`. +- [Client #40](https://github.com/PapyrusReader/client/pull/40): Goals and durable foreground tracking, committed revision `a5c5e8b2375d014e9f7680f1957a2c1050287210`. + +## Validation evidence + +Final client integration: 1,541 tests passed, 19 skipped; final focused identity, +tracker, and persistence checks: 11 passed. Analysis, formatting, bootstrap tests, +and production web build passed. Android and Chromium host checks exercised real +EPUB/PDF reading, durable checkpoints, exposed coverage, and pause/exit behavior. +Light/dark/e-ink Goals and fixed-footers were inspected at phone, tablet, desktop, +and enlarged text sizes. Screenshots are in the client tracking documentation. + +Reader package: 145 tests passed; package/example checks, web build, browser +smoke checks, and worker drift passed. Server: 39 focused route/service/migration +checks and the final 12 aggregation/ownership regressions passed; Ruff, formatting, +and Mypy passed. Migration tests preserve pre-existing data. + +Shared aggregation fixtures cover concurrent-device overlap and coverage. Live +two-device PowerSync transport was not exercised; this remains an opt-in check +with configured services, rather than a claim implied by local database tests. diff --git a/client b/client index b8363ea..a5c5e8b 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit b8363ea5c1f6ba22328e1a373d1f823deb51b2ef +Subproject commit a5c5e8b2375d014e9f7680f1957a2c1050287210 diff --git a/reader b/reader index 7992c8b..bc617de 160000 --- a/reader +++ b/reader @@ -1 +1 @@ -Subproject commit 7992c8b518fcb900f941217a7ea8455d001c1aea +Subproject commit bc617deeaf2ae684f20c1000ed7cd52f9a61d0a7 diff --git a/server b/server index 93cc8d6..91a1612 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 93cc8d64fb0d21671711177fe7650e1a6ee00cbc +Subproject commit 91a1612a0c650f07ce0d7e3fe5266efe3969eeaa From e4dc2e8f97a7b7622f720005422ce2fc811cc489 Mon Sep 17 00:00:00 2001 From: Karolis Strazdas Date: Tue, 6 Oct 2026 17:40:56 +0300 Subject: [PATCH 2/3] fix: pin goal configuration replacement flow --- GOALS_INTEGRATION.md | 5 +++-- client | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/GOALS_INTEGRATION.md b/GOALS_INTEGRATION.md index ceb66d9..45bc371 100644 --- a/GOALS_INTEGRATION.md +++ b/GOALS_INTEGRATION.md @@ -22,12 +22,13 @@ release workflow when ready; this work does not trigger a version-based release. - [Reader #5](https://github.com/PapyrusReader/reader/pull/5): generic activity observations, committed revision `bc617deeaf2ae684f20c1000ed7cd52f9a61d0a7`. - [Server #12](https://github.com/PapyrusReader/server/pull/12): owned ledger and tracking capability, committed revision `91a1612a0c650f07ce0d7e3fe5266efe3969eeaa`. -- [Client #40](https://github.com/PapyrusReader/client/pull/40): Goals and durable foreground tracking, committed revision `a5c5e8b2375d014e9f7680f1957a2c1050287210`. +- [Client #40](https://github.com/PapyrusReader/client/pull/40): Goals and durable foreground tracking, committed revision `6fa232c0b4eeacd293d17126907cd932b843a05e`. ## Validation evidence Final client integration: 1,541 tests passed, 19 skipped; final focused identity, -tracker, and persistence checks: 11 passed. Analysis, formatting, bootstrap tests, +tracker, and persistence checks: 11 passed. Final goal replacement, deadline, UI, +projection, and persistence regressions: 41 passed. Analysis, formatting, bootstrap tests, and production web build passed. Android and Chromium host checks exercised real EPUB/PDF reading, durable checkpoints, exposed coverage, and pause/exit behavior. Light/dark/e-ink Goals and fixed-footers were inspected at phone, tablet, desktop, diff --git a/client b/client index a5c5e8b..6fa232c 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit a5c5e8b2375d014e9f7680f1957a2c1050287210 +Subproject commit 6fa232c0b4eeacd293d17126907cd932b843a05e From 88fd0581822fdc5c382868b1bc2a37dc7bc8ab6d Mon Sep 17 00:00:00 2001 From: Karolis Strazdas Date: Wed, 7 Oct 2026 01:30:54 +0300 Subject: [PATCH 3/3] chore: pin goals UI refinement and retain design prompt --- GOALS_FIGMA_MAKE_PROMPT.md | 41 ++++++++++++++++++++++++++++++++++++++ client | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 GOALS_FIGMA_MAKE_PROMPT.md diff --git a/GOALS_FIGMA_MAKE_PROMPT.md b/GOALS_FIGMA_MAKE_PROMPT.md new file mode 100644 index 0000000..308bbd7 --- /dev/null +++ b/GOALS_FIGMA_MAKE_PROMPT.md @@ -0,0 +1,41 @@ +# Figma Make prompt: Papyrus Goals + +Design a new Goals experience for **Papyrus**, a cross-platform book library and reader for physical and digital books. The purpose is to help people understand their reading progress and build a reading habit. Make it feel like a thoughtful part of a reading app: clear, calm, approachable, and easy to use. + +Focus on the visual design and overall experience. You have freedom to rethink the composition, hierarchy, and interactions. Do not turn this into a dense dashboard or an exhaustive feature specification. + +## Design style + +Use **modern, minimal product design grounded in Material Design 3**, with the warmth and restraint of a well-designed reading app. Favor clean sans-serif typography, clear hierarchy, generous but deliberate spacing, subtle surface differences, and consistent rounded controls. Use simple outline icons from one coherent icon family. + +The result should feel polished and practical. Avoid decorative gradients, glass effects, oversized statistics, excessive shadows, motivational slogans, and unnecessary visual clutter. Let typography, alignment, and spacing do most of the work. + +Choose a cohesive layout rather than forcing every piece of content into a card. Where you use repeated cards or controls, keep their proportions and alignment consistent. Buttons should fit their purpose and labels; short inputs should not stretch across a large desktop panel. Keep activity information easy to scan without repeating long book titles unnecessarily. + +## Colors and themes + +Provide **Light and Dark** versions using the same visual language and layout. Use Papyrus’s existing palette: + +| Role | Light | Dark | +| --- | --- | --- | +| Primary accent | `#5654A8` | `#C3C0FF` | +| Text on primary | `#FFFFFF` | `#272377` | +| Background | `#FFFBFF` | `#1C1B1F` | +| Main text | `#1C1B1F` | `#E5E1E6` | +| Secondary text | `#47464F` | `#C8C5D0` | +| Subtle borders | `#C8C5D0` | `#47464F` | +| Soft accent surface | `#E2DFFF` | `#3E3C8F` | + +Use purple sparingly to guide attention and indicate selection. Keep most surfaces neutral and maintain readable contrast. Also show how the design adapts to a high-contrast, grayscale e-ink display with solid surfaces and minimal motion. + +## Cross-platform design + +This is a **Flutter application for Android, iOS, web, Windows, macOS, and Linux**. Design it as one coherent product that adapts naturally to phones, tablets, and desktops, rather than a desktop dashboard squeezed onto a phone. + +Show representative phone, tablet, and desktop layouts. Account for touch, mouse, keyboard, visible focus, larger text, and system safe areas. Use bottom navigation on phones and sidebar navigation on wide screens as surrounding app context. Adapt secondary interactions to suitable mobile sheets and desktop dialogs or panels. Keep essential actions easy to reach without consuming excessive space. + +## Deliverable + +Create a visually convincing, interactive prototype of the Goals experience, including a representative overview, an activity/history view, and a secondary interaction that demonstrates the shared component style. Use concise, natural copy and realistic sample content, including a long book title, to demonstrate a balanced layout. + +Prioritize visual coherence, readability, and a strong responsive composition over the number of features shown. Establish a reusable typography, spacing, surface, and control system that could also guide the rest of Papyrus. diff --git a/client b/client index 6fa232c..81903e6 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 6fa232c0b4eeacd293d17126907cd932b843a05e +Subproject commit 81903e644bed5842575505a995a6d2f57ee60287