2.6 KiB
M12-07J Status
status: done
task: three-format cancellation, OOM, Worker restart, and small-file recovery
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
Scope
OBJ, STL, and PLY now share a schema-1 recovery receipt. Each bounded production Worker run
binds format, input hash, base/candidate revision, Worker generation, output hash, temporary bytes,
live requests, published result count, and commit state. Cancellation clears temporary state and
publishes no result; over-budget/OOM input returns IO_FORMAT_OOM; a generation-2 rerun and a
generation-3 small-file run reproduce the generation-1 output hash. This is recovery evidence for
the bounded format workers, not a general file-picker or full Blender IO claim.
Evidence
node --test web/tests/unit/io-format-recovery.test.mjspassed 2/2 for cancellation/OOM cleanup, commit identity, generation recovery, and stale-generation blocking.UPDATE_IO_FORMAT_RECOVERY_REPORT=1 CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5492 node_modules/.bin/playwright test --config playwright.config.ts --workers=1 tests/e2e/io-format-recovery.spec.tspassed 1/1. The report covers OBJ, STL, and PLY separately: three cancellations, three OOM budget faults, three Worker-generation restarts, and three small recovery commits; all output SHA-256 values are stable.- A second run without report update passed against the same golden, proving deterministic operation
IDs and receipt output.
node tools/web/check-io-format-recovery.mjspassed:io-format-recovery-ok formats=OBJ,STL,PLY cancelled=3 oom=3 restart=3 smallRecovery=3 deterministic=true next=M13-01A. npm --prefix web run typecheckandgit diff --checkpassed.
Artifact Hashes
- protocol:
7e352539e3300969c7409c34d6056eb6ad31055431ffce84b1b0a459c335480a - worker/testing adapter:
63b78fbf25132cad28147ef68731f2cd212a26c96b464fdec349a13ebaa1174f/cfcebb6ec38936a66983957b0dede716871cfbfbea3cb53cddc16f3e24fb19b0 - unit/e2e:
aaed1f2abe4789b084c8a6a60bcce8595d38220d7e6678a93924cd05c5716b4f/5c1750fa408e1297fc43f2e5749be3e9ac08a16b86265d22f0f06053f52b3bd7 - checker:
6ef6bc4a168f8675a4933a06c296f61076b9ea64cec25b295e961a9b610ab1a2 - report:
35d4fe10d8a4fa84d6e05a85f20ca50975d93a86df41e73c7bbc5875edc4fc70
Next Task
M13-01A: begin the next machine-queued milestone task.
Rollback
Remove the IO recovery protocol, worker, adapter, tests, checker, report, manifest, and this status entry. Restore M12-07I as the queue tail and move the machine queue back to M12-07J. No parity ledger rollback is required.