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
Status as recorded at M1. The physical matrix has since run and graduated at M3; see DX-DEVICE-01, DX-DEVICE-UX-01, and DX-OFFLINE-01 in the developer-experience contract. Do not cite this table as current 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.