Files
workinf_Blender_Wasm/docs/status/M9-14.md
mes123456 0fe8d2bb56
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

58 lines
2.7 KiB
Markdown

# 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.