# M13-03D Status status: done task: sandbox crash/timeout isolation updated: 2026-08-18 America/New_York enablingTask: false parityStateChange: false ## Scope The sandbox job termination receipt now converts crash, wall-time timeout and cancellation into stable fail-closed statuses. Every terminated receipt keeps `mainRevisionAfter` equal to `mainRevisionBefore`, publishes no result, releases temporary bytes, and remains `execution=DISABLED`; a result received after termination is rejected with `SCRIPT_SANDBOX_LATE_RESULT`. The Chromium test starts a production Worker that throws for the crash case and a production Worker that would publish a delayed result for the timeout case. The host observes the crash, terminates the timeout Worker before its delayed message, and confirms no late message arrives. ## Evidence - `node --test web/tests/unit/script-sandbox-isolation.test.mjs` passed 3/3. - `CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5532 npm --prefix web run test:script-sandbox-isolation` passed unit 3/3 and Chromium Worker E2E 1/1. - `node tools/web/check-script-sandbox-isolation.mjs` passed: `script-sandbox-isolation-ok crash=SCRIPT_SANDBOX_CRASHED timeout=SCRIPT_SANDBOX_TIMEOUT revisionUnchanged=true late=SCRIPT_SANDBOX_LATE_RESULT next=M13-03E`. - `npm --prefix web run typecheck` and `git diff --check` passed. ## Artifact Hashes - protocol: `6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2` - worker: `8c810ee7c8bd15d83ecfb4981068f947536bfe8c9e63b906861f42b8465722da` - checker: `e5c0c3c7cd500c269ae43a1a9eb05589e82aad28199ab4f11ad1167b486f6937` - unit: `47986f93638fdc18b817b03222484f4691dc294185040eaebac8e1f386bc1549` - e2e: `2c16c42f09827a0c0100ef2cc6295ca6bc96933ed7475e08b1fa195d7940c141` - report: `4af91cdb21101039b379136c7559b46df55f4f5ab5478c05c1c57cd6e1624d2a` - manifest: `8066013f3d356ba438c36d1f1ea1cf692dbb4f60b086f552072e36b783a96d42` ## Next Task `M13-03E`: cancellation after termination must not publish a late message or cache. ## Rollback Remove the isolation Worker additions, focused tests/checker, report, manifest and this status entry; restore M13-03C as the queue tail and move `nextTask` back to `M13-03D`.