# M13-03B Status status: done task: sandbox CPU, wall, memory, message and output budgets updated: 2026-08-18 America/New_York enablingTask: false parityStateChange: false ## Scope The scripting protocol now parses bounded CPU, wall-time, memory, message and output-byte budgets. Each field has a fixed maximum and all overflow or schema drift returns `SCRIPT_BUDGET_EXCEEDED` or `PROTOCOL_MISMATCH`. The budget is a contract only; execution remains disabled. ## Evidence - `node --test web/tests/unit/script-sandbox-budget.test.mjs` passed 2/2. - `WEB_TEST_PORT=5524 npm --prefix web run test:script-sandbox-budget` passed unit 2/2 and production Chromium Worker E2E 1/1. - `node tools/web/check-script-sandbox-budget.mjs` passed: `script-sandbox-budget-ok cpu=SCRIPT_BUDGET_EXCEEDED wall=SCRIPT_BUDGET_EXCEEDED memory=SCRIPT_BUDGET_EXCEEDED message=SCRIPT_BUDGET_EXCEEDED output=SCRIPT_BUDGET_EXCEEDED execution=DISABLED next=M13-03C`. - `npm --prefix web run typecheck`, `npm --prefix web run lint` and `git diff --check` passed. ## Artifact Hashes - protocol: `6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2` - worker: `ed836a032b33f54154fdd36f9f6e99ee43ca1755ea0dd8326474a13300ec965e` - checker: `ab10d1d32c20022c848be4b33e1be846168a9ca4cf22ac932ea000001e9e2391` - unit: `caa40fc58a73aa4d433285c94009e5436a29fbcb6b4e18b74b27c49fd0b07490` - e2e: `8be77fd55e76149bfe2e0e449d81a62707ebfa430514936808ec4805fc96e07c` - report: `4355710e07e95cbb0f96a82fdefca3607f363d3aea9ba89c332e8a4708b7bed2` - manifest: `b61978c22cdfffe81b812e2eea788d52326f9f0ebb4540e77f86dc9e19ff21dd` ## Next Task `M13-03C`: host calls use explicit allowlist and structured parameters. ## Rollback Remove the sandbox budget parser, focused worker/tests/checker, report, manifest, status entry and package command; restore M13-03A as the queue tail and move `nextTask` back to `M13-03B`.