Advance M8-M11 parity workflows
This commit is contained in:
75
docs/status/M10-04.md
Normal file
75
docs/status/M10-04.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# M10-04 Status
|
||||
|
||||
status: done
|
||||
task: Geometry Nodes field/domain materialization budgets
|
||||
updated: 2026-08-16 America/New_York
|
||||
|
||||
## Scope
|
||||
|
||||
Field materialization schema 1 binds every request to a graph ID/hash, Main revision,
|
||||
source and target domain, data type, transport, and an exact seven-domain cardinality
|
||||
snapshot. The parser derives element, scalar, and byte counts rather than accepting
|
||||
caller-provided counts. JSON never carries field values in this contract; the current
|
||||
native Depsgraph path only publishes a small verified point-Float payload.
|
||||
|
||||
This task establishes budgets and transport boundaries. It does not claim actual
|
||||
evaluation for arbitrary POINT/EDGE/FACE/CORNER/CURVE/INSTANCE/LAYER conversions,
|
||||
complete Blender lazy-function semantics, graph writing, or Simulation Zones.
|
||||
|
||||
## Budgets
|
||||
|
||||
- Domain maxima: POINT 1,000,000; EDGE/FACE 2,000,000 each; CORNER 4,000,000;
|
||||
CURVE/INSTANCE 100,000 each; LAYER 4,096.
|
||||
- Batch maxima: 64 fields, 32 real domain conversions, 4,000,000 target elements,
|
||||
and 64 MiB of materialized data.
|
||||
- Per-field JSON maximum: 65,536 scalar values. Larger fields must stay binary or
|
||||
return `GN_FIELD_JSON_BUDGET_EXCEEDED`.
|
||||
- Supported bounded layouts are Boolean, Int, Float, Vector, and Color. Element,
|
||||
component, and byte multiplication is checked before a receipt is returned.
|
||||
|
||||
## Native Contract
|
||||
|
||||
The full-Main Depsgraph reports exact POINT/EDGE/FACE/CORNER cardinality from the
|
||||
evaluated Blender Mesh and zeroes the non-Mesh domains for the current fixture. The
|
||||
observable `m10_value` point-Float attribute carries schema version, element/scalar
|
||||
counts, materialized byte length, and transport. The TypeScript parser cross-checks
|
||||
the receipt against mesh vertex count, domain cardinality, the Float32 byte layout,
|
||||
and the actual attribute payload. Unknown receipt fields and hidden JSON arrays are
|
||||
rejected.
|
||||
|
||||
## Evidence
|
||||
|
||||
- `WEB_TEST_PORT=5448 npm --prefix web run test:geometry-node-field-budget`:
|
||||
unit 6/6 and real Chromium Worker 1/1 passed.
|
||||
- The real `M10GN_StoreAttribute` evaluated mesh reported cardinality
|
||||
POINT/EDGE/FACE/CORNER `8/12/6/24`, schema 1, eight Float scalars, 32 bytes, and
|
||||
eight values equal to `0.375`.
|
||||
- Chromium negative checks rejected POINT cardinality drift, byte-length drift, and
|
||||
a hidden `values` array in the receipt.
|
||||
- M10-01/02/03 regressions passed on ports 5449/5450/5451. M10-03 still covers all
|
||||
16 allowlisted nodes across 11 desktop/full-Main WASM/Chromium cases with zero
|
||||
maximum and RMS position error.
|
||||
- Full unit suite 133/133, typecheck, lint, production build (73 modules), local
|
||||
dependency checks, `git diff --check`, and the three-fixture 100-iteration
|
||||
Depsgraph regression passed.
|
||||
|
||||
The first Chromium rerun on port 5447 was not accepted as evidence: the negative
|
||||
check used a browser-relative dynamic import that resolved to a nonexistent
|
||||
`/protocol/depsgraph.ts`. The check was moved to Playwright's Node-side static import,
|
||||
then the complete task command was rerun on port 5448.
|
||||
|
||||
## Implementation Hashes
|
||||
|
||||
- Geometry Nodes protocol: `8d04291c29e9ce30e3f2f6d4141bc4101d49529bf7f7edf109d67d059efa58b1`.
|
||||
- Depsgraph protocol: `df7e0e29422f5b605f20fd5ab939d170d35048020968d2f6aea86603d0633cd6`.
|
||||
- Native Depsgraph: `5bcc17416fd4d45985bc1529288127b9eeed4a30b47836e687dc5321182c0b11`.
|
||||
- Unit test: `1aa4df021731d7ba4c4191d56f88c663b223443f78c9fdc1b88c2a43423239c7`.
|
||||
- Chromium spec: `95d8380d6a17a5b85df695a3cb850dffa8705f574ae0b9c97422bb802899eb8e`.
|
||||
- Full-Main WASM: `1bb4a947da4332471f3d7bab8f3f628c83d1703244093a554a188668ddafafd7`.
|
||||
|
||||
## Rollback
|
||||
|
||||
Remove the field materialization schema/parser, native Depsgraph cardinality and
|
||||
receipt fields, M10-04 unit/Chromium checks, package script, and this status file
|
||||
together. Revert the M10 count to 3/15; do not leave the native attribute JSON path
|
||||
without its receipt and cardinality validation.
|
||||
Reference in New Issue
Block a user