{ "schema": "freecad-web-p6-cloud-action-contract/v1", "task_id": "FW-P6-CLD-ACT-02", "module": "Cloud", "action": "inspect/source-inventory", "command": "cloud.inspectSourceInventory", "typed_schema": "freecad-web-cloud/inspect-source-inventory/v1", "status": "contract_frozen", "source_revision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "inventory_revision": "4f4e9244e613ea2df06e70027074a562695048cb", "input_sha256": "ad507e437889bc142b22d7d349f4b1484efd35dcd744a0fe49709c1d956ef785", "result_sha256": "c1c13e153937989e53f0634dbbdef405b44fc0bb61ff502dcec6887464b4ac02", "fixture": { "sourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "inventoryRevision": "4f4e9244e613ea2df06e70027074a562695048cb", "module": "Cloud", "readOnly": true }, "expected_result": { "module": "Cloud", "action": "inspect/source-inventory", "sourceRevision": "b5a086fda59b0325fe0996147e6e9b344414f9bc", "inventoryRevision": "4f4e9244e613ea2df06e70027074a562695048cb", "sourceEntry": "src/Mod/Cloud/Init.py", "registrationEntry": "src/Mod/Cloud/App/AppCloud.cpp:63", "targets": ["Cloud", "CloudGui"], "registeredTypes": [], "registeredFormatExtensions": [], "formatEvidenceCount": 1, "objectTypeCount": 0, "pythonApiCount": 3, "guiPythonApiCount": 3, "dependencies": ["FreeCADApp", "OpenSSL", "CURL", "XercesC", "Boost", "ZLIB"], "guiExcluded": ["CloudGui", "FreeCADGui"], "readOnly": true }, "expected_error": { "input": { "sourceRevision": "wrong-revision" }, "code": "revision_mismatch", "field": "sourceRevision", "message": "Cloud source revision is not locked" }, "source_evidence": { "init": { "path": "src/Mod/Cloud/Init.py", "sha256": "8924f27242a278b370bac42501f2a48c743e4f3ebeddc265063919b9f9610313" }, "implementation": { "path": "src/Mod/Cloud/App/AppCloud.cpp", "sha256": "8be20fcce6a644763a73e4a46b737cdfc3bc56010404159ceb590d0937eb493b" }, "api_header": { "path": "src/Mod/Cloud/App/AppCloud.h", "sha256": "1da84dbfd932b1170759aea3262a79613be0116c39d3d30bb900a2dcdd2ae2cc" }, "inventories": { "workbench_sha256": "06a0ff0d65e5b9d875b10ae5c88c064da5e2b166c131648e97d6c1f48e0ce263", "object_sha256": "020205e72184e2d92677c81cd183aabb2f9258204d11dc9f42fceddcc0a87c66", "format_api_sha256": "f70d3ea8d8da3488810da34c7fb0412fdeb566d2a2f28bce0048a2637254f9b9" } }, "subtasks": [ { "task_id": "FW-P6-CLD-ACT-02-C", "status": "planned" }, { "task_id": "FW-P6-CLD-ACT-02-D", "status": "planned" }, { "task_id": "FW-P6-CLD-ACT-02-E", "status": "planned" }, { "task_id": "FW-P6-CLD-ACT-02-F", "status": "planned" }, { "task_id": "FW-P6-CLD-ACT-02-G", "status": "planned" } ], "commands": [ "rg -n 'PyMOD_INIT_FUNC\\(Cloud\\)|add_varargs_method|addImportType|addExportType' FreeCAD/freecad-source/src/Mod/Cloud", "filter Cloud rows from docs/workbench-inventory.json, docs/object-inventory.json, and docs/format-api-inventory.json" ], "artifacts": { "contract": "docs/p6/cloud-action-02-inspect-source-inventory.json" }, "boundaries": [ "The frozen inventory contains no Cloud DocumentObject type or registered file extension.", "The three Python API inventory entries are GUI-only CloudWorkbench symbols and remain excluded from the headless action result.", "The class-evidence row is not presented as a registered import/export format.", "This parent contract does not mark the action implemented; C through G remain required." ], "generated_at": "2026-08-20T10:49:36Z" }