50 lines
2.3 KiB
Markdown
50 lines
2.3 KiB
Markdown
# M13-02A Status
|
|
|
|
status: done
|
|
task: bounded script manifest limits
|
|
updated: 2026-08-18 America/New_York
|
|
enablingTask: false
|
|
parityStateChange: false
|
|
|
|
## Scope
|
|
|
|
The production scripting manifest parser now requires an explicit `sourceByteLength` and
|
|
`module=false` for every script. It limits script count, aggregate source bytes, dependency count,
|
|
permission count and per-field execution budgets; canonicalizes entry/dependency paths within the
|
|
project; and rejects duplicate dependencies, unsafe paths, module execution, unknown permissions
|
|
and all budget overflow. The parser remains fail-closed and does not execute script content.
|
|
|
|
## Evidence
|
|
|
|
- `node --test web/tests/unit/script-manifest-budgets.test.mjs` passed 4/4 bounded positive and
|
|
negative cases.
|
|
- `WEB_TEST_PORT=5513 npm --prefix web run test:script-manifest-budgets` passed unit 4/4 and the
|
|
production Chromium Worker test 1/1. The browser Worker returned the same canonical paths,
|
|
aggregate byte count and stable policy/budget errors as the Node protocol test.
|
|
- `node tools/web/check-script-manifest-budgets.mjs` passed:
|
|
`script-manifest-budgets-ok accepted=2 totalSourceBytes=256 blocked=6 deterministic=true next=M13-02B`.
|
|
- `npm --prefix web run typecheck`, `npm --prefix web run lint`,
|
|
`npm --prefix web run build`, `npm --prefix web run test:scripting-isolation`, and
|
|
`git diff --check` passed. The existing isolation gate still reports approved-key
|
|
`SCRIPT_SANDBOX_UNAVAILABLE` and does not enable execution.
|
|
|
|
## Artifact Hashes
|
|
|
|
- protocol: `6699fc0a19e0736823f164e707a420655803e36019cf0071f7ff9c760d25e9f2`
|
|
- worker: `8d8eae67fa6915f0337850e15247baf01f0abde0b3362fbb120f0b448f1a4cf5`
|
|
- checker: `b3457324d72ab233cd17a142ea19fac6a0d024dd95de7b8fb5d26810437fb0d2`
|
|
- unit: `6ce7847a0b745ba4081e4332d012e0b7f86e4906c71c95bdeda8c39977a630ee`
|
|
- e2e: `1ef4fd4caaeb1fa3d832fc8881823d5284755372575eab186c751f408dc9314c`
|
|
- report: `860672fe844b7969ca376d4b2708771189d1767efa819f7b97667d8a26438d3a`
|
|
- manifest: `7148e0387dadffdb55e94e80dc30cfd5cdd40ebe990d06378e90c376d36ebd51`
|
|
|
|
## Next Task
|
|
|
|
`M13-02B`: canonical serialization fixes the signature input.
|
|
|
|
## Rollback
|
|
|
|
Remove the M13-02A protocol fields, checker, unit/Chromium tests, worker, report, manifest and this
|
|
status entry. Restore M13-01F as the queue tail and move the machine queue back to M13-02A. No parity
|
|
ledger rollback is required.
|