# WBV2-P1116-000: storage recovery module - task: `WBV2-P1116-000` - parent: `WBV2-P1115-000` - status: `in_progress` - gap: `workflow:module_storage_recovery` - ownerFamily: `STORAGE` - targetImplementationClass: `LOCAL_BOUNDED` ## 目标 按功能模块验证 IndexedDB catalog v1/v2 migration、page/Worker restart、OPFS preview commit/dedup、corrupt quarantine 和 final-reference GC。 ## 输入与范围 - Protocol: `web/protocol/storage.ts`, `web/protocol/storage-budget.ts`, `web/protocol/save-transaction.ts`, `web/protocol/recent-projects.ts`, `web/protocol/asset-preview.ts`, `web/protocol/asset-preview-decode.ts` - Storage implementation: `web/app/src/storage/asset-catalog-indexeddb.ts`, `web/app/src/storage/asset-preview-opfs-commit.ts`, `web/app/src/storage/asset-preview-quarantine.ts`, `web/app/src/storage/asset-preview-reference-gc.ts`, `web/app/src/storage/opfs-files.ts`, `web/app/src/storage/migrations.ts`, `web/app/src/workers/storage.worker.ts`, `web/app/src/app/App.tsx` ## 验收 ```bash npm --prefix web run test:asset-catalog-restart npm --prefix web run test:asset-preview-dedup npm --prefix web run test:asset-preview-quarantine npm --prefix web run test:asset-preview-reference-gc npm --prefix web run typecheck ``` 必须记录 migration/restart 正例、partial/corrupt/non-final reference 负例、OPFS replay、quarantine cleanup、deterministic GC 和 Chromium。存储容量与浏览器能力限制保持显式 BLOCKED,不推导完整 Media I/O parity。 ## 交付与回滚 - Receipt: `tests/golden/WBV2-P1116-000/module-receipt.json` - Manifest: `tests/golden/WBV2-P1116-000/manifest.json` - Status: `docs/status/WBV2-P1116-000.md` - 回滚:恢复 P1115 manifest 为 queue parent。