Advance M8-M11 parity workflows
This commit is contained in:
58
docs/status/M11-12.md
Normal file
58
docs/status/M11-12.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# M11-12 Status
|
||||
|
||||
status: done
|
||||
task: keep final video encoding on an explicit server-export capability route
|
||||
updated: 2026-08-17 America/New_York
|
||||
|
||||
## Scope
|
||||
|
||||
Schema 1 final-export requests bind the Main timeline ID/revision, source `.blend`
|
||||
SHA-256, bounded frame range and rational frame rate, output dimensions, and one declared
|
||||
container/video/audio codec combination. The canonical encoding settings and the complete
|
||||
source identity receive separate SHA-256 hashes, so source revision drift and settings
|
||||
drift produce different request identities.
|
||||
|
||||
The only route is `SERVER_EXPORT`. A missing endpoint fails closed with
|
||||
`SEQUENCER_EXPORT_SERVER_UNAVAILABLE`; a configured endpoint returns
|
||||
`SERVER_EXPORT_REQUIRED`, not local success. Browser `VideoEncoder` availability is
|
||||
recorded for diagnostics only and cannot change the route or the invariant
|
||||
`localEncoding=BLOCKED`. This task does not claim a server encoder implementation,
|
||||
upload/progress/cancellation, audio mixing, or encoded-output verification.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `WEB_TEST_PORT=5579 npm --prefix web run test:sequencer-final-export`: unit 4/4 and
|
||||
Chromium 1/1 passed on the first complete run.
|
||||
- Chromium opened the real Blender 5.2 `sequencer_scene.blend` through WebEngine Main and
|
||||
bound timeline `sequencer:scene:SequencerScene`, revision 1, frames 1..250, 24000/1001
|
||||
FPS, and source SHA-256
|
||||
`5f5212487bb6b5df62b5ca915c75133f1ca45678614712ea4c7d902d823cd90c`.
|
||||
- The fixed settings hash is
|
||||
`01e39d1fdd88c75aecad7bc48a2b756bbcd645929963528b42ceb180b51e5566`;
|
||||
the source/timeline/settings request hash is
|
||||
`20d3a9e333804e014a993a9892a557842293fc44902229dd6eb65661f0691cfc`.
|
||||
- No-server, server-without-encoder, server-with-injected-encoder, and actual Chromium
|
||||
runtime cases all retained the server route and blocked local encoding. Undeclared
|
||||
fields, invalid codec combinations, over-budget ranges, and environment drift returned
|
||||
`SEQUENCER_EXPORT_REQUEST_INVALID`.
|
||||
- Regression passed: M11-09 unit 3/3 plus Chromium 1/1, M11-10 unit 3/3 plus Chromium
|
||||
1/1, M11-11 unit 4/4 plus Chromium 1/1, one-million-frame long-media 1/1, Sequencer Main
|
||||
reader, full Node 187/187, typecheck, lint, and production build (75 modules).
|
||||
|
||||
## Artifact Hashes
|
||||
|
||||
- protocol: `559516163ce9a9c60917033455c71a1ae6be2f34666371f12723a056ddfdb3dd`
|
||||
- browser adapter: `f9f193eb71afa48a23b4eb618cd98b5c0064c59943b3652fb6a601b545ac175c`
|
||||
- app protocol exports: `d30783528fabaaefe8835998e11d75da357d265ee06db67713e57e4b85b58d7d`
|
||||
- error contract: `747894b216db59c753b24ce85eb946925e64340f63684311e5d9628c9a6a9c8e`
|
||||
- unit: `6f5030852e89160fd898b2aff4dc9911963342bd6c2301a2c0e8a3d518ddbcbd`
|
||||
- Chromium spec: `d8cba79c9a330c1e5c777c8f0ed08362b29f50702c31d8229fd65f4304bce363`
|
||||
- golden: `c0061f82ef156e53ad4dfc6aedf7c6a8f53e616d8d9fa1435fd9491ba3d07e01`
|
||||
- package: `83ee5bfa50a0e5b742048d4563ae815171232a121cf3df4a1e813f21313a6509`
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the final-export protocol/browser adapter/tests/golden and package command, remove
|
||||
the two export error codes and SequencerTimeline exports, restore M11 to 11/14, and remove
|
||||
the N-021 final-export completed slice. Keep M11-09/10/11 decode, proxy, and revision
|
||||
gates and the existing `sequencerRuntimeCapabilities().localEncoding=BLOCKED` contract.
|
||||
Reference in New Issue
Block a user