docs(pwa): CLAUDE.md, OPERATIONS.md, ARCHITECTURE.md aktualisiert
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m20s
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m20s
CLAUDE.md: zwei neue Gotchas (SW nur HTTPS, Icon-Rendering) + Erweiterung der "Dateien, die man anfasst"-Liste um SW-Pfade und Client-Stores. OPERATIONS.md: neuer Abschnitt "PWA / Offline-Modus" mit Caches, Sync-Verhalten, Debug-Pfad und E2E-Test-Kommando. ARCHITECTURE.md: neuer Abschnitt "Service Worker (PWA)" mit Zuständigkeiten, Cache-Strategien, Message-Protokoll, Stores und Komponenten. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -146,3 +146,28 @@ Siehe `.env.example` im Repo.
|
||||
- **Thumbnail-Cache in SQLite** → `003_thumbnail_cache.sql` + `searxng.ts`
|
||||
|
||||
Git-Log ist die Wahrheit; diese Datei ist eine Orientierung.
|
||||
|
||||
## PWA / Offline-Modus
|
||||
|
||||
Kochwas ist eine installierbare PWA. Erkennbar an:
|
||||
- `static/manifest.webmanifest` (Manifest + Icons: SVG + 192×192 + 512×512, alle maskable)
|
||||
- `src/service-worker.ts` (Cache + Sync)
|
||||
|
||||
Caches im Browser (siehe DevTools → Application → Cache Storage):
|
||||
- `kochwas-shell-<version>` — App-Shell (JS/CSS/Static-Icons), cache-first
|
||||
- `kochwas-data-v1` — Rezept-HTMLs + API-JSON (SWR)
|
||||
- `kochwas-images-v1` — Bilder (cache-first)
|
||||
- `kochwas-meta` — Cache-Manifest (Liste der gecachten Rezept-IDs unter `/__cache-manifest__`)
|
||||
|
||||
Sync-Verhalten:
|
||||
- **Initial-Sync** (nach erstem Install): SW lädt alle Rezepte + Bilder im Hintergrund. Fortschritt im `SyncIndicator`-Pill unten rechts.
|
||||
- **Update-Sync** (bei jedem App-Start online): Diff gegen Cache-Manifest, nur Delta nachladen, gelöschte IDs räumen.
|
||||
- **Storage-Quota-Check**: < 100 MB frei → abbrechen mit Fehler-Toast.
|
||||
|
||||
Bei SW-Problemen Debug-Pfad:
|
||||
1. Admin → „App"-Tab → „Offline-Cache leeren" (destructive, zweistufig bestätigt)
|
||||
2. Alternative: DevTools → Application → Service Workers → Unregister, dann Seite neu laden.
|
||||
|
||||
E2E-Tests (Playwright): `npm run test:e2e`. Setzt `npm run build` voraus (Playwright startet automatisch `npm run preview`).
|
||||
|
||||
Icons einmalig rendern: `npm run render:icons` (schreibt nach `static/icon-*.png`, committen).
|
||||
|
||||
Reference in New Issue
Block a user