Files
workinf_Blender_Wasm/docs/status/M10-15.md
mes123456 0fe8d2bb56
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

52 lines
2.9 KiB
Markdown

# M10-15 Status
status: done
task: Browser performance, OOM-prevention and malicious-input gates for GN, Shader, NLA and Simulation
updated: 2026-08-16 America/New_York
## Scope
GN, Shader, NLA and Simulation now run in four isolated Chromium Worker sessions.
Each session executes a representative bounded workload, rejects an over-budget input
before evaluator/payload allocation, rejects a domain-specific malicious graph or
manifest, and then proves that a small valid input still succeeds in the same Worker.
NLA gains explicit track/strip/string budgets and exact declared-field checks.
Simulation cache total/frame/range overages now return the dedicated
`SIMULATION_CACHE_BUDGET_EXCEEDED` code. This is a deterministic OOM-prevention gate;
it does not claim that arbitrary browser heap exhaustion is recoverable inside a
domain evaluator.
## Evidence
- `WEB_TEST_PORT=5536 npm --prefix web run test:m10-domain-gates`: Node 23/23 and
Chromium 1/1. Measured Worker times were GN 54 ms (10 x 512 nodes), Shader 17 ms
(100 compiles), NLA 62 ms (20 x 256 strips), and Simulation 2 ms (64 frame hashes),
all below their 5/5/5/10 second gates.
- Stable OOM/malicious codes: GN `GN_GRAPH_BUDGET_EXCEEDED`/
`GN_DEPENDENCY_CYCLE`; Shader `SHADER_NODE_UNSUPPORTED`/`SHADER_GRAPH_CYCLE`;
NLA `NLA_BUDGET_EXCEEDED`/`NLA_INVALID_STACK`; Simulation
`SIMULATION_CACHE_BUDGET_EXCEEDED`/`SIMULATION_CACHE_INVALID`.
- Existing GN field budget (unit 6/6 + Chromium 1/1), Shader compiler (7/7 + 3/3),
NLA operator (4/4 + 1/1), and Simulation lifecycle (6/6 + 1/1) all passed.
- Typecheck, lint, production build (74 modules), status consistency and
`git diff --check`: passed.
## Implementation Hashes
- `web/protocol/error.ts`: `88119782307cb9a61e131f2d5e2e25127256c1e68a333fc7fc3206158b8a1019`
- `web/protocol/nla.ts`: `96ae7cf9ca3fadbaf98ca15a38937329f203b0bc4a9c39ef685987e7f55353dd`
- `web/protocol/simulation-cache.ts`: `a1302e42129420a96416e363cbc857d082d4646655685520c9e81f877ce3d9b8`
- `web/tests/unit/nla.test.mjs`: `e11aa1f395970613cee5d37a9eb21c3fac3422f0080c75c78eb8777effb77adc`
- `web/tests/unit/simulation-cache.test.mjs`: `2be82cdda991b47fbf8955cfbf2f92cb1fdc7b7c0debb0c8102d4f35e8fce8e3`
- `web/app/src/workers/m10-domain-gate-test.worker.ts`: `bc508e1c81ca6efefd67b5c572f93c27dd71bd602319ae887c50e27f8a309a31`
- `web/tests/e2e/m10-domain-browser-gates.spec.ts`: `2973a596df8613a9cfdb0bd4d300d95b71a8e818e615278a39fb777db6c5cf03`
- `tests/golden/M10-15/domain-browser-gates.json`: `580051434ec6673251bac755cc189939de1f887aad088497e16a7657f3a83963`
- `web/package.json`: `092931cebf9cb14814951703af26e2d0e4c5e0295c1ba4cb748bfe4ee49448c2`
## Rollback
Remove the NLA stack budgets/exact-field checks, restore the former Simulation cache
budget error mapping, remove the domain Worker/E2E/golden/package command and this
status file, then restore M10 to 14/15. Keep all M10-01 through M10-14 behavior.