Add Chromium-only Blender WebEngine parity work
This commit is contained in:
16
docs/status/W-042.md
Normal file
16
docs/status/W-042.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# W-042 Status
|
||||
|
||||
status: done
|
||||
task: 保存 `.blend` 原子事务
|
||||
|
||||
StorageWorker `saveProject` accepts a transferable ArrayBuffer, creates the
|
||||
OPFS project layout, writes and SHA-256-verifies `scene.blend.<uuid>.stage`, records a
|
||||
recovery journal, and uses same-directory move (or a complete-copy fallback) before re-verifying
|
||||
`scene.blend`. Only then does it write the manifest, clear the journal and update the IndexedDB
|
||||
`project` record with revision, byte count, digest, backend and timestamp.
|
||||
The React Save command now submits this transaction before downloading the
|
||||
`.blend` Blob, and keeps the StorageClient alive for the project session.
|
||||
When OPFS is unavailable, the record stores the buffer in IndexedDB instead.
|
||||
Playwright injects failures after staging and after scene commit, restarts the Worker, and verifies
|
||||
exact bytes/revision/digest through `readProject`. Concurrent same-project saves are serialized and
|
||||
the last submitted revision wins without journal races.
|
||||
Reference in New Issue
Block a user