{ "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." ] }