Files
mes123456 380cbed4ff
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
Checkpoint web parity through Chromium input tasks
2026-08-19 10:39:03 -04:00

61 lines
3.3 KiB
Markdown

# M12-07E Status
status: done
task: STL normal, unit, degenerate-triangle, and trailing-byte parity
updated: 2026-08-18 America/New_York
enablingTask: false
parityStateChange: false
## Scope
The bounded STL protocol requires an explicit binary/ASCII variant and positive unit scale. It parses
facet normals and vertices, applies the scale, removes zero-area triangles the same way as Blender's
validated import, and rejects binary payload after the declared triangle table with
`STL_TRAILING_BYTES`. Desktop Blender accepts that trailing fixture as an empty mesh, so the report
records `STRICTER_WEB_BLOCK` rather than claiming exact parity for that edge case.
## Evidence
- The deterministic edge generator derived a one-degenerate-triangle binary and a four-trailing-byte
binary from M12-07D. Pinned Blender 5.2 was probed at unit scales 1 and 0.001 and against both edge
files; it preserves normals, scales world bounds by 1000, removes one degenerate triangle, and
accepts the trailing fixture as an empty mesh.
- `node --test web/tests/unit/stl-import.test.mjs` passed 2/2 for binary/ASCII normals, explicit unit
scaling, degenerate removal, trailing-byte rejection, and invalid scale.
- `CHROME_PATH=/usr/bin/google-chrome-stable WEB_TEST_PORT=5463 node_modules/.bin/playwright test
--config playwright.config.ts --workers=1 tests/e2e/stl-edge-parity.spec.ts` passed 1/1 in Chrome
150. Normal comparison is exact, Web/Desktop unit ratio matches within Float32 tolerance, and both
retain one triangle after degenerate removal.
- `node tools/web/check-stl-edge-parity.mjs` passed:
`stl-edge-parity-ok normals=exact unitRatio=1000 degenerate=removed trailing=STRICTER_WEB_BLOCK next=M12-07F`.
- Typecheck and `git diff --check` passed. The stricter trailing-byte policy leaves N-023 full parity
blocked and does not expose an STL UI route.
## Artifact Hashes
- parent manifest: `bbc78e47f389562e7d648bf49c9b3bf8a08aaa36e914589a6eab0a1f6e72748d`
- fixture generator/desktop probe: `018013347642603c21237ebb023bdc7a4e338f5a3f875fea536a996eb121e716` /
`b3d6ea197ef77b5a14f60f5e6b43d4392e943ff5d56acf73915507fc9a4161b7`
- protocol/Worker: `87eec72e2b8aa7ad0b168ca0ee8c4016c941f56f5f1ac53aa5fe71d0832f1dd8` /
`d714f1f3a218a2226dd349aea81c6c54efa6246de1c4fe51aaa9f5c352ef44fc`
- unit/Chromium/checker: `4af52833486421c017f3af2b833b0776e60a6ab57ed66fea2161cf9674f4b243` /
`121d348250e26d29ad966f7427bbef9da77de2098e2e305827b11aae52002c5c` /
`b5ed7fbb41bb46fba982d5726cb8c3eaecf360b772a01d6337c309b1c4a4f535`
- fixture/desktop/Web reports: `545463a984356d6635cbaae3865d13fe95bd2d841c394ac9ddff496c95d46f18` /
`2d3028a3b7d97f39654cff5fcef1d0c1c71e9f2d08e3e29c2e926651ed3860f1` /
`e0686cc9be3b68e564651207443e0ebf3e3b0eb3d07a32915b03f44b1908357b`
- degenerate/trailing fixtures: `c120bb0f218819eb89a3607c0b4f8fafd9afb599402e3b21deaa3b2be143e7d0` /
`0a30aab6db1588722067000e2a08c3c6206a8ed5b7531caa0b082723700a3681`
- package: `cfb232baa494ff59f6c8d65514a08c86332ee9354350b2a0392b6f932a7ee42c`
- manifest: `19a9f460d1b939c9504dadd364cb87dab3b1769b0599035e2d2b51b47091e034`
## Next Task
`M12-07F`: STL Web-to-desktop round-trip and material-loss report.
## Rollback
Remove the STL edge fixtures, probes, parser, Worker, tests, reports, checker, manifest, and this status
entry. Restore M12-07D as the queue tail and move the machine queue back to M12-07E. No parity ledger
rollback is required.