ConstOptionalpwaConfig: PwaLifecycleConfig
modules.pwa, merged.
OptionalprofileId: string | null
The active profile: the id under which this context holds the worker.
Registry destroy / test seam: unregisters GeoLeaf's own service worker AND tears down the install sub-flows. The SW is stateless per boot, but the install-prompt and iOS banner hold global listeners / a pending timer that must be released.
⚠️ Same narrowing as init()'s closed gate: a teardown must not revoke a worker the
host application installed.
⚠️ A teardown is not a withdrawal: the holders on record stay, and while there is one the worker stays too. Unregistering it here would cost the next offline load of this very context — and of any other that holds it — its worker.
Lifecycle for the PWA capability (SW registration + persistent storage + install prompt).