chore(mana-web): /offline-Kommentar updated nach Layout-Bypass-Fix
Some checks are pending
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
Docker Validate / Validate Dockerfiles (push) Waiting to run
Docker Validate / Build calendar-web (push) Blocked by required conditions
Docker Validate / Build quotes-web (push) Blocked by required conditions
Docker Validate / Build todo-backend (push) Blocked by required conditions
Docker Validate / Build todo-web (push) Blocked by required conditions
Docker Validate / Build mana-auth (push) Blocked by required conditions
Docker Validate / Build mana-sync (push) Blocked by required conditions
Docker Validate / Build mana-media (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run

Folge-Commit zu a0a463a4f. Der FIXME-Block in +page.ts war noch der
alte „prerender = false weil 500-Crash" — jetzt ersetzt durch die
Erklärung warum @-Notation + prerender = true die saubere Lösung sind.

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

View file

@ -1,10 +1,16 @@
// FIXME: prerender is disabled because the SvelteKit prerender worker
// throws "Error: 500 /offline" with no usable stack trace during the
// production build. Suspected cause: a module-level side-effect on the
// shared layout (vault-client? data-layer-listeners?) that fails when
// no `window` is available. SSR'ing the offline page at request time
// is harmless — it's a static "you're offline" message — but the real
// fix is to find which import throws on the bare server and guard it.
// `/offline` ist die Workbox-navigate-fallback. Zwei Dinge sind nötig:
//
// First observed: 2026-04-07 during Memoro recording pipeline deploy.
export const prerender = false;
// 1. `prerender = true` — sonst landet die Page nicht in
// `prerendered/offline.html`, und der @mana/shared-pwa-Workbox-Config
// matched nur `**/*.html`. Ohne wirft Workbox beim SW-Register
// `non-precached-url: /offline`.
//
// 2. Die Page lebt unter `+page@.svelte` (statt `+page.svelte`) — die
// `@`-Notation bricht aus der Layout-Chain aus. Das Root-Layout
// zieht Dexie / encryption-vault / data-layer-listeners / auth-store
// rein; beim Build-SSR throw't Browser-Code (window/document/
// indexedDB). Genau das war der „Error: 500 /offline"-Crash, der
// 2026-04-07 zum prerender=false-FIXME geführt hatte. Mit @-Suffix
// hängt die Page direkt am SvelteKit-Root, kein Eltern-Layout — die
// OfflinePage aus @mana/shared-ui kommt ohne Stores aus.
export const prerender = true;