From a92b75891ac8d35ce1650889dfa92375cb95d334 Mon Sep 17 00:00:00 2001 From: robin Date: Sat, 20 Dec 2025 23:12:45 +0100 Subject: [PATCH] feat: add /sessions to pre-cache and clarify scan/notes offline coverage --- OFFLINE_SYNC_PWA.md | 4 ++-- public/sw.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/OFFLINE_SYNC_PWA.md b/OFFLINE_SYNC_PWA.md index 075104b..f154b9f 100644 --- a/OFFLINE_SYNC_PWA.md +++ b/OFFLINE_SYNC_PWA.md @@ -65,9 +65,9 @@ A critical feature is the ability to link tasting notes to a bottle that hasn't ### Service Worker (`public/sw.js`) - "Ironclad" Strategy The Service Worker implements an aggressive offline reliability strategy: -- **Pre-Caching**: The landing page (`/`) and core static assets are cached during installation. +- **Pre-Caching**: The landing page (`/`), core static assets, and the sessions overview (`/sessions`) are cached during installation. - **Fail-Fast Navigation**: Navigation requests have a 3-second timeout to prevent UI hangs during network transitions. -- **Root App Shell Fallback**: If a URL is not found in the cache while offline, the SW serves the Root (`/`). This allows Next.js to bootstrap and handle the routing client-side using local Dexie data. +- **Root App Shell Fallback**: If a URL is not found in the cache while offline, the SW serves the Root (`/`). This allows Next.js to bootstrap and handle the routing client-side (including Scan and Note features embedded on the homepage) using local Dexie data. - **RSC Data Resiliency**: Requests to `/_next/data/` return an empty JSON object if they fail, preventing "Application Error" screens. - **Stale-While-Revalidate**: Applied to static assets to ensure immediate UI response. diff --git a/public/sw.js b/public/sw.js index ba48d98..e11b16e 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,8 +1,9 @@ -const CACHE_NAME = 'whisky-vault-v4'; // Increment version for "Ironclad" strategy +const CACHE_NAME = 'whisky-vault-v5'; // Increment version for refined strategy // CONFIG: Core pages and assets to pre-cache immediately on install const CORE_PAGES = [ '/', // Dashboard / Home (Includes Scan and Tasting features) + '/sessions', // Tasting Sessions overview ]; const STATIC_ASSETS = [