Files
Web_FreeCAD_Bitbybit/config/freecad-oracle-boundaries.json
wangdequan 5bbd7b9d4f
Some checks failed
real-verification / chrome (push) Has been cancelled
real-verification / freecad-oracle (push) Has been cancelled
real-verification / wasm (push) Has been cancelled
feat: advance FreeCAD exact parity evidence
2026-08-14 22:39:16 -04:00

234 lines
9.6 KiB
JSON

{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"notBuiltModules": [
{
"name": "Cloud",
"buildOption": "BUILD_CLOUD",
"decision": "proxy",
"exactTask": "EX-PROXY-01",
"sourceEvidence": ["src/Mod/Cloud/CMakeLists.txt"],
"boundary": "Desktop network behavior is excluded; cloud payloads remain explicit resources without ambient network authority."
},
{
"name": "JtReader",
"buildOption": "BUILD_JTREADER",
"decision": "proxy",
"exactTask": "EX-FMT-04",
"sourceEvidence": ["src/Mod/JtReader/CMakeLists.txt"],
"boundary": "JT stays a lossless proxy resource until a licensed browser decoder has native differential evidence."
},
{
"name": "Sandbox",
"buildOption": "BUILD_SANDBOX",
"decision": "browser-reimplementation",
"exactTask": "EX-SCRIPT-01",
"sourceEvidence": ["src/Mod/Sandbox/CMakeLists.txt"],
"boundary": "The desktop developer sandbox is replaced by the capability-secure Facade script boundary."
},
{
"name": "TemplatePyMod",
"buildOption": "source-template-only",
"decision": "source-template",
"exactTask": "EX-SCRIPT-01",
"sourceEvidence": ["src/Mod/TemplatePyMod/CMakeLists.txt"],
"boundary": "The upstream template is source-only and is covered by the versioned Python/addon compatibility contract."
}
],
"sourceOnlyCommands": [
{
"id": "Arch_Floor",
"sourceModules": ["BIM"],
"classification": "legacy-lazy-command",
"sourceEvidence": ["src/Mod/BIM/ArchFloor.py"],
"runtimeExpectation": "registered-only-when-the-legacy-ArchFloor-module-is-imported",
"exactTask": "EX-BIM-01"
},
{
"id": "Arch_RebarTools",
"sourceModules": ["BIM"],
"classification": "optional-addon-command-group",
"sourceEvidence": ["src/Mod/BIM/InitGui.py"],
"runtimeExpectation": "registered-only-when-the-external-RebarTools-addon-imports-successfully",
"exactTask": "EX-ADDON-01"
},
{
"id": "CAM_%s",
"sourceModules": ["CAM"],
"classification": "dynamic-command-template",
"sourceEvidence": ["src/Mod/CAM/Path/Op/Gui/Base.py"],
"runtimeExpectation": "the-literal-template-must-not-register;-expanded-CAM-operation-commands-are-inventoried-separately",
"exactTask": "EX-CAM-01"
},
{
"id": "CAM_3dTools",
"sourceModules": ["CAM"],
"classification": "optional-preference-command-group",
"sourceEvidence": ["src/Mod/CAM/InitGui.py"],
"runtimeExpectation": "registered-only-when-advanced-OCL-features-are-enabled-and-the-OCL-import-succeeds",
"exactTask": "EX-CAM-01"
},
{
"id": "CAM_Camotics",
"sourceModules": ["CAM"],
"classification": "optional-executable-command",
"sourceEvidence": ["src/Mod/CAM/InitGui.py", "src/Mod/CAM/Path/Main/Gui/Camotics.py"],
"runtimeExpectation": "loaded-only-for-the-advanced-OCL-CAMotics-path-with-a-compatible-host-executable",
"exactTask": "EX-CAM-01"
},
{
"id": "CAM_Copy",
"sourceModules": ["CAM"],
"classification": "legacy-lazy-command",
"sourceEvidence": ["src/Mod/CAM/InitGui.py", "src/Mod/CAM/Path/Op/Gui/Copy.py"],
"runtimeExpectation": "the-default-workbench-uses-CAM_OperationCopy;CAM_Copy-registers-only-after-its-legacy-module-import",
"exactTask": "EX-CAM-01"
},
{
"id": "CAM_DrillingTools",
"sourceModules": ["CAM"],
"classification": "optional-preference-command-group",
"sourceEvidence": ["src/Mod/CAM/InitGui.py"],
"runtimeExpectation": "registered-only-when-experimental-features-add-CAM_Tapping-to-the-drilling-group",
"exactTask": "EX-CAM-01"
},
{
"id": "Draft_Hyperlink",
"sourceModules": ["Draft"],
"classification": "context-lazy-command",
"sourceEvidence": ["src/Mod/Draft/InitGui.py", "src/Mod/Draft/draftguitools/gui_hyperlink.py"],
"runtimeExpectation": "registered-only-after-a-text-object-context-menu-lazily-imports-the-hyperlink-module",
"exactTask": "EX-DRAFT-01"
},
{
"id": "TemplatePyCheckable",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyGroup",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyGrp_1",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyGrp_2",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyGrp_3",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyMod_Cmd1",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyMod_Cmd2",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyMod_Cmd3",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyMod_Cmd4",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyMod_Cmd5",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
},
{
"id": "TemplatePyMod_Cmd6",
"sourceModules": ["TemplatePyMod"],
"classification": "source-template-command",
"sourceEvidence": ["src/Mod/TemplatePyMod/Commands.py", "src/Mod/TemplatePyMod/InitGui.py"],
"runtimeExpectation": "not-registered-because-TemplatePyMod-is-a-source-only-development-template",
"exactTask": "EX-SCRIPT-01"
}
],
"sourceOnlyTypeIds": [
{
"typeId": "App::DocumentObjectExtension",
"classification": "non-instantiable-extension-type",
"sourceEvidence": ["src/Mod/Test/Document.py"],
"runtimeExpectation": "must-reject-document-object-creation"
},
{
"typeId": "Assembly::Product",
"classification": "legacy-importer-type",
"sourceEvidence": ["src/Mod/Import/App/PlmXmlParser.py"],
"runtimeExpectation": "not-registered-by-locked-assembly-module"
},
{
"typeId": "Assembly::ProductRef",
"classification": "legacy-importer-type",
"sourceEvidence": ["src/Mod/Import/App/PlmXmlParser.py"],
"runtimeExpectation": "not-registered-by-locked-assembly-module"
},
{
"typeId": "Part::SketchObject",
"classification": "commented-test-reference",
"sourceEvidence": ["src/Mod/Part/TestPartGui.py"],
"runtimeExpectation": "not-a-runtime-type"
},
{
"typeId": "PartDesign::Additive",
"classification": "generated-type-prefix",
"sourceEvidence": ["src/Mod/PartDesign/Gui/CommandPrimitive.cpp"],
"runtimeExpectation": "prefix-only-additive-primitive-types-are-registered"
},
{
"typeId": "PartDesign::SketchObject",
"classification": "commented-test-reference",
"sourceEvidence": ["src/Mod/PartDesign/TestPartDesignGui.py"],
"runtimeExpectation": "not-a-runtime-type"
}
]
}