Files
workinf_Blender_Wasm/docs/status/M10-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

48 lines
2.6 KiB
Markdown

# M10-14 Status
status: done
task: Validate source hash, frame range, byte budget and version for every Physics cache family
updated: 2026-08-16 America/New_York
## Scope
Every Physics family cache now uses cache schema 1 and binds its family, desktop or
server bake origin, Blender 5.2 version, source blend/settings/input/cache SHA-256,
frame range, total byte length and per-frame byte offset/length/SHA-256. `COMPLETE`
caches require every frame; `PARTIAL` caches may omit frames but remain strictly
ordered and byte-contiguous. Per-frame and total cache budgets match the existing
bounded Simulation cache policy.
`verifyPhysicsCachePayload` hashes the actual current blend, full cache payload and
every frame before consumption. Family/source/version/range/budget drift fails closed.
This task validates cache identity and bytes; it does not implement a Blender family
decoder or change the existing cache playback capability block.
## Evidence
- `node --test web/tests/unit/physics-cache-family.test.mjs`: 3/3. All seven families
and both desktop/server sources pass; source/payload drift and family/schema/version/
range/budget/undeclared-field failures return stable codes.
- `WEB_TEST_PORT=5533 npm --prefix web run test:physics-cache-family`: unit 3/3 and
Chromium Worker 1/1, matching the M10-14 golden.
- M10-13 probe Chromium 1/1, Physics Main reader, M10-05 Simulation cache identity
unit 5/5 + Chromium 1/1, typecheck, lint, production build (74 modules), and
`git diff --check`: passed.
## Implementation Hashes
- `web/protocol/error.ts`: `6972a144bdc61c2a4270c88df2d86c75640bb5f24b5ac3b7f9a02d69d3c500fd`
- `web/protocol/physics-simulation.ts`: `b02b820503d79cd26b0323a4d2033e79d0eeb3032befd26fafe5eab55634584c`
- `web/app/src/workers/physics-simulation-test.worker.ts`: `453c6e9e683b9da0ef7ce4bd0e4e430b97102d80ddb9b14cc9d075319b37d818`
- `web/tests/unit/physics-cache-family.test.mjs`: `e1c6f07ec58ce4c4c987bd8a36f270497ae3a0f521d6ed27d7f199debeeaccb2`
- `web/app/src/workers/physics-cache-family-test.worker.ts`: `8af676506cc0ff1501816431d92d82ca15316b40095d617ecb664b9608e209e0`
- `web/tests/e2e/physics-cache-family.spec.ts`: `6a2788587f6692bf5bf19d76400810fa277a6985d1a6ecc1b8d1adb85c609249`
- `tests/golden/M10-14/physics-cache-family.json`: `b220d1fd73f307213078ce3cbd6212544f97ade84a45d54847f107cef69d302d`
- `web/package.json`: `9baeb319d8c740f67f3e7615942c78f920e7a56b0d654a5a8f47d68de7243eb4`
## Rollback
Restore the former Physics cache binding, remove the two new cache hash error codes,
unit/Worker/E2E/golden/package command and this status file, then restore M10 to
13/15. Keep M10-13 solver probing and the existing GN Simulation cache schema 2.