Build a minimal zero-dependency PWA under examples/pwa-loader/ that
decodes RVQS cognitive seeds and .rvf files in the browser:
- index.html: single-page app with file input, QR scanner button,
decoded seed info display, evidence viewer, and dark/light theme
- app.js: WASM module loading with JS fallback, RVQS 64-byte header
parsing (matching rvf-types binary layout), TLV manifest decoder,
RVF segment parser using WASM exports, QR camera scanner via
getUserMedia + BarcodeDetector API, file drag-and-drop handler
- style.css: CSS variables for dark/light themes, mobile-first
responsive layout, monospace hex display
- manifest.json: PWA manifest for standalone install
- sw.js: cache-first service worker for offline support
The WASM path is configurable via window.RVF_WASM_PATH (default
./rvf_wasm_bg.wasm). Gracefully falls back to pure JS parsing when
WASM is unavailable. No external CDN dependencies.
https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G
QR encoder (feature-gated behind `qr`):
- Pure-Rust QR code encoder with GF(2^8) Reed-Solomon
- SVG and ASCII renderers
- Version 1-5 support, byte mode, EC level M
- Example: qr_seed_encode
PWA loader:
- Browser-based RVF seed decoder (HTML/JS/CSS)
- Service worker for offline support
- Camera QR scanner via getUserMedia
no_std fixes:
- quality.rs test alloc import cleanup
- Cargo.toml feature gate for qr encoder
https://claude.ai/code/session_01RnwD4x5cbpB7FPvoyYQz8G