Files
FreeCADWasmDev/docs/p6/sketcher-profile-method-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

303 lines
9.4 KiB
JSON

{
"schema": "freecad-web-p6-sketcher-profile-method-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"module": "Sketcher",
"tier": "tier-2-pure",
"apiId": "py:Sketcher:function:isProfileActive",
"status": "pass",
"route": {
"command": "sketcher.pythonMethod",
"worker": "web/src/sketcher-python.worker.ts",
"facade": "web/src/sketcher-python-method-facade.ts",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/SketcherProbe.cpp:fc_web_dispatch_json"
},
"source": {
"entry": "src/Mod/Sketcher/Profiles.py",
"revision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"guiRegistrationBoundary": "Profiles.py GUI command registration is excluded from headless execution; isProfileActive function source is executed unchanged"
},
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "sketcher-profile-success",
"command": "sketcher.pythonMethod",
"payload": {
"schema": "freecad-web-sketcher/python-method/v1",
"module": "Sketcher",
"tier": "tier-2-pure",
"apiId": "py:Sketcher:function:isProfileActive",
"name": "isProfileActive",
"family": "pure-function",
"args": {}
},
"documentId": "sketcher-python-method"
},
"requestSha256": "d0a7fd721f97f3275c91b4f4a22eca5064b3123ba434b0f4e45eccfbdb13bdda",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-profile-success",
"result": {
"apiId": "py:Sketcher:function:isProfileActive",
"family": "pure-function",
"module": "Sketcher",
"name": "isProfileActive",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"value": false,
"withDocument": true,
"withoutDocument": false
},
"returnSchema": {
"fields": {
"value": "boolean",
"withDocument": "boolean",
"withoutDocument": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/Profiles.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeated": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-profile-repeat",
"result": {
"apiId": "py:Sketcher:function:isProfileActive",
"family": "pure-function",
"module": "Sketcher",
"name": "isProfileActive",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"value": false,
"withDocument": true,
"withoutDocument": false
},
"returnSchema": {
"fields": {
"value": "boolean",
"withDocument": "boolean",
"withoutDocument": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/Profiles.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"malformed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-profile-malformed",
"error": {
"code": "invalid_request",
"message": "Sketcher Python method envelope invalid"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-profile-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled before execution"
}
},
"direct": {
"apiId": "py:Sketcher:function:isProfileActive",
"family": "pure-function",
"module": "Sketcher",
"name": "isProfileActive",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"value": false,
"withDocument": true,
"withoutDocument": false
},
"returnSchema": {
"fields": {
"value": "boolean",
"withDocument": "boolean",
"withoutDocument": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/Profiles.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"directRepeat": {
"apiId": "py:Sketcher:function:isProfileActive",
"family": "pure-function",
"module": "Sketcher",
"name": "isProfileActive",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"value": false,
"withDocument": true,
"withoutDocument": false
},
"returnSchema": {
"fields": {
"value": "boolean",
"withDocument": "boolean",
"withoutDocument": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/Profiles.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"crossModule": {
"ok": false,
"code": "unmatched_source_record",
"error": "Sketcher native method is not registered for this module/tier"
},
"unsupported": {
"ok": false,
"code": "unsupported_command",
"error": "Sketcher native dispatch command is not registered"
}
},
"traceSha256": "dba66b37f5ba3f23379b952ac16b78378f48da4954569658572840196de03105",
"replay": {
"equal": true,
"resultSha256": "4599e31bd6575fdca3e1fe96c693b0254b243c9bc1a69b6f1182cfbebe93c03a"
},
"resources": {
"resourcesReleased": true,
"documentMutation": false,
"temporaryDocumentClosed": true
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebSketcherProbe.wasm",
"sha256": "ae8770578737612018556d8a406bfbd47a8a93a502c5b63a63d60a2a3647ea88"
},
"loader": {
"path": "web/public/kernel/FreeCADWebSketcherProbe.js",
"sha256": "cc3e2fa493f7214a79fb879676acfeedcd0f640cac568219f0f3382dce893e00"
}
},
"commands": [
"ninja -C freecad-source/build-web/configure FreeCADWebSketcherProbe -j8",
"cp FreeCADWebSketcherProbe.js/.wasm web/public/kernel/",
"node tools/run_p6_sketcher_profile_method_gate.mjs freecad-source/build-web/configure/bin"
],
"boundaries": [
"The official function returns false without an active document and true with a temporary native document.",
"GUI-only Profiles command registration is a declared headless boundary; no GUI result is substituted.",
"All result fields and statuses come from compiled FreeCAD through fc_web_dispatch_json."
],
"worker": {
"trace": {
"ready": {
"kind": "ready",
"action": "sketcher.pythonMethod"
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-profile-success",
"result": {
"apiId": "py:Sketcher:function:isProfileActive",
"family": "pure-function",
"module": "Sketcher",
"name": "isProfileActive",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"value": false,
"withDocument": true,
"withoutDocument": false
},
"returnSchema": {
"fields": {
"value": "boolean",
"withDocument": "boolean",
"withoutDocument": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/Profiles.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"duplicate": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-profile-success",
"error": {
"code": "duplicate_request",
"message": "requestId has already been dispatched"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-profile-worker-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"reset": {
"kind": "reset",
"requestId": "sketcher-profile-worker-reset"
}
},
"traceSha256": "676bf8fc5f513f319363f5e61daac0229113521c99e71686743afe4f849f985b",
"sequencing": {
"duplicate": true,
"cancelAccepted": true,
"resetAccepted": true,
"maxActive": 1
}
},
"resultSha256": "561e097434e97705e9cbe93eaeb05c5f8c4a09f7085d3ec697edca7aef6245f1"
}