Files
FreeCADWasmDev/docs/p6/sandbox-runtime.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

120 lines
4.7 KiB
JSON

{
"schema": "freecad-web-p6-sandbox-runtime/v1",
"taskId": "FW-P6-SDB-B",
"module": "Sandbox",
"result": "pass",
"sourceRevision": "0644133717ebc04fae2194bb5ef9eec06880f909",
"configuration": {
"freecadWeb": true,
"freecadWebEnableSandbox": true,
"buildSandbox": true,
"buildMesh": true,
"buildGui": false,
"target": "FreeCADWebSandboxRuntimeProbe",
"directLinkLibraries": ["Sandbox", "Mesh", "Python3", "PyCXX", "Qt5::Core", "Qt5::Xml"],
"guiTargetLinked": false,
"cmakeCacheSha256": "874621555ff4ddabfedf977f4e1ca4586c75061a8bb87711b5e106471a32e37e",
"buildNinjaSha256": "142e1262b42bfa19fdc5e426732c6970e9920f0e8afff6e2ccaa6b6433195d7d"
},
"inputs": {
"sourceBoundary": {
"path": "docs/p6/sandbox-source-boundary.json",
"sha256": "306d78585fa4e0953077948c745694690ff7f049b44da9d7efe0ab8d760d8273"
},
"moduleLoader": {
"path": "docs/p6/module-loader.json",
"sha256": "db979388d127add56e5241686645fbbb2d117f241abd67746bbcd30352a35eaf"
},
"moduleLoaderSchema": {
"path": "docs/p6/module-loader.schema.json",
"sha256": "cb1bb0289d4a62882316846d2ceaec94ad89d13b7a78dfeaa1ae69a4c03f2602"
}
},
"commands": [
"cmake -S . -B build-web/configure -DFREECAD_WEB_ENABLE_SANDBOX=ON",
"EM_CONFIG=$PWD/build-web/emscripten-config.py env -u EM_FROZEN_CACHE ninja -C build-web/configure FreeCADWebSandboxRuntimeProbe -j8",
"node src/WebAssembly/FreeCADCoreProbe/sandbox-runtime-smoke.js build-web/configure/bin",
"llvm-nm --undefined-only build-web/configure/bin/FreeCADWebSandboxRuntimeProbe.wasm"
],
"registrationResult": {
"initialize": 1,
"type": 1,
"typeName": "Sandbox::SandboxObject",
"moduleVisible": 1,
"stateAfterValid": {
"calls": 2,
"runs": 1,
"initialized": 1
},
"repeatInitialize": 1,
"repeatType": 1,
"stateAfterRepeat": {
"calls": 4,
"runs": 1,
"initialized": 1
},
"unknownModule": 0,
"unknownModuleError": {
"code": "module_unavailable",
"message": "module is not available in the GUI-free Web kernel: Missing"
},
"guiModule": 0,
"guiModuleError": {
"code": "gui_dependency_unavailable",
"message": "module is not available in the GUI-free Web kernel: SandboxGui"
},
"emptyModule": 0,
"emptyModuleError": {
"code": "invalid_argument",
"message": "module name is empty"
},
"unknownType": 0,
"unknownTypeError": {
"code": "type_not_found",
"message": "type is not registered: Sandbox::Missing"
},
"stateAfterErrors": {
"calls": 5,
"runs": 1,
"initialized": 1
}
},
"symbolAudit": {
"undefinedWasmSymbols": [],
"guiTargetLinked": false,
"guiModuleInitialized": false,
"auditCommand": "llvm-nm --undefined-only build-web/configure/bin/FreeCADWebSandboxRuntimeProbe.wasm"
},
"artifacts": {
"js": "freecad-source/build-web/configure/bin/FreeCADWebSandboxRuntimeProbe.js",
"jsSha256": "089623fe48380c839d3132f5776d5ba3836ebcc08361e4aa5e2a7a2cc9081ca8",
"wasm": "freecad-source/build-web/configure/bin/FreeCADWebSandboxRuntimeProbe.wasm",
"wasmSha256": "3614db98e0424ec6b2fc70c73f7dfdc71dfceb8f121bc7dfb487f89ae9de2e6a",
"sourceProbeSha256": "a36a27c0ab2dbec7af39766a08e559fa32e537f1d7a9a47d6ac37f016ad934d7",
"smokeSha256": "92e357718bfb2818bb73cfd5984bce46f712ccdbc42c37d960ae138bab0335a0",
"buildLog": "docs/freecad-p6-sandbox-b-build-r2.log",
"smokeLog": "docs/freecad-p6-sandbox-b-smoke.log"
},
"recovery": {
"firstFailure": {
"log": "docs/freecad-p6-sandbox-b-build.log",
"error": "Base/Mutex.h not found; SandboxAppExport undefined; Qt thread feature unavailable"
},
"r1Failure": {
"log": "docs/freecad-p6-sandbox-b-build-r1.log",
"error": "Emscripten bzip2 port attempted to write /usr/share/emscripten/cache/ports without permission"
},
"r2Recovery": {
"log": "docs/freecad-p6-sandbox-b-build-r2.log",
"result": "pass",
"action": "Used the existing writable absolute EM_CONFIG and preserved prior failure logs."
}
},
"boundaries": [
"The probe initializes the native Sandbox App module and queries the native SandboxObject type; JS only calls the exported C ABI and validates the result.",
"SandboxGui is intentionally excluded; GUI dependency rejection is tested as a structured error.",
"This B card covers registration and dependency closure only; Sandbox create/recompute, recovery action, Facade, Chrome, and persistence remain separate cards.",
"The source-boundary input was captured before the B-card Web opt-in change; this runtime report records the updated configuration explicitly."
]
}