Files
FreeCADWasmDev/docs/p6/part-pure-function-batch-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

399 lines
12 KiB
JSON

{
"schema": "freecad-web-p6-part-pure-function-batch-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"module": "Part",
"tier": "tier-2-pure",
"family": "pure-function",
"status": "pass_with_restricted_boundary",
"records": [
{
"apiId": "py:Part:function:makeToleranceSet",
"name": "makeToleranceSet",
"status": "exposed",
"code": "native_fixture",
"result": {
"childCount": -1,
"childTypes": [],
"connected": false,
"documentObjects": 1,
"expectedCount": -1,
"faceCount": -1,
"groupType": "",
"importedCount": -1,
"importedModules": [],
"inputTypes": [],
"leafCount": -1,
"leafTypes": [],
"name": "ToleranceFixture",
"objectType": "Part::FeaturePython",
"outputTypes": [],
"properties": [
"ExpressionEngine",
"Label",
"Label2",
"Objects",
"Placement",
"Proxy",
"Refine",
"Shape",
"ShapeMaterial",
"Visibility",
"_ElementMapVersion",
"maxTolerance",
"minTolerance"
],
"resultCount": -1,
"roundTrip": [],
"shapeType": "",
"sharedCount": -1,
"solidCount": -1,
"strings": [],
"upgradedCount": -1,
"volume": null
},
"sourceEntry": "src/Mod/Part/BOPTools/ToleranceFeatures.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:compoundLeaves",
"name": "compoundLeaves",
"status": "exposed",
"code": "native_fixture",
"result": {
"childCount": -1,
"childTypes": [],
"connected": false,
"documentObjects": -1,
"expectedCount": -1,
"faceCount": -1,
"groupType": "",
"importedCount": -1,
"importedModules": [],
"inputTypes": [],
"leafCount": 3,
"leafTypes": [
"Solid",
"Solid",
"Solid"
],
"name": "",
"objectType": "",
"outputTypes": [],
"properties": [],
"resultCount": -1,
"roundTrip": [],
"shapeType": "Compound",
"sharedCount": -1,
"solidCount": -1,
"strings": [],
"upgradedCount": -1,
"volume": null
},
"sourceEntry": "src/Mod/Part/BOPTools/Utils.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:upgradeToAggregateIfNeeded",
"name": "upgradeToAggregateIfNeeded",
"status": "exposed",
"code": "native_fixture",
"result": {
"childCount": -1,
"childTypes": [],
"connected": false,
"documentObjects": -1,
"expectedCount": -1,
"faceCount": -1,
"groupType": "",
"importedCount": -1,
"importedModules": [],
"inputTypes": [
"Edge",
"Wire"
],
"leafCount": -1,
"leafTypes": [],
"name": "",
"objectType": "",
"outputTypes": [
"Wire",
"Wire"
],
"properties": [],
"resultCount": -1,
"roundTrip": [],
"shapeType": "",
"sharedCount": -1,
"solidCount": -1,
"strings": [],
"upgradedCount": 2,
"volume": null
},
"sourceEntry": "src/Mod/Part/BOPTools/Utils.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:importAll",
"name": "importAll",
"status": "exposed",
"code": "native_fixture",
"result": {
"childCount": -1,
"childTypes": [],
"connected": false,
"documentObjects": -1,
"expectedCount": 9,
"faceCount": -1,
"groupType": "",
"importedCount": 9,
"importedModules": [
"BOPTools.BOPFeatures",
"BOPTools.GeneralFuseResult",
"BOPTools.JoinAPI",
"BOPTools.JoinFeatures",
"BOPTools.ShapeMerge",
"BOPTools.Utils",
"BOPTools.SplitAPI",
"BOPTools.SplitFeatures",
"BOPTools.ToleranceFeatures"
],
"inputTypes": [],
"leafCount": -1,
"leafTypes": [],
"name": "",
"objectType": "",
"outputTypes": [],
"properties": [],
"resultCount": -1,
"roundTrip": [],
"shapeType": "",
"sharedCount": -1,
"solidCount": -1,
"strings": [],
"upgradedCount": -1,
"volume": null
},
"sourceEntry": "src/Mod/Part/BOPTools/__init__.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:makeCompoundFilter",
"name": "makeCompoundFilter",
"status": "exposed",
"code": "native_fixture",
"result": {
"childCount": -1,
"childTypes": [],
"connected": false,
"documentObjects": 1,
"expectedCount": -1,
"faceCount": -1,
"groupType": "",
"importedCount": -1,
"importedModules": [],
"inputTypes": [],
"leafCount": -1,
"leafTypes": [],
"name": "CompoundFilterFixture",
"objectType": "Part::FeaturePython",
"outputTypes": [],
"properties": [
"Base",
"ExpressionEngine",
"FilterType",
"Invert",
"Label",
"Label2",
"OverrideMaxVal",
"Placement",
"Proxy",
"Shape",
"ShapeMaterial",
"Stencil",
"Visibility",
"WindowFrom",
"WindowTo",
"_ElementMapVersion",
"items"
],
"resultCount": -1,
"roundTrip": [],
"shapeType": "",
"sharedCount": -1,
"solidCount": -1,
"strings": [],
"upgradedCount": -1,
"volume": null
},
"sourceEntry": "src/Mod/Part/CompoundTools/CompoundFilter.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:explodeCompound",
"name": "explodeCompound",
"status": "exposed",
"code": "native_fixture",
"result": {
"childCount": 2,
"childTypes": [
"Part::FeaturePython",
"Part::FeaturePython"
],
"connected": false,
"documentObjects": 4,
"expectedCount": -1,
"faceCount": -1,
"groupType": "App::DocumentObjectGroup",
"importedCount": -1,
"importedModules": [],
"inputTypes": [],
"leafCount": -1,
"leafTypes": [],
"name": "",
"objectType": "",
"outputTypes": [],
"properties": [],
"resultCount": -1,
"roundTrip": [],
"shapeType": "",
"sharedCount": -1,
"solidCount": -1,
"strings": [],
"upgradedCount": -1,
"volume": null
},
"sourceEntry": "src/Mod/Part/CompoundTools/Explode.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:cmdCreateCompoundFilter",
"name": "cmdCreateCompoundFilter",
"status": "restricted",
"code": "gui_dependency_unavailable",
"sourceEntry": "src/Mod/Part/CompoundTools/_CommandCompoundFilter.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
},
{
"apiId": "py:Part:function:cmdExplode",
"name": "cmdExplode",
"status": "restricted",
"code": "gui_dependency_unavailable",
"sourceEntry": "src/Mod/Part/CompoundTools/_CommandExplodeCompound.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47"
}
],
"request": {
"cmd": "part.pythonFamilyBatch",
"args": {
"tier": "tier-2-pure",
"records": [
{
"apiId": "py:Part:function:makeToleranceSet",
"name": "makeToleranceSet",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/BOPTools/ToleranceFeatures.py",
"sourceLine": 117,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:compoundLeaves",
"name": "compoundLeaves",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/BOPTools/Utils.py",
"sourceLine": 74,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:upgradeToAggregateIfNeeded",
"name": "upgradeToAggregateIfNeeded",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/BOPTools/Utils.py",
"sourceLine": 88,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:importAll",
"name": "importAll",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/BOPTools/__init__.py",
"sourceLine": 46,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:makeCompoundFilter",
"name": "makeCompoundFilter",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/CompoundTools/CompoundFilter.py",
"sourceLine": 36,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:explodeCompound",
"name": "explodeCompound",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/CompoundTools/Explode.py",
"sourceLine": 9,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:cmdCreateCompoundFilter",
"name": "cmdCreateCompoundFilter",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/CompoundTools/_CommandCompoundFilter.py",
"sourceLine": 103,
"disposition": "not_implemented"
},
{
"apiId": "py:Part:function:cmdExplode",
"name": "cmdExplode",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Part/CompoundTools/_CommandExplodeCompound.py",
"sourceLine": 89,
"disposition": "not_implemented"
}
]
}
},
"requestSha256": "1e2239e828179b1705ee6e3aac8cf86c12ff4b992e2d0e8354c27c9d85969197",
"resultSha256": "efaf3249c70f64a1e86fe9878a7fbb4cf366e2d6d6112c1d576315414b221776",
"traceSha256": "0f7ae2b45c303fab1bddee298da73e4d0a516faea70a16815793647162226b41",
"replay": {
"equal": true,
"resultSha256": "efaf3249c70f64a1e86fe9878a7fbb4cf366e2d6d6112c1d576315414b221776"
},
"route": {
"command": "part.pythonFamilyBatch",
"worker": "web/src/part.worker.ts",
"facade": "web/src/part-python-family-facade.ts",
"apiBridge": "web/src/api-method-bridge.ts",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp:fc_web_dispatch_json"
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebPartBoxProbe.wasm",
"sha256": "728346096d80bed666c2856844c8d951962d8450ff0501da7df5a599008691a7"
},
"loader": {
"path": "web/public/kernel/FreeCADWebPartBoxProbe.js",
"sha256": "d5b2a22ea3d525fa82258f85c593343ff586b4f75b1d556de1fa46432e5c1487"
}
},
"boundaries": [
"Part.cmdCreateCompoundFilter and Part.cmdExplode remain restricted because the source commands require FreeCADGui selection, transactions and view capabilities absent from the Web kernel.",
"Cross-module IDs, invalid tier, duplicate request, and cancellation retain explicit dispatcher/Facade/Worker errors.",
"All values derive from official Part BOPTools/CompoundTools Python source executed by the compiled native probe; JavaScript only carries the typed envelope."
]
}