Files
FreeCADWasmDev/docs/p6/surface-tier1-readonly-family-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

235 lines
8.7 KiB
JSON

{
"schema": "freecad-web-p6-surface-tier1-readonly-family-runtime/v1",
"taskId": "FW-P6-FPA-F1-SURFACE",
"module": "Surface",
"tier": "tier-1-readonly",
"status": "pass_with_restricted_and_pending",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"route": {
"worker": "web/src/surface-python.worker.ts",
"facade": "web/src/surface-python-family-facade.ts",
"command": "surface.pythonFamilyBatch",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/SurfaceFamilyProbe.cpp:fc_web_dispatch_json"
},
"input": {
"cmd": "surface.pythonFamilyBatch",
"args": {
"tier": "tier-1-readonly",
"records": [
{
"apiId": "py:Surface:class:BlendCurve",
"name": "BlendCurve",
"family": "geometry-value",
"sourcePath": "src/Mod/Surface/App/Blending/BlendCurve.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Surface:class:BlendPoint",
"name": "BlendPoint",
"family": "geometry-value",
"sourcePath": "src/Mod/Surface/App/Blending/BlendPoint.pyi",
"disposition": "not_implemented"
},
{
"apiId": "py:Surface:class:SurfaceWorkbench",
"name": "SurfaceWorkbench",
"family": "geometry-value",
"sourcePath": "src/Mod/Surface/InitGui.py",
"disposition": "restricted"
},
{
"apiId": "py:Surface:method:BlendPoint.getSize",
"name": "BlendPoint.getSize",
"family": "generic-object",
"sourcePath": "src/Mod/Surface/App/Blending/BlendPoint.pyi",
"disposition": "not_implemented"
}
]
}
},
"inputSha256": "b12221d8c917d394ee3bbb883a8c4c8d07e8049f6fdef7256d14c4407f6bb101",
"result": {
"cmd": "surface.pythonFamilyBatch",
"count": 4,
"module": "Surface",
"ok": true,
"records": [
{
"apiId": "py:Surface:class:BlendCurve",
"code": "method_evidence_pending",
"family": "geometry-value",
"message": "Surface Python symbol/method has no method-level native argument/return replay",
"name": "BlendCurve",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Surface/App/Blending/BlendCurve.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Surface:class:BlendPoint",
"code": "method_evidence_pending",
"family": "geometry-value",
"message": "Surface Python symbol/method has no method-level native argument/return replay",
"name": "BlendPoint",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Surface/App/Blending/BlendPoint.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
},
{
"apiId": "py:Surface:class:SurfaceWorkbench",
"code": "gui_dependency_unavailable",
"family": "geometry-value",
"message": "Surface GUI/workbench API requires FreeCADGui unavailable in the headless Web runtime",
"name": "SurfaceWorkbench",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Surface/InitGui.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "restricted"
},
{
"apiId": "py:Surface:method:BlendPoint.getSize",
"code": "method_evidence_pending",
"family": "generic-object",
"message": "Surface Python symbol/method has no method-level native argument/return replay",
"name": "BlendPoint.getSize",
"native": true,
"parameterSchema": "source-declared",
"resourcesReleased": true,
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Surface/App/Blending/BlendPoint.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-surface/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-1-readonly"
},
"resultSha256": "af77252b8d4da3c74eee56b17f476e4badc97ed0f8daabba49a3ff70a53982e5",
"replay": {
"equal": true,
"resultSha256": "af77252b8d4da3c74eee56b17f476e4badc97ed0f8daabba49a3ff70a53982e5"
},
"crossModuleBoundary": {
"result": {
"cmd": "surface.pythonFamilyBatch",
"count": 1,
"module": "Surface",
"ok": true,
"records": [
{
"apiId": "py:BIM:class:BlendCurve",
"code": "unmatched_source_record",
"family": "geometry-value",
"message": "Surface API record is not part of this module-scoped adapter",
"name": "BlendCurve",
"native": true,
"resourcesReleased": true,
"sourceEntry": "src/Mod/Surface/App/Blending/BlendCurve.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "not_implemented"
}
],
"resourcesReleased": true,
"schema": "freecad-web-surface/python-family-batch/v1",
"source": "freecad-source",
"tier": "tier-1-readonly"
},
"resultSha256": "868550cae0e791d49ff141882df39e5b96e50b885ad66ffb935df5a055a25cd1"
},
"malformedRequest": {
"result": {
"ok": false,
"code": "invalid_request",
"error": "surface.pythonFamilyBatch tier-2 records require kind"
},
"resultSha256": "fbda793ccaec9d803c4d3bbe36980f26683c70dbebfc2618aeb90e9beafdee4f"
},
"dispositionCounts": {
"exposed": 0,
"restricted": 1,
"nonportable": 0,
"not_implemented": 3
},
"records": [
{
"apiId": "py:Surface:class:BlendCurve",
"name": "BlendCurve",
"family": "geometry-value",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Surface/App/Blending/BlendCurve.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "86f0cda0ae0bda3210204a660fdda404248f7ec547c4d35202374c3ec491eef2"
},
{
"apiId": "py:Surface:class:BlendPoint",
"name": "BlendPoint",
"family": "geometry-value",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Surface/App/Blending/BlendPoint.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "2dbc0c2f3e9a10ab3569a72b82815aeb5e3686ed547104b689ba8c7315737f0b"
},
{
"apiId": "py:Surface:class:SurfaceWorkbench",
"name": "SurfaceWorkbench",
"family": "geometry-value",
"status": "restricted",
"code": "gui_dependency_unavailable",
"parameterSchema": "source-declared",
"returnSchema": "gui-resource",
"sourceEntry": "src/Mod/Surface/InitGui.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "4fa8a2860ab955cc838e319af144be5cdaa190ccd2417868f452ecfbe353b219"
},
{
"apiId": "py:Surface:method:BlendPoint.getSize",
"name": "BlendPoint.getSize",
"family": "generic-object",
"status": "not_implemented",
"code": "method_evidence_pending",
"parameterSchema": "source-declared",
"returnSchema": "source-declared",
"sourceEntry": "src/Mod/Surface/App/Blending/BlendPoint.pyi",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"evidenceSha256": "d44011c5c1d3db2174d51c3cd7bdc6f538738ac221e4aaaa207580189646bd8e"
}
],
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebSurfaceRuntimeProbe.wasm",
"sha256": "68824648c592c227a611aa7d6b52d97cc7919f5307ae74f175d6360167533bc0"
},
"loader": {
"path": "web/public/kernel/FreeCADWebSurfaceRuntimeProbe.js",
"sha256": "8662bb3660451a13353295ce7413dcd2e4bccbfcf6d4b6da7c7e2cc956f8ca00"
}
},
"boundaries": [
"Surface Workbench remains restricted without FreeCADGui.",
"BlendCurve/BlendPoint symbols and BlendPoint.getSize remain not_implemented pending method-level native argument/return replay.",
"All statuses and hashes derive from compiled FreeCAD through fc_web_dispatch_json; no JavaScript API result is substituted."
]
}