OPFS desktop preflight and device evidence — 2026-07-15
Issue: #4
Exact stack: Jazz 2.0.0-alpha.53, Astro 7.0.9, Preact 10.29.7, Deno 2.9.0
Desktop preflight: macOS 26.5.1, Headless Chrome 150.0.0.0
Enforced behavior
The graduated runtime requests only Jazz's persistent driver and rejects boot before creating an identity/database when secure context, OPFS, SharedWorker, Web Locks, or MessageChannel is missing. There is no memory configuration or automatic fallback. UI separately reports:
- capability eligibility;
persistent-driver-openonly aftercreateDb()resolves;- per-write local durability only after
WriteHandle.wait({ tier: "local" }); navigator.storage.persisted()state and the result of an explicit persistence request.
Desktop preflight
- capability report: secure context, OPFS available, SharedWorker available, Web Locks available;
- initial eviction-persistence state: not granted;
- a write updated both islands, survived reload, and survived explicit/concurrent client recreation;
- two same-origin pages and the exact Jazz control exercised the SharedWorker baseline in #7;
- production service worker reached
ready, controlled the page, and installed a revisioned cache; - with browser networking forced offline, a cold page reload rendered the prerendered shell;
- while still offline, a new local write appeared in both islands, reached local durability, and survived another offline reload plus a subsequent online reload;
- recursive build scan found no server-secret name or value in the client artifact.
Returning online is recorded only as retained local behavior. The pinned Jazz API exposes no public connection-state or convergence signal, so this evidence makes no transport-reconnection claim.
This is preflight only. It does not replace the required physical iPhone and Android evidence.
Physical matrix status
| Surface | Status |
|---|---|
| iPhone Safari tab | deferred to M3 |
| iPhone Home Screen app | deferred to M3 |
| Android Chrome 148+ tab | deferred to M3 |
| Android installed app | deferred to M3 |
M1 approval
The product owner approved the M1 OPFS/PWA feasibility decision on 2026-07-15 from the stable HTTPS
artifact at https://n.zip/2c6d/. The live page hydrated both islands, reported a secure context,
OPFS, SharedWorker, Web Locks, and persistent-driver-open, retained a write across reload, and
preserved the 1 / 2 / 1 / 1 runtime cardinality.
The host exposed one integration defect: its explicit index.html canonical redirect used HTTP,
which made a service-worker precache transaction redundant. Lofi now caches and falls back to the
canonical scope root (./) and reports a redundant worker as failed; an nzip host patch is being
prepared upstream. This does not change the durability decision.
After republishing that workaround as artifact sequence 3, the live worker activated with scope
https:/, installed the revisioned cache, controlled the next load, and rendered the
hydrated persistent-driver UI after a forced offline reload. The only offline console failure was
nzip's Cloudflare browser-analytics request; no application resource or hydration failed.
This approval validates the M1 capability gate; it is not a claim that the physical matrix above ran. The full checklist remains required for M3 production PWA hardening. The shared nzip origin is also accepted only for OPFS/PWA feasibility, not as passkey or identity-isolation evidence.