Skip to content

Margins turn pages, bookmarks ride the strip, the reader speaks (v0.61.0) - #44

Merged
glendonjklassen merged 4 commits into
mainfrom
page-turn-and-polish
Aug 25, 2026
Merged

Margins turn pages, bookmarks ride the strip, the reader speaks (v0.61.0)#44
glendonjklassen merged 4 commits into
mainfrom
page-turn-and-polish

Conversation

@glendonjklassen

Copy link
Copy Markdown
Owner

Eight asks from the 2026-08-24 batch, both shells where the feature allows:

Features

  • Page-turn mode (both shells): Settings ▸ Page turn mode. The reader keeps a tap gutter either side of the text (at least the 44px touch floor, whatever the margin slider says); tapping the right side scrolls 85% of a screen ahead, the left side back — so a Bluetooth page-flipper can drive the page. Taps in the text column still open word study.
  • Sunday service time (both shells): a real time picker in Settings. Set, the sunday-morning seating means AT CHURCH — from the service start until 1.5 hours after (plumbline_session_slot_at; both shells now resolve the seating to the minute). Unset keeps the before-noon rule. An afternoon congregation's window outranks the noon split.
  • The bookmarks strip (web; Android owed with plans): the plan chip above the canon strip is a swipeable pager now — the running plan's tile, then a tile per stored seating (Last opened · Sunday morning · Sunday evening · Wednesday evening), each with an icon. A tap toasts which bookmark and where it's going, then navigates, verse included.
  • Read aloud (web; Android TextToSpeech owed): the verse menu gains "Read aloud from here" and "Read chapter aloud" over the Web Speech API — one utterance per verse, the pane's own language picks the voice, and a sticky chip is the off switch.
  • Tags browse first (both shells): the Tags page shows the tags themselves — category-grouped, member counts, tap opens the detail card — with rename/categorize/merge as buttons after the list. (Android's list also groups by category now; assigning categories there is still owed.)
  • Backup out of Advanced (both shells): the Back up / Restore rows sit with the everyday settings.
  • Hymnal: the index rows no longer show the tune names (NEW BRITAIN, NICAEA, CWM RHONDDA…) — they were disorienting flush-right words; they stay in the hymn's credit line where the byline explains them.

Copy

  • "Romans Road (the one that ships)" → "Romans Road (built in)"; "fresh line" → "new line".
  • Plain-voice sweep across en/de/es: "Nothing due — well kept." → "Nothing due."; "Every plan you can run is running." → "Every plan type is already running."; "Still to download: nothing." → "Nothing left to download."; the (weaves/suggested) path leak out of panel.emptyQueue; the rhetorical question out of guide.map.p4; "back the way they came", "on the go", "will enable you to easily", and the Advanced blurb's editorial clause.
  • A real bug the sweep caught: en/es guide.map.p1 described the reading map as slate/amber where the palette paints gold/copper (German had it right).

Verification

  • cargo test all five crates green (330 core + new slot-window and config round-trip tests); bindgen surface check 119 fns in header ↔ Kotlin.
  • wasm rebuilt and packed before the web suite (per the stale-engine rule); npm run check 0 errors; 33/33 targeted Playwright specs pass, including new page-turn.spec.ts, read-aloud.spec.ts, bookmarks.spec.ts, and the Sunday-window test in session-slots.spec.ts.
  • All four new regression tests mutation-tested against rebuilt artifacts (the Sunday-window mutation with a real wasm rebuild) — every mutation killed.
  • Android Kotlin compiles clean (:app:compileDebugKotlin). Per UI-testing rules, no synthetic Android input — on-device UAT is yours.

FEATURE-MANIFEST updated: new §Page-turn mode, §Read aloud, §The bookmarks strip; seating-slots, Backup, Hymnal, Tags sections amended; Android deltas recorded (read-aloud, bookmarks strip, tag categorize).

🤖 Generated with Claude Code

…1.0)

- Page-turn mode (both shells): Settings toggle; the side gutters (min 44px)
  page the text on tap — right ahead, left back, 85% of a screen — so a
  page-turner remote can drive the page. config.pageTurn, additive.
- Sunday service time (both shells): a real time picker in Settings; the
  sunday-morning seating becomes the window from that time to 1.5h after
  (core::session_slot::slot_for_at, plumbline_session_slot_at — shells now
  resolve the slot to the minute). config.sundayService, additive.
- The plan chip is the bookmarks strip (web): a swipeable pager of tiles —
  the running plan, then every stored seating (Last opened, Sunday morning,
  Sunday evening, Wednesday evening), each with an icon; a tap toasts which
  bookmark and where it goes, then navigates. Android owed with plans.
- Read aloud (web): the verse menu's "Read aloud from here" / "Read chapter
  aloud" over the Web Speech API — one utterance per verse, pane-language
  voice, a sticky stop chip. Android TextToSpeech owed.
- Tags browse first (both shells): the Tags page lists the tags themselves,
  category-grouped, tap opens the detail card; rename/categorize/merge are
  buttons after the list.
- Backup out of Advanced (both shells): keeping your own data is a basic act.
- Hymnal index rows drop the tune names (NEW BRITAIN, NICAEA…) — they stay in
  the hymn's credit line where the byline gives them context.
- Copy: "Romans Road (the one that ships)" → "(built in)"; "fresh line" →
  "new line"; plus a plain-voice sweep (nothingDue, classFull, offlineComplete,
  advancedDesc, defaultStyleDesc, emptyQueue path leak, beforeShareSub,
  nothingRunning, guide.map.p4 rhetorical question) across en/de/es — and a
  real fix: en/es guide.map.p1 described the reading-map colours as
  slate/amber where the palette paints gold/copper (de had it right).
- E2e: page-turn.spec, read-aloud.spec, bookmarks.spec, the Sunday-window
  session-slots test — all four mutation-tested against rebuilt artifacts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@glendonjklassen
glendonjklassen enabled auto-merge (squash) August 25, 2026 03:16
@glendonjklassen
glendonjklassen merged commit a885867 into main Aug 25, 2026
8 checks passed
@glendonjklassen
glendonjklassen deleted the page-turn-and-polish branch August 25, 2026 03:29
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