18 Commits
Author SHA1 Message Date
catarrh 69f3533c41 test(validate): cover cu prayers, shared marker-type constant
- validate-data now scans cu/services/prayers (349 files; 331 -> 680 total).
- marker types (TROPARION/KONTAKION/THEOTOKION/LITANY/COMMUNION) factored
  into PRAYER_NODE_TYPES with a keep-in-sync comment.
- COMMUNION marker (cu COMMUNION/SUN.json) added per the same convention.
2026-10-04 17:36:31 +03:00
catarrh 4f9f55b3f3 fix(validate): allow LITANY/THEOTOKION prayer markers
Both node types are bare classification markers with no payload
(content lives in TEXT/HEADER nodes, matching the TROPARION/KONTAKION
convention already in the allowlist). Clears the 13 pre-existing
validate errors; no data or rendering change.
2026-10-04 17:26:06 +03:00
catarrh 8c442bf7b6 fix(offline): surface degraded/missing preloads, join re-entrant runs, cache manifest to IDB
- loadManifest() goes through DataCache.fetchWithFallback: the file list is
  written to IDB and survives SW-cache eviction; a run with the reduced
  fallback set is flagged and shown as degraded (new i18n en/ru/cu).
- 404 answers are counted as 'missing' (deployment drift) with a
  preload-missing diag entry, instead of silently reporting Done.
- preload() is re-entrancy safe: concurrent calls join the in-flight run.
- versions.json is loaded once per session (was fetched per translation).
- Write-through failures in fetchWithFallback()/fetch() log idb-write-fail.
- preload-manifest.json SW route is NetworkFirst (fresh coverage online).
- Manifest now also covers the shared/lives + shared/commands fallbacks.
2026-10-04 17:14:33 +03:00
catarrh 1201e16d5e fix(cache): complete preload coverage + surface silent write failures
Root cause of 'pre-cache done but offline data missing':
1. Preload manifest never listed the services/{prayers,texts,headers,var}
   subtrees the Service view dereferences (CommonPrayers->prayers, etc.),
   plus only 13 hardcoded commands. Generator now enumerates all of them
   (en 1500->1740, ru->1333, cu 1500->2108 files).
2. DataCache.set silently resolved on IDB write failure (quota exceeded),
   so preload counted un-stored files as success and reported 100% done.
   set() now returns boolean; preload treats failed writes as failures
   that feed the existing circuit breaker (visible abort + diag entry).
3. No persistence request: added best-effort navigator.storage.persist()
   before preload, diag-logged.
4. Dropped dead manifest weight (menaion-common/add, horologionadd) -
   never referenced by any view.
2026-09-08 08:04:13 +03:00
catarrh b4ebd37cc3 fix: unstretched PWA icons, maskable purpose, theme-aware favicon
- generate-icons.py: preserve SVG aspect ratio (was stretched 1.49x), art at 80% for maskable safe zone, emit transparent cross-gold.png
- manifest icons: purpose 'any maskable'
- applyTheme(): compose favicon per app theme (chrome bg + gold cross)
2026-08-22 11:36:14 +03:00
catarrh d1d43a5b57 feat: preload manifest for accurate offline caching 2026-08-04 02:48:11 +03:00
catarrh 2e5515499c add English service texts: 25 Divine Liturgy prayer files from EPUBs 2026-08-02 15:49:51 +03:00
catarrh 8b27bd4767 PWA optimization: vite-plugin-pwa, split misc.json, IndexedDB cache layer 2026-08-01 21:39:10 +03:00
catarrh c342a5b636 normalize pre-revolutionary orthography in title matching (39 more Bulgakov entries matched) 2026-08-01 21:00:53 +03:00
catarrh e32d7878a9 enrich 13 more ru lives from Bulgakov's Desktop Book 2026-08-01 15:15:46 +03:00
catarrh ec3f593e5c enrich 3 more ru lives: Сретение, Захарий Печерский, Анна пророчица 2026-08-01 13:07:27 +03:00
catarrh 08950cd345 resolve 64 unmatched minei entries, enrich 57 more ru lives 2026-08-01 12:55:51 +03:00
catarrh 381a4943c5 resolve review-band matches and enrich 121 more ru lives 2026-08-01 12:50:00 +03:00
catarrh 7dde2168d1 enrich ru lives with Chetyi-Minei texts and track static data 2026-08-01 12:30:55 +03:00
catarrh 7e4c1cc241 Texts library is exposed via separate menu 2026-08-01 03:30:34 +03:00
catarrh 366aea76bb Matins completed 2026-08-01 02:43:24 +03:00
catarrh f5722cc200 fix of unexpected "Commons" appearing in Bible books 2026-07-25 18:17:34 +03:00
catarrh 58b379d6e3 initial commit 2026-07-23 02:41:15 +03:00