Files
FreeCADWasmDev/docs/p6/material-string2tuple-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

428 lines
14 KiB
JSON

{
"schema": "freecad-web-p6-material-string2tuple-method-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"module": "Material",
"tier": "tier-2-pure",
"apiId": "py:Material:function:string2tuple",
"status": "pass",
"route": {
"command": "material.pythonFamilyBatch",
"worker": "web/src/material.worker.ts",
"facade": "web/src/material-python-family-facade.ts",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/MaterialKernelProbe.cpp:fc_web_dispatch_json"
},
"source": {
"entry": "src/Mod/Material/MaterialEditor.py",
"line": 948,
"revision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"function": "string2tuple",
"guiImportBoundary": "the official function definition is extracted without executing MaterialEditor GUI imports"
},
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "material-string2tuple-success",
"command": "material.pythonFamilyBatch",
"payload": {
"schema": "freecad-web-material/python-family-batch/v1",
"module": "Material",
"tier": "tier-2-pure",
"records": [
{
"apiId": "py:Material:function:string2tuple",
"name": "string2tuple",
"family": "pure-function",
"kind": "function",
"sourcePath": "src/Mod/Material/MaterialEditor.py",
"disposition": "not_implemented",
"args": {
"value": "(0.1,0.2,0.3,1.0)"
}
}
]
},
"documentId": "material-python-family"
},
"requestSha256": "ce6b1c3223f2168841cb4e93238eaef6939da0ed89ab873ccc54a321ca43f4f0",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "material-string2tuple-success",
"result": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "native_python_method",
"family": "pure-function",
"message": "Material string2tuple was executed from the official FreeCAD source",
"name": "string2tuple",
"native": true,
"parameterSchema": "value:string",
"resourcesReleased": true,
"result": [
25,
51,
76,
255
],
"returnSchema": "tuple[int,int,int,int]",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "material-string2tuple-repeat",
"result": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "native_python_method",
"family": "pure-function",
"message": "Material string2tuple was executed from the official FreeCAD source",
"name": "string2tuple",
"native": true,
"parameterSchema": "value:string",
"resourcesReleased": true,
"result": [
25,
51,
76,
255
],
"returnSchema": "tuple[int,int,int,int]",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
}
},
"malformed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "material-string2tuple-malformed",
"error": {
"code": "invalid_request",
"message": "Material Python family envelope invalid"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "material-string2tuple-invalid",
"result": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "source_error",
"family": "pure-function",
"message": "Material string2tuple source fixture failed",
"name": "string2tuple",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
}
},
"duplicate": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "material-string2tuple-duplicate",
"error": {
"code": "duplicate_request",
"message": "requestId has already been dispatched"
}
},
"duplicateResult": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "material-string2tuple-duplicate",
"result": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "native_python_method",
"family": "pure-function",
"message": "Material string2tuple was executed from the official FreeCAD source",
"name": "string2tuple",
"native": true,
"parameterSchema": "value:string",
"resourcesReleased": true,
"result": [
25,
51,
76,
255
],
"returnSchema": "tuple[int,int,int,int]",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "material-string2tuple-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled before execution"
}
},
"direct": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "native_python_method",
"family": "pure-function",
"message": "Material string2tuple was executed from the official FreeCAD source",
"name": "string2tuple",
"native": true,
"parameterSchema": "value:string",
"resourcesReleased": true,
"result": [
25,
51,
76,
255
],
"returnSchema": "tuple[int,int,int,int]",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
},
"directRepeat": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "native_python_method",
"family": "pure-function",
"message": "Material string2tuple was executed from the official FreeCAD source",
"name": "string2tuple",
"native": true,
"parameterSchema": "value:string",
"resourcesReleased": true,
"result": [
25,
51,
76,
255
],
"returnSchema": "tuple[int,int,int,int]",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
},
"crossModule": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Part:function:string2tuple",
"code": "unmatched_source_record",
"family": "pure-function",
"message": "Material API record is not part of this module-scoped adapter",
"name": "string2tuple",
"native": true,
"parameterSchema": "unmatched",
"resourcesReleased": true,
"returnSchema": "unmatched",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
},
"unsupported": {
"ok": false,
"code": "unsupported_command",
"error": "Material native dispatch command is not registered"
}
},
"traceSha256": "afc25c49ad70cf13c99bb21bdcf2d3b5774e06934caf154bac6002147116af39",
"worker": {
"trace": {
"ready": {
"kind": "ready",
"action": "material.pythonFamilyBatch"
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "material-string2tuple-success",
"result": {
"cmd": "material.pythonFamilyBatch",
"count": 1,
"module": "Material",
"ok": true,
"records": [
{
"apiId": "py:Material:function:string2tuple",
"code": "native_python_method",
"family": "pure-function",
"message": "Material string2tuple was executed from the official FreeCAD source",
"name": "string2tuple",
"native": true,
"parameterSchema": "value:string",
"resourcesReleased": true,
"result": [
25,
51,
76,
255
],
"returnSchema": "tuple[int,int,int,int]",
"sourceEntry": "src/Mod/Material/MaterialEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed"
}
],
"resourcesReleased": true,
"schema": "freecad-web-material/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-2-pure"
}
},
"duplicate": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "material-string2tuple-success",
"error": {
"code": "duplicate_request",
"message": "requestId has already been dispatched"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "material-string2tuple-worker-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"reset": {
"kind": "reset",
"requestId": "material-string2tuple-worker-reset"
}
},
"traceSha256": "63d6ad884f3c77ee0942ac9eab4dd27c334231b07933ee83d7a72fffc2a909f2",
"sequencing": {
"duplicate": true,
"cancelAccepted": true,
"resetAccepted": true,
"maxActive": 1
}
},
"replay": {
"equal": true,
"resultSha256": "c16008af2c68f6661f9c1cfdf78cda4d3b5f99114e742fc9bb30db5d0b1bafc7"
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebMaterialKernelProbe.wasm",
"sha256": "a6219b9e4df6d494a4fe6d7d5f40634bf8224bdfaef1f06d8cb84ddcaa4c4f2b"
},
"loader": {
"path": "web/public/kernel/FreeCADWebMaterialKernelProbe.js",
"sha256": "410ed9fd657a14c55eec28799dc83c672a4227321f9095805fc724e195ed95eb"
}
},
"commands": [
"ninja -C freecad-source/build-web/configure FreeCADWebMaterialKernelProbe -j8",
"cp FreeCADWebMaterialKernelProbe.js/.wasm web/public/kernel/",
"node tools/run_p6_material_string2tuple_method_gate.mjs freecad-source/build-web/configure/bin"
],
"boundaries": [
"MaterialEditor top-level Qt/FreeCADGui imports and editor UI remain headless boundaries; only the official pure function definition is executed.",
"All result fields and statuses derive from compiled FreeCAD through fc_web_dispatch_json; no JavaScript API result is substituted."
],
"resultSha256": "237e8720743d1fa28cd16faea7f1c339b2a37faba5baa0d9fe756bd7ac307923"
}