Advance Blender 5.2 web parity through M12-03D
This commit is contained in:
47
docs/status/M12-01G.md
Normal file
47
docs/status/M12-01G.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# M12-01G Status
|
||||
|
||||
status: done
|
||||
task: preserve the old catalog index when an IndexedDB migration fails
|
||||
updated: 2026-08-17 America/New_York
|
||||
enablingTask: true
|
||||
parityStateChange: false
|
||||
|
||||
## Scope
|
||||
|
||||
The production IndexedDB migration prepares schema v2 with the existing schema v1 parser and
|
||||
migrator before opening a write transaction. It then rechecks the source row and atomically
|
||||
writes the v2 index and migration receipt while deleting the v1 row. A concurrent source change
|
||||
returns `REVISION_CONFLICT`; a transaction failure returns `STORAGE_TRANSACTION`.
|
||||
|
||||
The browser suite injects failures after the v2 target write and after the v1 source delete.
|
||||
After each abort it closes and reopens the database, proving the database version, complete v1
|
||||
index, unrelated legacy migration row, absent v2 row, and absent receipt are byte-for-byte
|
||||
equivalent to the baseline. A subsequent retry commits the v2 index and receipt together.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `WEB_TEST_PORT=5593 npm --prefix web run test:asset-catalog-indexeddb-migration` passed the
|
||||
M12-01D production migration unit suite 3/3, the M12-01G artifact binding unit 1/1, and
|
||||
Chromium 1/1.
|
||||
- Both `AFTER_TARGET_PUT` and `AFTER_SOURCE_DELETE` returned `STORAGE_TRANSACTION`; reopening
|
||||
IndexedDB after either fault produced the exact pre-migration snapshot.
|
||||
- The successful retry preserved revision 7 and the M12-01D source/target hashes, removed only
|
||||
the v1 row, and retained the unrelated migration row.
|
||||
- Typecheck and `git diff --check` passed.
|
||||
|
||||
## Artifact Hashes
|
||||
|
||||
- production IndexedDB migration: `283a08bccb5ea301bd2aef8f01d4496972e3962f75e340479336c50e3539ba57`
|
||||
- browser suite: `82c40f38898277b4053a9654537ec9c21bc01a784d1091831e139361575a81e9`
|
||||
- artifact unit: `a4366a16f28b91b3ff213e0232308eaecd392731f27972cfa49a11568eb0feca`
|
||||
- manifest: `2596067956211698f1b7a07d9423411e2db830b72e6b78593354953a568738e7`
|
||||
|
||||
## Next Task
|
||||
|
||||
`M12-01H`: prove catalog ordering and asset identity survive page and Worker restarts.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the IndexedDB migration module, M12-01G unit/browser suites, manifest, package command,
|
||||
and this status entry. Restore M12-01G to pending and `nextTask` to M12-01G. No parity ledger
|
||||
rollback is required.
|
||||
Reference in New Issue
Block a user