{ "schema": "freecad-web-p6-quality-gate/v1", "taskId": "FW-P6-FPA-I", "result": "pass", "budgets": { "javascriptBytes": 11771855, "javascriptLimitBytes": 16777216, "wasmCount": 41, "wasmLimitBytes": 201326592, "cspHtmlCount": 77, "cspRequired": 77, "workerRoundTripMs": { "target": 5000, "observed": null }, "memory": { "target": "no unreleased native resources", "observed": "delegated to native resourcesReleased evidence" } }, "csp": { "policy": "default-src 'self'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' blob:; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; connect-src 'self'; object-src 'none'; base-uri 'self'", "pages": [ { "path": "web/dist/assembly.html", "present": true }, { "path": "web/dist/bim.html", "present": true }, { "path": "web/dist/cam.html", "present": true }, { "path": "web/dist/cloud.html", "present": true }, { "path": "web/dist/core.html", "present": true }, { "path": "web/dist/document.html", "present": true }, { "path": "web/dist/draft.html", "present": true }, { "path": "web/dist/fem.html", "present": true }, { "path": "web/dist/full.html", "present": true }, { "path": "web/dist/help.html", "present": true }, { "path": "web/dist/import.html", "present": true }, { "path": "web/dist/index.html", "present": true }, { "path": "web/dist/inspection.html", "present": true }, { "path": "web/dist/jtreader.html", "present": true }, { "path": "web/dist/main-chain.html", "present": true }, { "path": "web/dist/material.html", "present": true }, { "path": "web/dist/measure.html", "present": true }, { "path": "web/dist/mesh.html", "present": true }, { "path": "web/dist/meshpart.html", "present": true }, { "path": "web/dist/openscad.html", "present": true }, { "path": "web/dist/part-inspect.html", "present": true }, { "path": "web/dist/part-io.html", "present": true }, { "path": "web/dist/part-python.html", "present": true }, { "path": "web/dist/part-save.html", "present": true }, { "path": "web/dist/part.html", "present": true }, { "path": "web/dist/partdesign-inspect.html", "present": true }, { "path": "web/dist/partdesign-python.html", "present": true }, { "path": "web/dist/partdesign-save.html", "present": true }, { "path": "web/dist/partdesign.html", "present": true }, { "path": "web/dist/plot-python.html", "present": true }, { "path": "web/dist/points-inspect.html", "present": true }, { "path": "web/dist/points-python.html", "present": true }, { "path": "web/dist/points-save.html", "present": true }, { "path": "web/dist/points.html", "present": true }, { "path": "web/dist/project.html", "present": true }, { "path": "web/dist/python.html", "present": true }, { "path": "web/dist/reverseengineering-create.html", "present": true }, { "path": "web/dist/reverseengineering-inspect.html", "present": true }, { "path": "web/dist/reverseengineering-python.html", "present": true }, { "path": "web/dist/reverseengineering-save.html", "present": true }, { "path": "web/dist/robot-create.html", "present": true }, { "path": "web/dist/robot-inspect.html", "present": true }, { "path": "web/dist/robot-python.html", "present": true }, { "path": "web/dist/robot-save.html", "present": true }, { "path": "web/dist/sandbox-inspect.html", "present": true }, { "path": "web/dist/sandbox-python.html", "present": true }, { "path": "web/dist/sandbox-save.html", "present": true }, { "path": "web/dist/sandbox.html", "present": true }, { "path": "web/dist/show-inspect.html", "present": true }, { "path": "web/dist/show-python.html", "present": true }, { "path": "web/dist/sketcher-inspect.html", "present": true }, { "path": "web/dist/sketcher-persistence.html", "present": true }, { "path": "web/dist/sketcher-python.html", "present": true }, { "path": "web/dist/sketcher.html", "present": true }, { "path": "web/dist/spreadsheet-inspect.html", "present": true }, { "path": "web/dist/spreadsheet-python.html", "present": true }, { "path": "web/dist/spreadsheet-save.html", "present": true }, { "path": "web/dist/spreadsheet.html", "present": true }, { "path": "web/dist/start-inspect.html", "present": true }, { "path": "web/dist/start-python.html", "present": true }, { "path": "web/dist/start.html", "present": true }, { "path": "web/dist/surface-inspect.html", "present": true }, { "path": "web/dist/surface-python.html", "present": true }, { "path": "web/dist/surface-save.html", "present": true }, { "path": "web/dist/surface.html", "present": true }, { "path": "web/dist/techdraw-inspect.html", "present": true }, { "path": "web/dist/techdraw-native.html", "present": true }, { "path": "web/dist/techdraw-python.html", "present": true }, { "path": "web/dist/techdraw-save.html", "present": true }, { "path": "web/dist/techdraw.html", "present": true }, { "path": "web/dist/templatepymod-python.html", "present": true }, { "path": "web/dist/templatepymod.html", "present": true }, { "path": "web/dist/test.html", "present": true }, { "path": "web/dist/tux.html", "present": true }, { "path": "web/dist/web-persistence.html", "present": true }, { "path": "web/dist/web.html", "present": true }, { "path": "web/dist/workbench.html", "present": true } ] }, "performance": { "workbenchRecords": 778, "workbenchNative": 138, "viewCanvasPixels": 1, "chromeCases": 12 }, "accessibility": { "viewControls": { "stage": "view-provider", "objectCount": 1, "selected": true, "preselected": false, "visible": true, "displayMode": "shaded", "color": "#73c6d4", "lineWidth": 1, "section": true, "camera": { "position": [ 269.93165341782895, 171.23248947870536, 157.68165341762895 ], "target": [ 148.7500000002, 74.99999999999999, 36.5 ] } }, "keyboard": [ "F", "0", "1", "2", "Escape", "S" ], "noOverlapEvidence": true }, "security": { "externalRequests": 0, "exceptions": 0, "pythonPolicy": "no arbitrary Python eval; generated API IDs remain disposition-gated", "restrictedCapabilities": [ "Qt desktop commands", "Clipboard outside secure context", "OPFS when unavailable", "SharedArrayBuffer-dependent pthread paths" ] }, "artifacts": { "workbenchGate": { "path": "docs/p6/workbench-command-gate.json", "sha256": "1082950b72fc7a675134ae2903764815e41bfdd8f5eb6ac1685af28762cdfcf0" }, "viewGate": { "path": "docs/p6/view-interaction-gate.json", "sha256": "f0ea2538c326f91b116deb66a0809e71402ee50f1eb63f021981c5ecf7b82c61" }, "workbenchWasm": { "path": "web/public/kernel/FreeCADWebWorkbenchCommandProbe.wasm", "sha256": "761882251cf05edf2a50c160abc95c1bf3f7dc42bc724ca1f1322ab7927fba64" } }, "boundaries": [ "Resource and memory release are accepted only when native evidence reports resourcesReleased=true.", "CSP permits the existing blob Worker and WebAssembly loading model; deployment must preserve same-origin asset hosting.", "No non-Chrome browser support is inferred from the fixed Chrome gate." ] }