Version history, notes on highlights and bookmarks, "you've studied this", prayer journal
Build and Push Docker Image / build-and-push (push) Successful in 5m13s

- 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>
This commit is contained in:
nmemmertandClaude Sonnet 5.5 committed 2026-10-06 10:45:32 -04:00
1 parent 54cb1c217d
commit 207bfcb919
45 files changed
+1669 -75

No files matched your search

+11
View File
@@ -103,6 +103,12 @@ export async function disableSharing(id) {
return request('DELETE', `/projects/${id}/share`);
}
// ---- earlier versions of a study ----
export async function listStudyVersions(id) { return request('GET', `/projects/${id}/versions`); }
export async function getStudyVersion(id, versionId) { return request('GET', `/projects/${id}/versions/${versionId}`); }
/** Puts an earlier version back; returns the study as it now is. */
export async function restoreStudyVersion(id, versionId) { return request('POST', `/projects/${id}/versions/${versionId}/restore`); }
// ---- co-teachers: other accounts that may edit a study ----
export async function getCollaborators(id) { return request('GET', `/projects/${id}/collaborators`); }
/** A single-use link (valid 7 days) that lets whoever opens it, signed in, edit this study. -> { token, expiresAt } */
@@ -222,6 +228,11 @@ export async function saveRemoteMarks(marks) {
return request('PUT', '/reader/marks', marks);
}
/** The prayer journal: { prayers: [...] }. */
export async function getRemotePrayers() { return request('GET', '/prayers'); }
/** Merges this device's prayers into the account's (the newer version of each wins); returns the combined list. */
export async function saveRemotePrayers(prayers) { return request('PUT', '/prayers', { prayers }); }
/** What the person has read: { chapters, days }. */
export async function getRemoteHistory() { return request('GET', '/reader/history'); }
/** Merges this device's reading history into the account's; returns the combined history. */