feat: Als PWA installierbar — Manifest, Offline-Worker (network-first), Dateihandling (D73)

Manifest mit Icons aus der Marke und Standalone-Fenster; ein bewusst dummer
Service Worker beantwortet nur die App-Navigation network-first und hält die
zuletzt gesehene Fassung für den Offline-Fall — die Update-Prüfung (D45)
bleibt dadurch unverändert wahr, der skipWaiting-Lebenszyklus entfällt. Die
installierte App registriert sich für .werkbaum-Dateien (file_handlers +
launchQueue -> adoptFile). Beide Deploy-Wege kopieren die App-Hülle mit;
.htaccess liefert .webmanifest mit MIME-Typ aus.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-25 15:03:22 +02:00
co-authored by Claude Fable 5
parent f6785e3138
commit 19053eba1d
14 changed files with 251 additions and 17 deletions
+5
View File
@@ -138,6 +138,11 @@ cp frontend/dist/llms.md "$STAGE/llms.md"
# llms.md, SPEC und Repo zeigt. Nur er liegt an der Adresse, die Agenten von
# selbst probieren.
cp frontend/dist/llms.txt "$STAGE/llms.txt"
# PWA-Hülle (D73): Manifest + Icons + Service Worker — public/-Assets neben
# der einen Datei
cp frontend/dist/manifest.webmanifest "$STAGE/manifest.webmanifest"
cp frontend/dist/icon-192.png frontend/dist/icon-512.png frontend/dist/icon-maskable-512.png "$STAGE/"
cp frontend/dist/sw.js "$STAGE/sw.js"
# Ohne diese Zuordnung liefert Apache `.md` ohne Content-Type aus und der
# Browser rät windows-1252 (D43-Nachtrag 2). Pages braucht sie nicht.
cp scripts/prod.htaccess "$STAGE/.htaccess"