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

426 lines
14 KiB
JSON

{
"schema": "freecad-web-p6-sketcher-hexagon-method-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"module": "Sketcher",
"tier": "tier-2-pure",
"apiId": "py:Sketcher:function:makeHexagonSimple",
"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/ProfileLib/Hexagon.py",
"revision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"function": "makeHexagonSimple",
"guiImportBoundary": "top-level FreeCADGui import and command registration are excluded; the official function definition executes unchanged against native App/Sketcher/Part"
},
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "sketcher-hex-success",
"command": "sketcher.pythonMethod",
"payload": {
"schema": "freecad-web-sketcher/python-method/v1",
"module": "Sketcher",
"tier": "tier-2-pure",
"apiId": "py:Sketcher:function:makeHexagonSimple",
"name": "makeHexagonSimple",
"family": "pure-function",
"args": {}
},
"documentId": "sketcher-python-method"
},
"requestSha256": "a91faf251b41b7bf2a2302fe423c0a2c266be735f5ea5d759e30593269678870",
"trace": {
"profile": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-hex-profile",
"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"
}
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-hex-success",
"result": {
"apiId": "py:Sketcher:function:makeHexagonSimple",
"family": "pure-function",
"module": "Sketcher",
"name": "makeHexagonSimple",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"constraintCount": 14,
"documentObjects": 1,
"geometryCount": 6,
"objectType": "Sketcher::SketchObject",
"recomputeCount": 1,
"recomputeHasError": false,
"resourcesReleased": true
},
"returnSchema": {
"fields": {
"constraintCount": "integer",
"documentObjects": "integer",
"geometryCount": "integer",
"objectType": "string",
"recomputeCount": "integer",
"recomputeHasError": "boolean"
},
"type": "NoneType"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/ProfileLib/Hexagon.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-hex-repeat",
"result": {
"apiId": "py:Sketcher:function:makeHexagonSimple",
"family": "pure-function",
"module": "Sketcher",
"name": "makeHexagonSimple",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"constraintCount": 14,
"documentObjects": 1,
"geometryCount": 6,
"objectType": "Sketcher::SketchObject",
"recomputeCount": 1,
"recomputeHasError": false,
"resourcesReleased": true
},
"returnSchema": {
"fields": {
"constraintCount": "integer",
"documentObjects": "integer",
"geometryCount": "integer",
"objectType": "string",
"recomputeCount": "integer",
"recomputeHasError": "boolean"
},
"type": "NoneType"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/ProfileLib/Hexagon.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"malformed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-hex-malformed",
"error": {
"code": "invalid_request",
"message": "Sketcher Python method envelope invalid"
}
},
"duplicate": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-hex-duplicate",
"error": {
"code": "duplicate_request",
"message": "requestId has already been dispatched"
}
},
"duplicateResult": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-hex-duplicate",
"result": {
"apiId": "py:Sketcher:function:makeHexagonSimple",
"family": "pure-function",
"module": "Sketcher",
"name": "makeHexagonSimple",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"constraintCount": 14,
"documentObjects": 1,
"geometryCount": 6,
"objectType": "Sketcher::SketchObject",
"recomputeCount": 1,
"recomputeHasError": false,
"resourcesReleased": true
},
"returnSchema": {
"fields": {
"constraintCount": "integer",
"documentObjects": "integer",
"geometryCount": "integer",
"objectType": "string",
"recomputeCount": "integer",
"recomputeHasError": "boolean"
},
"type": "NoneType"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/ProfileLib/Hexagon.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-hex-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled before execution"
}
},
"direct": {
"apiId": "py:Sketcher:function:makeHexagonSimple",
"family": "pure-function",
"module": "Sketcher",
"name": "makeHexagonSimple",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"constraintCount": 14,
"documentObjects": 1,
"geometryCount": 6,
"objectType": "Sketcher::SketchObject",
"recomputeCount": 1,
"recomputeHasError": false,
"resourcesReleased": true
},
"returnSchema": {
"fields": {
"constraintCount": "integer",
"documentObjects": "integer",
"geometryCount": "integer",
"objectType": "string",
"recomputeCount": "integer",
"recomputeHasError": "boolean"
},
"type": "NoneType"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/ProfileLib/Hexagon.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"directRepeat": {
"apiId": "py:Sketcher:function:makeHexagonSimple",
"family": "pure-function",
"module": "Sketcher",
"name": "makeHexagonSimple",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"constraintCount": 14,
"documentObjects": 1,
"geometryCount": 6,
"objectType": "Sketcher::SketchObject",
"recomputeCount": 1,
"recomputeHasError": false,
"resourcesReleased": true
},
"returnSchema": {
"fields": {
"constraintCount": "integer",
"documentObjects": "integer",
"geometryCount": "integer",
"objectType": "string",
"recomputeCount": "integer",
"recomputeHasError": "boolean"
},
"type": "NoneType"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/ProfileLib/Hexagon.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": "8ffafe54aceda18594991aaeae97048684b19faf75d426e3422b596ce8f60de1",
"worker": {
"trace": {
"ready": {
"kind": "ready",
"action": "sketcher.pythonMethod"
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "sketcher-hex-success",
"result": {
"apiId": "py:Sketcher:function:makeHexagonSimple",
"family": "pure-function",
"module": "Sketcher",
"name": "makeHexagonSimple",
"native": true,
"ok": true,
"parameterSchema": {},
"resourcesReleased": true,
"result": {
"constraintCount": 14,
"documentObjects": 1,
"geometryCount": 6,
"objectType": "Sketcher::SketchObject",
"recomputeCount": 1,
"recomputeHasError": false,
"resourcesReleased": true
},
"returnSchema": {
"fields": {
"constraintCount": "integer",
"documentObjects": "integer",
"geometryCount": "integer",
"objectType": "string",
"recomputeCount": "integer",
"recomputeHasError": "boolean"
},
"type": "NoneType"
},
"schema": "freecad-web-sketcher/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Sketcher/ProfileLib/Hexagon.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"duplicate": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-hex-success",
"error": {
"code": "duplicate_request",
"message": "requestId has already been dispatched"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "sketcher-hex-worker-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"reset": {
"kind": "reset",
"requestId": "sketcher-hex-worker-reset"
}
},
"traceSha256": "6ca9c76e808f055dfb5586d02d952fc10e9d0165a39ee0f8ca67255a47696f65",
"sequencing": {
"duplicate": true,
"cancelAccepted": true,
"resetAccepted": true,
"maxActive": 1
}
},
"replay": {
"equal": true,
"resultSha256": "316d292e41741b75e6296277ebef1279dca1f44f0381d48b52f1164bd9cbbf26"
},
"resources": {
"resourcesReleased": true,
"documentMutation": true,
"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_hexagon_method_gate.mjs freecad-source/build-web/configure/bin"
],
"boundaries": [
"The official function returns None after creating a native Sketcher::SketchObject; the result envelope reports the created object and recompute contract.",
"GUI-only module import/command registration remains a declared headless boundary; no GUI result is substituted.",
"All result fields and statuses come from compiled FreeCAD through fc_web_dispatch_json."
],
"resultSha256": "f055cdb938e806f2d61bd319e3d80b3488e3860459f44cfbc52de5b33b1978fa"
}