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

53 lines
2.8 KiB
Markdown

# M11-11 Status
status: done
task: revision-gate late seek, scrub, and decode results before publication
updated: 2026-08-17 America/New_York
## Scope
Schema 1 uses one request identity for SEEK, SCRUB, and DECODE. Every request binds a
timeline ID, timeline revision, monotonically increasing request revision, operation,
and frame. A completed result must echo that identity and add a bounded source frame and
payload SHA-256. Publication is allowed only when both the timeline revision and latest
request revision still match the controller state.
The production controller advances one shared request revision across all three operation
types. Replacing a timeline invalidates every pending request before a new request begins,
and same-timeline revisions must advance monotonically. The publish callback is invoked
only after the pure gate returns PUBLISH, so stale results cannot update the visible frame
or write a decoded payload into cache. This task does not claim frame-accurate WebCodecs
seeking or the M11-14 cancellation/restart resource lifecycle.
## Evidence
- `WEB_TEST_PORT=5576 npm --prefix web run test:sequencer-media-revision`: unit 4/4
and Chromium 1/1 passed on the first complete run.
- Chromium scheduled SEEK revision 1 behind SCRUB revision 2. SCRUB published first and
the late SEEK returned `STALE/REVISION_CONFLICT`. A real H.264 runtime decode started at
timeline revision 7, completed after replacement with revision 8, and was rejected
before publish/cache. The revision-8 DECODE published; a forged result identity stayed
stale.
- The machine sequence is frozen in
`tests/golden/M11-11/sequencer-media-revision.json`: only `SCRUB@2` and `DECODE@5`
publish, and only `DECODE@5` reaches the cache-write callback.
- Regression passed: M11-10 unit 3/3 plus Chromium 1/1, M11-09 unit 3/3 plus Chromium
1/1, one-million-frame long-media 1/1, full Node 183/183, typecheck, lint, and production
build (75 modules).
## Artifact Hashes
- protocol: `326f1525f50af3b2c4132ff58508ed6174ba3aa4a5075b2a6660e549c280826a`
- production controller: `29a44404bb28e46d67439eec0622a69ce4cd7264ce45da77a3f320c8687b7006`
- app protocol exports: `be2eca8482a60e437878b99f69d3178f47fee61618886d141760320e3a3ed1e1`
- unit: `2099f738120897dfbb8662741831774b5f9150d51924dfa7832907177de5e7`
- Chromium spec: `e47f105360ce0e2d4d561d3cf790ceec9f41dd6bac7361965914ada307db843c`
- golden: `672b4fde6e27f8b15cd51d839cacb5efb128c0d0f4c7f6aa4e184c713f9b45e5`
- package: `5d17b17d67ee587191552c3dfe226cd8f2e5a872791224d8e6c22aafa1177ebe`
## Rollback
Remove the media revision protocol/controller/tests/golden and package command, restore
M11 to 10/14, and remove the N-021 revision-gate slice. Keep M11-09 runtime probes,
M11-10 proxy-cache identity, and the V1 long-media generation behavior unchanged.