fix(pwa): BUG-005 chargement mobile via Cloudflare (SW network-first + no-cache)
CI / lint (push) Successful in 58s
CI / security (push) Successful in 40s
CI / test (push) Successful in 1m19s
CI / build (push) Successful in 37s
CI / e2e (push) Successful in 10m53s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
CI / lint (push) Successful in 58s
CI / security (push) Successful in 40s
CI / test (push) Successful in 1m19s
CI / build (push) Successful in 37s
CI / e2e (push) Successful in 10m53s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
This commit is contained in:
@@ -61,6 +61,19 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### Corrigé
|
||||
|
||||
- **BUG-005 — Chargement mobile incomplet derrière Cloudflare (`og.dracodev.net`)** —
|
||||
le service worker utilisait une stratégie **cache-first avec un nom de cache fixe**
|
||||
(`obsigate-v1`) et un précache de chemins erronés (`/frontend/js/…`) : le Cache Storage
|
||||
du SW (distinct du cache navigateur/Cloudflare) servait un ancien build indéfiniment,
|
||||
même après purge. Le middleware renvoyait en plus `Cache-Control: public, max-age=31536000,
|
||||
immutable` sur des assets **non fingerprintés**. Correctifs : `frontend/sw.js` réécrit
|
||||
(**network-first** pour HTML/JS/CSS, caches versionnés `SW_VERSION`, précache corrigé
|
||||
`/static/js/…`, `skipWaiting`/`clients.claim`) ; migration ponctuelle `localStorage`
|
||||
(suppression des anciens caches) en remplacement du kill-switch de session ; en-têtes
|
||||
`no-cache` sur `/static`, `index.html`, `manifest.json` et pages HTML ; rechargement unique
|
||||
sur `controllerchange`. Tests : `tests/frontend/sw.test.mjs` + `TestStaticCaching`.
|
||||
Guide Cloudflare : [docs/PWA_GUIDE.md](./docs/PWA_GUIDE.md).
|
||||
|
||||
- **Typage backend (mypy) — 33 erreurs corrigées** (`backend/main.py`, `indexer.py`,
|
||||
`auth/router.py`, `pdf_reader.py`, `export.py`, `bookslm_routes.py`) : annotations de types,
|
||||
gardes `None` sur `get_user()`, `PdfReader: Any` et import `PROVIDERS` manquant dans `main.py`
|
||||
|
||||
Reference in New Issue
Block a user