Persistent boot audit trail. Survives across app restarts (web reloads,
PWA cold starts, native process restarts when backed by appropriate
storage). The only thing that clears it is an explicit clear call.
Process-local BootAuditStorage. Values live in a Map for the lifetime
of the isolate and are lost on restart, which defeats the point of a boot
audit trail — but it's the right default for tests and for non-web
platforms where no persistent backend is wired yet.
Non-web stub. Native and server platforms have no localStorage, so the
audit trail is a no-op there. Use InMemoryBootAuditStorage (or supply a
custom backend) when running outside the browser and you still want a
trail.