fix(mana-web): /offline prerendert wieder + ohne Workbox-Bug

Seit 2026-04-07 stand `prerender = false` mit FIXME im Repo, weil der
SvelteKit-Build-SSR der Offline-Page in „Error: 500 /offline" lief —
ohne Stack. Daraus folgten zwei latente Probleme:

  - /offline lag NICHT in `prerendered/`, die @mana/shared-pwa-Workbox
    matched aber nur `**/*.html`. Pageta hat 2026-05-20 denselben
    Effekt unter `non-precached-url: /offline` aufgedeckt.
  - SSR-at-request-time war kaschiert, weil mana.how heute kaum
    Worker-Caching greift.

Root-Cause: `apps/mana/apps/web/src/routes/+layout.svelte` lädt
Dexie / encryption-vault / data-layer-listeners / auth-store auf
Modul-Ebene — Browser-only Code (window/document/IndexedDB) explodiert
im SSR-Worker.

Fix: `/offline` aus der Layout-Chain rauswerfen. Datei umbenannt von
`+page.svelte` zu `+page@.svelte` (SvelteKit-Konvention: @-Suffix
bricht alle Eltern-Layouts). OfflinePage-Komponente aus @mana/shared-ui
kommt ohne Stores aus, also unproblematisch.

Verifiziert:
- pnpm run build → keine Crashes mehr
- `.svelte-kit/output/prerendered/pages/offline.html` (9.2 KB) generiert
- `sw.js` Precache enthält `/offline` + `offline/__data.json`
- Workbox `createHandlerBoundToURL("/offline")` hat jetzt ein Target

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-20 14:41:34 +02:00
parent 568fc75f73
commit a0a463a4f1