Files
workinf_Blender_Wasm/docs/status/M12-01G.md
mes123456 5a11045ca5
Some checks are pending
M6 deployable RC / quick (push) Waiting to run
M6 deployable RC / chromium (push) Blocked by required conditions
M6 deployable RC / release (push) Blocked by required conditions
Advance Blender 5.2 web parity through M12-03D
2026-08-17 17:30:27 -04:00

2.1 KiB

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.