{ "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" } ] }