Advance M8-M11 parity workflows
This commit is contained in:
48
docs/status/M11-06.md
Normal file
48
docs/status/M11-06.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# M11-06 Status
|
||||
|
||||
status: done
|
||||
task: server render job provenance binding
|
||||
updated: 2026-08-17 America/New_York
|
||||
|
||||
## Scope
|
||||
|
||||
`web/protocol/server-render-job.ts` defines schema 1 for a server render request and
|
||||
result. A request is accepted only when the uploaded `.blend` bytes match its declared
|
||||
source SHA-256 and byte length, the Blender build is a declared 5.2 build with a
|
||||
content hash, and canonical bounded render settings match `settingsSha256`. The
|
||||
request itself is bound by `requestSha256`.
|
||||
|
||||
A successful result carries the same source/revision/build/settings identity and adds
|
||||
output MIME, byte length, and output SHA-256, plus `resultSha256`. Consumers recalculate
|
||||
the output hash before accepting pixels. The contract does not claim a remote queue,
|
||||
progress, cancellation, denoise, or Freestyle implementation; those remain later
|
||||
M11 tasks.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `npm --prefix web run test:server-render-job`: unit 3/3 and a real loopback server
|
||||
check passed.
|
||||
- The check used Blender 5.2.0 headless to open
|
||||
`tests/files/web/m11_render_reference.blend` and render a PNG from the submitted
|
||||
source bytes. It verified source/build/settings/output hashes and rejected source,
|
||||
build, settings, and output tampering.
|
||||
- Result: `server-render-job-ok blender=5.2.0 source=d2bea55fe4de0b00e73a9241b4d1b0c802c2eb0e6159c0cd48e007b97b9d3963 settings=97bb832618bd27e8763722afa0d250ef74383fb355f0ff38763930f57ba1590b output=564b95cd501da2636085aeada88814c4a3b7af7b1f0188543a1863fe34dd091e bytes=3915 source-hash=1 build-hash=1 settings-hash=1 output-hash=1 tamper=4`.
|
||||
- Full regression passed: typecheck, lint, Node `168/168`, status consistency
|
||||
(`12` parity blocked, `0` release blocked), release evidence (`17` records,
|
||||
`0` missing), production build (`75` modules), and `git diff --check`.
|
||||
|
||||
## Implementation Hashes
|
||||
|
||||
- `web/protocol/server-render-job.ts`: `e2b5b95032b0dbcb346aa35d1a10a3b55d6c006603f16b9e72c3de45763906c5`
|
||||
- `web/protocol/error.ts`: `747ea52fd96b3ec7ede9ce72c15f56fdc454836ba5bf924cc60198096d4986de`
|
||||
- `web/tests/unit/server-render-job.test.mjs`: `c84f86365006360f146601839d7e1394f3f7bc7fa71dcbf62d8d4e4321cdd16d`
|
||||
- `tools/web/check-server-render-job.mjs`: `6dd49fbd1be202a88fa714b2fb81305018da6df5f9d73c95e048e3697742764e`
|
||||
- `tools/web/render-server-job.py`: `48950b0884a52a40ae234f8bbe590a0cb89e58c4d2a2de40ea638f491d111aff`
|
||||
- `tests/golden/M11-06/server-render-job.json`: `36f083f8da7585f850e748e6ac78fc57cd6e8d59bce03d77eee3acd2fa042ae7`
|
||||
- `web/package.json`: `628191a76c7614393a74969bd000faa8a6302d887265d13a1ad49dcfc401c2fc`
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the server-render-job protocol, error codes, unit/check commands, and this status
|
||||
record; restore M11 to 5/14 and remove the M11-06 completed slice. Keep M11-05 routing,
|
||||
M11-04 reference metrics, and all earlier lighting/resource behavior unchanged.
|
||||
Reference in New Issue
Block a user