3.2 KiB
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 is68a3af14865841e81f69bd75f2605461de4819fe025d158ac3723fa0cdf31525.- 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, orSEQUENCER_CACHE_HASH_MISMATCHas 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
statsBeforeClearafterclear(); 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.