ui: PWA support#23871
Conversation
There was a problem hiding this comment.
let's make sure we've got this file properly updated in the light of PWA implementation
ca56cf5 to
28cdbcb
Compare
28cdbcb to
c7f42bb
Compare
b3b24f5 to
877222e
Compare
83ac740 to
60ee2f2
Compare
aa0e72b to
917edae
Compare
|
Testing is underway for the bug in the update warning popup with relatives urls |
99b8e5a |
Keep the PWA hook object intact instead of destructuring needRefreshByStorage, which freezes the reactive getter. Also exclude loading.html from PWA precache to prevent 404 errors and broken SW installation.
I think it's the pre-built asset bucket that's lagging behind the merge. |
That would explain it as |
|
I'm not sure the prebuilt UI path is going to work as intended. The Probably needs to grab the list from the checksum file and pull those on download. Or better, pull an archive |
|
@aldehir hmm I can confirm that bundle.js|css and index.html are missing from the download: https://github.com/ggml-org/llama.cpp/actions/runs/27450671336/job/81145091244?pr=24550 well I guess, maybe simply rename the file back to the old |
* feat: Add basic PWA support and service worker for offline caching * feat: Vite PWA implementation WIP * feat: Improve PWA icons generation * feat: Add PWA workbox to server routes * feat: Include `version.json` in static assets * feat: Add HTTP cache headers for PWA static assets * feat: Update app name for `apple-mobile-web-app-title` * feat: Implement PWA versioning and automatic update detection * chore: Update `.gitignore` files * feat: Splash Screens * feat: Add dark mode favicon support * refactor: Cleanup * fix: Use dark logo for dark splash screens * refactor: Simplify favicons SVG code * fix: Adjust caching and polling for reliable service worker updates * fix: Add missing favicon entry * fix: Align PWA service worker configuration with SvelteKit build structure * fix: Replace hashed bundle paths with versioned static paths * test: Add PWA tests * ci: Add build output for unit tests * refactor: Cleanup * fix: Server build & release versioning * chore: Update package-lock.json * chore: Increase PWA cache size * chore: Update packages * feat: Update favicons * refactor: Post-merge fix * feat: support explicit build version for PWA cache busting * fix: CI * feat: Improve PWA Refresh Alert UI * feat: Add toggleable build version display * refactor: Cleanup * feat: Add version mismatch detection and manual app reload * refactor: replace dynamic imports with static * refactor: Cleanup * feat: Add safe space for `pwa-<size>.png` rendered icons * fix: use relative paths for PWA assets to support base path deployment * feat: add PWA mode detection via URL query parameter * feat: Use ?cache=true for SW-cached PWA assets * refactor: Build process cleanup * refactor: Decouple PWA versioning and remove ?cache=true workaround * chore: Update README logo * feat: Include PWA Assets generation in build script * refactor: `usePwa` hook for core layout * fix: Relativize base vite plugin * fix: remove unnecessary backslash escapes in test regexes * test: update static asset paths for API Key test * refactor: Move SvelteKit PWA Options config to constants * ui: fix update notification never appearing Keep the PWA hook object intact instead of destructuring needRefreshByStorage, which freezes the reactive getter. Also exclude loading.html from PWA precache to prevent 404 errors and broken SW installation.

Overview
Close #23060
LLAMA_UI_VERSIONenv var (from CMake) > git hash + epoch > fallback; used as cache-busting query param on bundles and in SW precachebundle.<hash>.js/cssreplaced withbundle.js?v=<version>in index.html, SW, and bundle files;_app/directory eliminated from outputNetworkFirststrategy for /v1/* and static endpoints (/health, /props, /models, etc.) with 24h TTL and 50-entry maxAdditional information
iOS Demo
pwa-ios-demo.mp4
macOS Demo
pwa-macos-demo.mp4
Requirements