Commit Graph
94 Commits
Author SHA1 Message Date
catarrh f49735b360 feat: explicit PWA update prompt with build stamp
- registerType 'prompt' + skipWaiting/clientsClaim false: new SW waits
  instead of silently hijacking running sessions
- main.ts registers via virtual:pwa-register; onNeedRefresh shows
  dismissible toast (i18n en/ru/cu) with Update button -> updateSW(true)
- No polling — update check only on navigation, zero extra traffic
- Settings About shows __BUILD_DATE__ build stamp for remote debugging
2026-08-24 11:39:47 +03:00
catarrh a005e386a6 feat: serve all precached data offline via DataCache fallback
- DataCache.fetchWithFallback: network-first with IDB write-through under
  the same url: keys the preload writes; falls back to precached IDB copy
  when offline — closes the preload(IDB) vs read(SW cache) gap that made
  the Bible reader (and every other view) fail offline despite precaching
- Convert all 33 raw /data fetches across bible/service/menaion/prayer/
  calendar/settings views; in-memory caches and notFound maps preserved
- fetchCommandText: switch to lowercase services/commands/ (already in
  preload manifest); tolerate both TEXT/text node casings per migrate-data
- Remove stale duplicate static/data/en/services/Command/ (15 files)
- fetchLives: fix misc fallback to real lives/misc/{N}.json bundles
2026-08-24 09:50:07 +03:00
catarrh 623c56a96f fix: robust first-launch auto-preload (mobile bible/download)
- OfflineManager.preload accepts bibleTranslations: 'all' and resolves
  translation ids internally from versions.json (single source), removing
  the fragile settings-side fetch that could throw and abort the whole
  download on mobile first launch
- Decouple trigger from '#settings/autopreload' route param via one-shot
  requestAutoPreload()/consumeAutoPreload() flag
- Auto-expand + tick Bible variant checkboxes for UI consistency
- Offer modal sets the flag and navigates to plain '#settings'
2026-08-23 22:05:58 +03:00
catarrh 142b95d226 refactor: address code-review findings for install detection and diag log
- pwa-install.ts: permanent 'ponomar-ever-installed' marker keeps install
  button hidden on Firefox/Safari after appinstalled clears the offer flag;
  isPwaInstalled moved to core for reuse
- diag-log: self-heal corrupted storage, show MM-DD in tail
- settings: refresh diag panel after clear-cache; uniform completion style
- data-cache.has: plain count(key); document HTML-as-failure intent
2026-08-23 10:23:36 +03:00
catarrh 193038a671 fix: hide install button when PWA already installed
- Button hidden by default; async isPwaInstalled() check (standalone mode,
  ponomar-installed flag, getInstalledRelatedApps) unhides only if installable
- Click hint 'already installed' branch uses same multi-signal detection
- manifest id '/' for getInstalledRelatedApps matching on desktop Chrome
2026-08-22 23:14:25 +03:00
catarrh 8c4f60d635 feat: precache resilience — circuit breaker, forensic diag log, safe version check
- Circuit breaker: abort preload after 5 consecutive network failures
  (success or 404 resets streak) instead of grinding doomed retries
- localStorage diag ring buffer (survives cache wipes): preload-start/
  done/abort, manifest-unavailable, version events; shown in Settings
- checkDataVersion: no longer wipes IDB on transient read errors
  (DataCache.has tri-state probe); logs old value on real migrations
- loadManifest: null result no longer cached forever (per-session fallback lock-in)
2026-08-22 22:39:37 +03:00
catarrh ee5fb17c6b feat: install hints for non-Chromium browsers; preload 404 hardening
- Install button without beforeinstallprompt now shows inline per-platform
  instructions (Firefox/iOS/generic) instead of silent no-op
- Preload: 404s no longer counted as failures nor retried
- PreloadProgress.failedFiles (up to 10) surfaced in completion message
2026-08-22 21:51:38 +03:00
catarrh c652183a24 feat: Bible reader bookmarks
- Version-specific bookmarks (version/book/chapter/verse) in localStorage
- Toolbar 🔖 button with dropdown: add, jump, rename, delete
- Default names include version display name, e.g. 'John 3:16 (Елисаветинская)'
- Verse anchors id='v{chapter}-{verse}' for scroll-to-verse jumps
- Theme-safe panel styling (header-text on dropdown bg) with distinct
  tap zones: divider + chip buttons for edit/delete, touch press feedback
2026-08-22 20:24:02 +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 610cdca3ad fix: eliminate guaranteed 404s (ru menaion-bundle, unmapped commemorations)
- loadMenaionBundle: ru resolves to cu bundle (no RU liturgical texts by design)
- autoPreload: fetch cu bundle once; keep ru+cu lives for current month
- calendar view: fetch shared commemorations only for mapped feast CIds
2026-08-22 00:18:15 +03:00
catarrh c8e11f0af7 feat: Gregorian default calendar, Hymnal label, day header cleanup
- Default calendar type julian -> gregorian (new installs only)
- EN nav 'Sbornik' -> 'Hymnal', section title -> 'Liturgical Hymnal'
- Day header: text-sm on date lines, weekday dropped from Julian line,
  order: Julian / day-title / Gregorian
2026-08-21 23:58:35 +03:00
catarrh ea09993df9 fix: IDB resilience, direct autopreload, nav delegation, Bible bounds 2026-08-21 23:05:23 +03:00
catarrh c10c219736 fix: Bible reader toolbar & select dark theme; service tab scroll jump
- Bible reader toolbar: bg-navy->bg-surface/50, selects: appearance-none bg-surface
- Prayer view select: appearance-none bg-surface (match settings style)
- Service view: preserve content height before loading to prevent scroll jump
2026-08-04 04:42:35 +03:00
catarrh cb63254b2f fix: save and restore last used Bible version across sessions 2026-08-04 04:23:10 +03:00
catarrh 73fac73248 feat: sort Bible translations by interface language (en/ru/cu priority) 2026-08-04 04:13:08 +03:00
catarrh 47017e7f4f fix: fill empty Bible book files (Brenton Mal + NKJV Jude/Philip) 2026-08-04 04:02:43 +03:00
catarrh b78e6ac09e fix: actually use preload manifest, remove dead calendarDataFiles (was never wired) 2026-08-04 03:42:10 +03:00
catarrh 094b883759 fix: remove 14 phantom Bible book entries from versions.json, regen manifest 2026-08-04 03:16:39 +03:00
catarrh d1d43a5b57 feat: preload manifest for accurate offline caching 2026-08-04 02:48:11 +03:00
catarrh 9fb4d182e2 fix: singleton IndexedDB connection to prevent cache check failures 2026-08-04 02:21:45 +03:00
catarrh fdbfcd4911 feat: unified offline preload — Calendar & Services + Bible, 3 checkboxes → 1 2026-08-04 02:16:15 +03:00
catarrh e4ddee924b offline: Infinity TTL, skip cached files, data version, first-launch preload offer, cache stats 2026-08-04 01:18:29 +03:00
catarrh ea947ede7a fix: mobile dropdown bg uses --color-dropdown-bg for dark theme 2026-08-02 23:56:01 +03:00
catarrh f45791579b feat: color themes, dark mode, HC/sepia themes, moon tooltip, docs update 2026-08-02 23:45:56 +03:00
catarrh 857adce5da resolve all Composite_* paremia placeholders to real Bible refs 2026-08-02 22:24:59 +03:00
catarrh 0769271f98 UX: comm chevron, lang fix, PWA cache control, Bible expand, app title 2026-08-02 21:47:31 +03:00
catarrh cb812fe4fe add English Exapostilarion1-11 and Compline files from external sources 2026-08-02 16:57:03 +03:00
catarrh 42ed5e7143 add English Theotokia VESPERST1-8 from Theotokia.pdf 2026-08-02 16:21:21 +03:00
catarrh 2e5515499c add English service texts: 25 Divine Liturgy prayer files from EPUBs 2026-08-02 15:49:51 +03:00
catarrh c2d5bd3093 feat: Bible translation preloading with translation picker 2026-08-02 14:42:34 +03:00
catarrh 04eaa7058c center calendar detail panel content with mx-auto 2026-08-02 13:10:41 +03:00
catarrh 7c602e25ca center nav links and calendar two-panel layout on wide screens 2026-08-02 13:04:56 +03:00
catarrh 4d0268cbab readme: add astronomy feature (sunrise/sunset, moon phase) 2026-08-02 03:29:13 +03:00
catarrh 4ddec5289f remove unused phaseToFraction import 2026-08-02 03:27:38 +03:00
catarrh b095a26a99 fix: nav right-aligned via ml-auto instead of justify-end 2026-08-02 03:20:50 +03:00
catarrh f4db817d13 fix: ecclesiastical moon day with alternating 29/30-day months 2026-08-02 03:14:26 +03:00
catarrh ec366f5681 i18n: moon day label 2026-08-02 02:59:27 +03:00
catarrh c91302adf1 moon trend, day number, and fraction display 2026-08-02 02:57:05 +03:00
catarrh 3f8d2c454c fix: nav justify-end on header with max-w-full to prevent overflow 2026-08-02 02:51:57 +03:00
catarrh accd5cf48c reduce spacing across all views; i18n for cache info text 2026-08-02 02:47:31 +03:00
catarrh 33d69f001e move astro panel above commemorations 2026-08-02 02:34:22 +03:00
catarrh 0b20bb77ad fix: triodion section data path (01.json not 01/full.json) 2026-08-02 02:31:07 +03:00
catarrh 672af4b5fb feat: moon phase + sunrise/sunset with location settings 2026-08-02 02:28:43 +03:00
catarrh 5dd8a947c6 outer container padding p-4 -> p-3 2026-08-02 02:08:55 +03:00
catarrh e7127ce8c8 fix: nav w-full so justify-end right-aligns items 2026-08-02 02:07:51 +03:00
catarrh 79fb3d4a15 nav: right-align via nav.justify-end; calendar panels: reduce padding 2026-08-02 02:03:23 +03:00
catarrh f1753f3bb4 fix: push Settings link to right with ml-auto, prevent off-screen 2026-08-02 01:59:35 +03:00
catarrh 020c8fa9aa unify sub-nav chips across all library pages (add menaion) 2026-08-02 01:57:06 +03:00
catarrh 058ef497f7 fix: add skipWaiting + clientsClaim for immediate SW activation 2026-08-02 01:46:25 +03:00
catarrh e397591781 fix: exclude data files from precache to prevent SW install errors 2026-08-02 01:22:35 +03:00