Files
workinf_Blender_Wasm/docs/status/M9-14.md
mes123456 0fe8d2bb56
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 M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

2.7 KiB

M9-14 Status

status: done task: Curve、Grease Pencil、Paint 三编辑域故障恢复闭环 updated: 2026-08-16 America/New_York

Scope

web/protocol/editing-domain-recovery.ts freezes one schema-v1 evidence shape for the three domains. Each report must prove Main identity, Worker generation, OOM fault mapping/cleanup, WebGL2 resource release/reinitialization, and a visible small-scene recovery. Save/reopen may reset the logical Main revision; the content identity SHA-256 remains the authoritative recovery check.

Evidence

  • Curve fixture: tests/files/web/nonmesh_scene.blend, SHA-256 ae8ef85d606aa120ce6b7611fc03407fd80bb60311e94a6ef73f6384d0b6c8b4.
  • Grease Pencil fixture: tests/files/web/modifier_grease_pencil_scene.blend, SHA-256 3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3.
  • Paint fixture: tests/files/web/attribute_scene.blend, SHA-256 12fa75bb79f8c38e660d3d2a8fc9cc16dd3df4fc9208b0e2ad94fb1f8aa68f71.
  • WEB_TEST_PORT=5435 npm --prefix web run test:editing-domain-recovery: unit 3/3 and Chromium 1/1. All three reports returned RECOVERED for Worker restart, OOM, GPU release and small-scene stages.
  • Full unit suite: 127/127 tests passed.
  • npm --prefix web run typecheck: passed.
  • npm --prefix web run lint: passed.
  • npm --prefix web run build: passed, Vite production bundle transformed 73 modules.
  • git diff --check: passed.

Implementation hashes

  • Protocol: 42ab53dde3161ec31ca7de420046a2c06f58408b3ac4919c9904e02d875af258.
  • Browser runner: 2bb9805795fc2104e5443207a08951ac7684e67913064d6795c9d165b0c54c7e.
  • Unit test: ca565149e7769b40f59e865e42d2dfb0f4ecb2a4655371004678c14536ec9ef6.
  • Chromium test: 7ab3421d1b44eb78d13525f67a26f1f6ed20816ae9b43c010c9ed3ebdf32c09a.
  • Golden manifest: f548052f39f6259f30b0569528160512aad955e61e8e8559e0d553c30d5619f9.

Recovery boundaries

  • Worker restart uses a fresh WebEngineClient/Worker and reopens the saved bytes; stable domain identity is required, while revision reset on a newly serialized .blend is accepted and recorded.
  • OOM uses the token-isolated GPU_GEOMETRY_UPLOAD fault point. A tracked texture lease is released before close; the matching error is GPU_GEOMETRY_BUDGET_EXCEEDED, with zero live temporary resources.
  • GPU release disposes geometry, material and renderer once, then creates a fresh WebGL2 renderer and requires non-zero pixels for the same domain probe.
  • Small-scene recovery requires the reopened data IDs, identity hash, object count and visible pixels to match the committed baseline.

Rollback

Remove the M9-14 protocol/runner/tests/golden and package script together. Existing Curve, Grease Pencil and Paint writers remain unchanged; no persisted schema or release metadata migration is required.