Files
workinf_Blender_Wasm/docs/status/M11-10.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

58 lines
3.2 KiB
Markdown

# M11-10 Status
status: done
task: bind long-media proxy/cache entries to source hash and runtime decode capability
updated: 2026-08-17 America/New_York
## Scope
Schema 1 proxy-cache manifests bind the complete movie source identity, the source-bound
M11-09 READY decode receipt, an explicit SRGB8/STRAIGHT RGBA8 profile, and the source
frame into one deterministic SHA-256 cache identity. The proxy payload has an independent
byte length and SHA-256. Source drift, decode-capability drift, identity tampering, and
payload tampering therefore fail with separate stable codes.
The production browser adapter verifies the movie bytes before decode, captures only the
initial decoded HTMLMedia frame, and stores verified copies in a 64 MiB-bounded LRU. The
Chromium gate persists the RGBA8 payload and its manifest through the content-addressed
Storage Worker path, creates a new Storage Worker, and verifies the reopened bytes against
the current runtime receipt. This task does not claim frame-accurate proxy generation,
seek/scrub publication, waveform generation, A/V synchronization, or final encoding.
## Evidence
- `WEB_TEST_PORT=5573 npm --prefix web run test:sequencer-media-cache`: unit 3/3 and
Chromium 1/1 passed. The real 16x16 H.264 fixture produced one 8x8/256-byte RGBA8
proxy; its cache identity is
`68a3af14865841e81f69bd75f2605461de4819fe025d158ac3723fa0cdf31525`.
- A one-frame cache budget admitted frame 0, returned a copied hit, then evicted it when
frame 1 was inserted. `clear()` released exactly 256 bytes and left zero entries.
- Source hash drift, READY receipt metadata drift, payload mutation, and bad source bytes
returned `SEQUENCER_CACHE_SOURCE_MISMATCH`,
`SEQUENCER_CACHE_CAPABILITY_MISMATCH`, or `SEQUENCER_CACHE_HASH_MISMATCH` as
appropriate. Blocked receipts, undeclared profile fields, oversized RGBA8 profiles, and
upscaled profiles were rejected before cache insertion.
- The first unit run was 2/3 because the test incorrectly treated exactly 64 MiB as over
budget; the corrected 64 MiB plus one-row case passed. The first Chromium run completed
all business operations but sampled `statsBeforeClear` after `clear()`; the sampling
order was fixed and the full command rerun on ports 5572 and 5573.
- Regression passed: M11-09 unit 3/3 plus Chromium 1/1, one-million-frame long-media 1/1,
Sequencer Main reader, full Node 179/179, typecheck, lint, and production build (75
modules).
## Artifact Hashes
- protocol: `1dd5ee8cade2642723bac6f0c8e34d09cf178d000beba6eb63626284ee35fd5e`
- browser adapter: `57070b1a42129afdfb8121ec11a48b0792b3de9d84f7e8a78017c7d6e12343aa`
- app protocol exports: `8ca82257c758580f5fe91a3a5cd21f8ae9e9ce10f9fa71fcd7cf1f30e0b6367b`
- unit: `f4cc1171dd6875bf079e242beed846409a1d1f53b9497882aa475bd2773b43c7`
- Chromium spec: `6d9d26e3639a74b173f77ec5d67e53e5ec42b88dd6e34bda54c8168b8251423e`
- golden: `39a71f8d97f0045da6ec913b6a0231ac3363f67a420eea5ab3fabaa8f1d47c33`
- package: `2c7fb9f8657155088e4a080443b8a0ba9c13aae9f46f1807ff3b8820640c44c4`
## Rollback
Remove the proxy-cache protocol/runtime/tests/golden and package command, restore M11 to
9/14, and remove the new N-021 completed slice. Keep M11-09 runtime codec probes and the
V1 long-media index/cache evidence unchanged.