- Home: "Your five minutes": a rotating Observe/Interpret/Apply prompt on the
passage whose matching note is thinnest in your own words, a 5:00 clock and a
box that appends to that note. Pasting is blocked; sessions show in Insights.
- Study: a Reading list tab (R) for the study: books and articles to consult,
with a note and a tick; merges across devices.
- Starting a study from a reading-plan day now uses the notes template you last
picked when starting a study by hand (logic moved to utils/planStudy.js).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Long pastes into Observe/Interpret/Apply are tagged as pasted; notes show
Mine / N pasted and an own-words share. Pastes follow text through merges.
- The "-> Claude" buttons on the Script stage ask first when a chunk lacks
enough of the user's own (non-pasted) words.
- Weekly recall card on Home: write a passage from memory, compare with notes,
self-rate; recalls are saved on the chunk and synced.
- Recall history on Home with an eight-week strip and the full list.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Earlier versions of a study: the server keeps compressed copies (about one per ten minutes of
editing, the latest 30); Export shows what differs and puts one back (the replaced copy is kept)
- Notes on highlights and bookmarks: synced, merged without loss, in exports and backups
- Reader verse panel lists your studies and chunks that cover the verse, and opens them
- Prayer journal: requests, who for, linked verses, days prayed, answers; synced, in backups
and the account export; daily prayer reminder through ntfy
- TODO.md lists the ideas not built yet
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Admin: sign-up Open / Invite only / Closed with single-use invite links
- Present mode for scripts (auto-scroll) and outlines (step through, pace vs planned minutes)
- Series: group studies on the dashboard, filter by series, calendar file for a study's sessions
- Lesson handout: printable page per session (passage, outline, questions, writing lines)
- Save a chunk's notes as your own study template (synced)
- Voice dictation for notes and scripts (browser speech recognition)
- Reading progress: map of the 66 books and a calendar of days read, synced and merged across devices
- Export highlights and bookmarks as Markdown or Word, grouped by named colour
- Verse of the day push to the ntfy topic (needs IQBIBLE_API_KEY)
- Sharing: co-teacher editing via single-use invite links; read-only links can expire and take a passcode
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sync and data safety
- Autosave flushes on leaving a study or the tab; storage-full errors are reported
- Unsynced studies, deletes and ink are queued and retried when back online
- Deletes propagate across devices (with a "Keep it" undo) and no longer resurrect
- Server assigns study versions (no client-clock conflicts); "Combine both"
merges a conflicted study chunk by chunk
- Reading-plan progress made offline is merged, not overwritten; plans, ink and
marks are cleared from the device on sign-out
Security
- Block SSRF through the ntfy reminder URL; failure-only rate limiting per IP and
account; constant-time login; TOTP replay protection; input validation;
SESSION_SECRET required in production; admin user delete fixed
- Forgot password: one-time code sent to the account's ntfy topic
Features
- IQ Bible proxy (route allow-list, text-only caching per its terms): more
commentaries, lexicons, study aids, daily verse and devotional, plan calendar
export, narrations, podcast background
- Study templates, reading-plan catch-up, account export, daily database snapshots
Tests and tooling
- ESLint config; App tests split into src/test; tests for sync queues, library
hook, merge, templates, IQ Bible UI and reset form
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Study
- New Outline stage (hierarchical I./A./1. points, linked to chunks, in all exports);
the chunk stage is now "Chunks"
- Home cards: passages shown as ranges, tags capped with "+N more"
Reader
- Side-by-side translations and a Compare tab per verse
- Typeface, line spacing, verse-number settings; text and column scale with the screen
- Highlights/bookmarks sheet with named colours (synced); BSB footnote spacing fix
- Cmd-K palette (passages, studies, notes, marks), keyboard shortcuts and "?" help
Flow and safety
- Toasts with Undo replace most confirm()/alert()
- Back/Forward move between pages
- Server refuses saves over a newer copy (409); keep-mine / use-other banner;
opening a study no longer re-stamps it
- Latest chapter request wins when flipping quickly
Offline and data
- Save books, plan days or a whole BSB/NET for offline
- Service worker fixes: helloao /api/ URLs were skipped and responses cloned too late
- Settings: download/restore a full backup
Accessibility
- Sheets trap focus and close on Escape, skip link, focus ring, reduced motion,
theme contrast raised to 4.5:1 (with a test)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- The setup form, active chapter tab, verse range selection, typed/bulk/
cross-chapter chunk creation, reorder, and delete move out of App.
- Setup now opens on the chapter holding the chunk last studied (e.g.
after Back to Chunks), and the Add Chapter form suggests the chapter
after the project's last one instead of repeating the current one.
- openNewProject/goHome/resume/import no longer reset setup state by hand;
SetupPage starts fresh each time it opens.
- Tests: add-chapter default, Back to Chunks chapter.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Search, tag filter, full-text note search, and rename state live in
HomePage. The sort choice is remembered in localStorage.
- useProjectLibrary owns opening/renaming/deleting projects and the
server reconcile (auto-restore + newer-on-server list).
- useReadingPlan owns the reading plan shared by Home and Reader.
- Tests: note search, rename, delete, sort memory, reading plan. Test
setup now resets the storage namespace between tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>