# WBV2-P1-005 Status status: done task: WBV2-P1-005 gate: G1 updated: 2026-08-25 America/New_York The storage journal fixture exposes a bounded OPFS/IndexedDB recovery contract through the Blender Text datablock and WASM SceneIR reader. Desktop and WASM agree that an interrupted commit keeps the old revision usable, a payload hash mismatch is quarantined, and restart recovers generation 1 to 2 with zero staging/journal resources. The unknown extension and schema hash survive save/reopen. Acceptance evidence: - fixture generator exit: 0 - desktop journal contract read and save/reopen exit: 0 - `npm --prefix web run test:generated-gap -- --task WBV2-P1-005` exit: 0 - `node tools/web/check-generated-gap.mjs --task WBV2-P1-005` exit: 0 - malformed blend keeps the original Main snapshot unchanged - interrupted commit, hash quarantine, and restart recovery outcomes are represented in the bounded journal receipt Artifacts: - report: `tests/golden/WBV2-P1-005/storage-journal-report.json` - desktop report: `tests/golden/WBV2-P1-005/storage-journal-desktop-report.json` - command log: `tests/golden/WBV2-P1-005/command.log` - WASM build log: `tests/golden/WBV2-P1-005/wasm-build.log` - fixture SHA-256: `07455729e45c5b59caddfd2b06dbe76296ef4cb90d558d8a6c345d96f12ebdda` - storage journal schema hash: `c7655279da06b11a53cce4b378f578369e161da132d07b9078024dd6fc796150` nextTask: WBV2-P2-001